feat: 安装dify-client,测试接口

This commit is contained in:
lambert.li
2025-08-05 09:24:29 +08:00
parent 3c5e4f863c
commit b13f964395
5 changed files with 4121 additions and 5 deletions
+8 -5
View File
@@ -9,19 +9,22 @@
"lint": "next lint"
},
"dependencies": {
"dify-client": "^2.3.2",
"next": "15.4.5",
"react": "19.1.0",
"react-dom": "19.1.0",
"next": "15.4.5"
"uuid": "^11.1.0"
},
"devDependencies": {
"typescript": "^5",
"@eslint/eslintrc": "^3",
"@tailwindcss/postcss": "^4",
"@types/node": "^20",
"@types/react": "^19",
"@types/react-dom": "^19",
"@tailwindcss/postcss": "^4",
"tailwindcss": "^4",
"code-inspector-plugin": "^1.0.4",
"eslint": "^9",
"eslint-config-next": "15.4.5",
"@eslint/eslintrc": "^3"
"tailwindcss": "^4",
"typescript": "^5"
}
}
+4037
View File
File diff suppressed because it is too large Load Diff
+16
View File
@@ -0,0 +1,16 @@
import { type NextRequest } from 'next/server'
import { client, getInfo } from '@/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)
}
+30
View File
@@ -0,0 +1,30 @@
import { client } from '@/utils/common';
import { NextRequest, NextResponse } from 'next/server';
// 模拟获取请求信息的函数
function getInfo(request: NextRequest) {
return {
sessionId: 'session-' + Date.now(),
user: { id: 'user-' + Math.random().toString(36).substr(2, 9) }
};
}
// 模拟设置会话的函数
function setSession(sessionId: string) {
return {
'Set-Cookie': `sessionId=${sessionId}; Path=/; HttpOnly`
};
}
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) {
console.error('获取参数失败:', error);
return NextResponse.json({ error: '获取参数失败' }, { status: 500 });
}
}
+30
View File
@@ -0,0 +1,30 @@
import { ChatClient } from 'dify-client'
import { v4 } from 'uuid'
import { type NextRequest } from 'next/server'
const API_KEY = 'app-8LRYB7Gz1nyEQHW22p5u3nMv'
const APP_ID = 'a794acb6-ee01-4d11-8284-83994fb41fea'
const API_URL = 'http://10.21.77.20:30001/v1'
const client = new ChatClient(API_KEY, API_URL)
const userPrefix = `user_${APP_ID}:`
const getInfo = (request: NextRequest) => {
const sessionId = request.cookies.get('session_id')?.value || v4()
const user = userPrefix + sessionId
return {
sessionId,
user,
}
}
const setSession = (sessionId: string) => {
return { 'Set-Cookie': `session_id=${sessionId}` }
}
export {
client,
getInfo,
setSession
}