Initial commit
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
import { type NextRequest } from 'next/server'
|
||||
import { NextResponse } from 'next/server'
|
||||
|
||||
import { client, getInfo } from '@/app/api/utils/common'
|
||||
|
||||
export async function POST(request: NextRequest) {
|
||||
try {
|
||||
const formData = await request.formData()
|
||||
const { user } = getInfo(request)
|
||||
formData.append('user', user)
|
||||
const { data } = await client.aduioToText(formData)
|
||||
return NextResponse.json(data)
|
||||
}
|
||||
catch (e: any) {
|
||||
return NextResponse.json(e.message)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
import { type NextRequest } from 'next/server'
|
||||
import { NextResponse } from 'next/server'
|
||||
import { client, getInfo } from '@/app/api/utils/common'
|
||||
|
||||
export async function POST(request: NextRequest, { params }: {
|
||||
params: { taskId: string }
|
||||
}) {
|
||||
const { taskId } = await params
|
||||
const { user } = getInfo(request)
|
||||
const { data } = await client.stopChat(taskId, user)
|
||||
return NextResponse.json(data)
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
import { type NextRequest } from 'next/server'
|
||||
import { client, getInfo } from '@/app/api/utils/common'
|
||||
|
||||
export async function POST(request: NextRequest) {
|
||||
const body = await request.json()
|
||||
const {
|
||||
inputs,
|
||||
query,
|
||||
files,
|
||||
conversation_id: conversationId,
|
||||
response_mode: responseMode,
|
||||
} = body
|
||||
const { user } = getInfo(request)
|
||||
const res = await client.createChatMessage(inputs, query, user, responseMode, conversationId, files)
|
||||
return new Response(res.data as any)
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
import { type NextRequest } from 'next/server'
|
||||
import { NextResponse } from 'next/server'
|
||||
import { client, getInfo } from '@/app/api/utils/common'
|
||||
|
||||
export async function POST(request: NextRequest, { params }: {
|
||||
params: { conversationId: string }
|
||||
}) {
|
||||
const body = await request.json()
|
||||
const {
|
||||
auto_generate,
|
||||
name,
|
||||
} = body
|
||||
const { conversationId } = await params
|
||||
const { user } = getInfo(request)
|
||||
|
||||
// auto generate name
|
||||
const { data } = await client.renameConversation(conversationId, name, user, auto_generate)
|
||||
return NextResponse.json(data)
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
import { type NextRequest } from 'next/server'
|
||||
import { NextResponse } from 'next/server'
|
||||
import { client, getInfo } from '@/app/api/utils/common'
|
||||
|
||||
export async function DELETE(request: NextRequest, { params }: {
|
||||
params: { conversationId: string }
|
||||
}) {
|
||||
const { conversationId } = await params
|
||||
const { user } = await getInfo(request)
|
||||
|
||||
const { data } = await client.deleteConversation(conversationId, user)
|
||||
return NextResponse.json(data)
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
import { type NextRequest } from 'next/server'
|
||||
import { NextResponse } from 'next/server'
|
||||
import { client, getInfo, setSession } from '@/app/api/utils/common'
|
||||
|
||||
export async function GET(request: NextRequest) {
|
||||
const { sessionId, user } = getInfo(request)
|
||||
try {
|
||||
const { data }: any = await client.getConversations(user)
|
||||
return NextResponse.json(data, {
|
||||
headers: setSession(sessionId),
|
||||
})
|
||||
}
|
||||
catch (error: any) {
|
||||
return NextResponse.json({
|
||||
data: [],
|
||||
error: error.message,
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
import { type NextRequest } from 'next/server'
|
||||
import { NextResponse } from 'next/server'
|
||||
import axios from 'axios';
|
||||
import FormData from 'form-data'
|
||||
import { client, getInfo } from '@/app/api/utils/common'
|
||||
|
||||
export async function POST(request: NextRequest) {
|
||||
try {
|
||||
const { user } = getInfo(request)
|
||||
const { url } = await request.json()
|
||||
const filename = url.split('/').pop() || '';
|
||||
const response = await axios.get(url, { responseType: 'arraybuffer' });
|
||||
if (response.status !== 200) {
|
||||
return NextResponse.json({ error: 'Failed to fetch the file' });
|
||||
}
|
||||
const buffer = Buffer.from(response.data);
|
||||
const formData = new FormData() as any;
|
||||
formData.append('file', buffer, { filename });
|
||||
formData.append('user', user)
|
||||
const { data } = await client.fileUpload(formData)
|
||||
// 返回缺少 url 字段
|
||||
return NextResponse.json(data)
|
||||
}
|
||||
catch (e: any) {
|
||||
return NextResponse.json(e.message)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
import { type NextRequest } from 'next/server'
|
||||
import { NextResponse } from 'next/server'
|
||||
|
||||
import { client, getInfo } from '@/app/api/utils/common'
|
||||
|
||||
export async function POST(request: NextRequest) {
|
||||
try {
|
||||
const formData = await request.formData()
|
||||
const { user } = getInfo(request)
|
||||
formData.append('user', user)
|
||||
const { data } = await client.fileUpload(formData)
|
||||
return NextResponse.json(data)
|
||||
}
|
||||
catch (e: any) {
|
||||
return NextResponse.json(e.message)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
import { type NextRequest } from 'next/server'
|
||||
import { NextResponse } from 'next/server'
|
||||
import { client, getInfo, setSession } from '@/app/api/utils/common'
|
||||
|
||||
export async function GET(request: NextRequest) {
|
||||
const { sessionId, user } = getInfo(request)
|
||||
try {
|
||||
const { data } = await client.getInfo(user)
|
||||
// 接口未返回 建议从配置文件或者环境变量获取
|
||||
data.app_id = 'app_id'
|
||||
data.site = {
|
||||
"title": "卓远智能问答",
|
||||
"chat_color_theme": null,
|
||||
"chat_color_theme_inverted": false,
|
||||
"icon_type": "image",
|
||||
"icon": "48159ee8",
|
||||
"icon_background": "#E4FBCC",
|
||||
"icon_url": "/files/aaa.png",
|
||||
"description": "Zhuoyuan AI Helper",
|
||||
"copyright": null,
|
||||
"privacy_policy": null,
|
||||
"custom_disclaimer": "",
|
||||
"default_language": "zh-Hans",
|
||||
"prompt_public": false,
|
||||
"show_workflow_steps": true,
|
||||
"use_icon_as_answer_icon": false
|
||||
}
|
||||
return NextResponse.json(data as object, {
|
||||
headers: setSession(sessionId),
|
||||
})
|
||||
}
|
||||
catch (error) {
|
||||
return NextResponse.json([])
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
import { type NextRequest } from 'next/server'
|
||||
import { NextResponse } from 'next/server'
|
||||
import { client, getInfo } from '@/app/api/utils/common'
|
||||
|
||||
export async function POST(request: NextRequest, { params }: {
|
||||
params: { messageId: string }
|
||||
}) {
|
||||
const body = await request.json()
|
||||
const {
|
||||
rating,
|
||||
} = body
|
||||
const { messageId } = await params
|
||||
const { user } = getInfo(request)
|
||||
const { data } = await client.messageFeedback(messageId, rating, user)
|
||||
return NextResponse.json(data)
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
import { type NextRequest } from 'next/server'
|
||||
import { NextResponse } from 'next/server'
|
||||
import { client, getInfo } from '@/app/api/utils/common'
|
||||
|
||||
export async function GET(request: NextRequest, params: { messageId: string }) {
|
||||
const { messageId } = await params
|
||||
const { user } = getInfo(request)
|
||||
const { data }: any = await client.getSuggested(messageId, user,)
|
||||
return NextResponse.json(data)
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
import { type NextRequest } from 'next/server'
|
||||
import { NextResponse } from 'next/server'
|
||||
import { client, getInfo, setSession } from '@/app/api/utils/common'
|
||||
|
||||
export async function GET(request: NextRequest) {
|
||||
const { sessionId, user } = getInfo(request)
|
||||
const { searchParams } = new URL(request.url)
|
||||
const conversationId = searchParams.get('conversation_id')
|
||||
const { data }: any = await client.getConversationMessages(user, conversationId as string)
|
||||
return NextResponse.json(data, {
|
||||
headers: setSession(sessionId),
|
||||
})
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
import { type NextRequest } from 'next/server'
|
||||
import { NextResponse } from 'next/server'
|
||||
import { client, getInfo, setSession } from '@/app/api/utils/common'
|
||||
|
||||
export async function GET(request: NextRequest) {
|
||||
const { sessionId } = getInfo(request)
|
||||
try {
|
||||
const { data } = await client.getMeta()
|
||||
return NextResponse.json(data as object, {
|
||||
headers: setSession(sessionId),
|
||||
})
|
||||
}
|
||||
catch (error) {
|
||||
return NextResponse.json([])
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
import { type NextRequest } from 'next/server'
|
||||
import { NextResponse } from 'next/server'
|
||||
import { client, getInfo, setSession } from '@/app/api/utils/common'
|
||||
|
||||
export async function GET(request: NextRequest) {
|
||||
const { sessionId, user } = getInfo(request)
|
||||
try {
|
||||
const { data } = await client.getApplicationParameters(user)
|
||||
return NextResponse.json(data as object, {
|
||||
headers: setSession(sessionId),
|
||||
})
|
||||
}
|
||||
catch (error) {
|
||||
return NextResponse.json([])
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
import { type NextRequest } from 'next/server'
|
||||
import { ChatClient } from 'dify-client-plus'
|
||||
import { v4 } from 'uuid'
|
||||
import { API_KEY, API_URL } from '@/config'
|
||||
|
||||
export const getInfo = (request: NextRequest) => {
|
||||
const username = request.cookies.get('username')?.value || 'no-user'
|
||||
const sessionId = request.cookies.get('session_id')?.value || v4()
|
||||
const user = `user_${username}:${sessionId}`
|
||||
return {
|
||||
sessionId,
|
||||
user,
|
||||
}
|
||||
}
|
||||
|
||||
export const setSession = (sessionId: string) => {
|
||||
return { 'Set-Cookie': `session_id=${sessionId}` }
|
||||
}
|
||||
|
||||
export const client = new ChatClient(API_KEY, API_URL || undefined)
|
||||
Reference in New Issue
Block a user