feat: 添加对话应用选择和知识库切换功能

- 新增对话应用管理模块(dify-chat-apps),支持获取和切换对话应用
- 优化对话应用切换后自动刷新会话列表功能
- 知识库管理页面新增下拉选择器,支持切换不同知识库
- API 层支持 app_id 参数传递,实现多应用会话隔离

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-12-08 01:44:34 +08:00
parent 27aff59152
commit 3f5c23123b
27 changed files with 925 additions and 167 deletions
+9 -2
View File
@@ -32,8 +32,11 @@ export const difyClient = {
/**
* 获取会话列表
*
* @param jwt - JWT 认证令牌
* @param appId - 对话应用 ID(可选,用于获取特定应用的会话列表)
*/
async getConversations(jwt?: string): Promise<any> {
async getConversations(jwt?: string, appId?: string): Promise<any> {
const params = new URLSearchParams({
limit: '100',
first_id: '',
@@ -41,6 +44,7 @@ export const difyClient = {
const response = await difyFetch(`conversations?${params}`, {
method: 'GET',
appId, // 传递应用 ID,会在请求头中添加 X-Dify-App-Id
}, jwt);
return response.json();
},
@@ -70,6 +74,7 @@ export const difyClient = {
* @param conversationId - 会话 ID
* @param files - 附件文件
* @param jwt - JWT 认证令牌
* @param appId - 对话应用 ID(可选,用于切换不同的 Dify 应用)
* @returns 对于流式响应返回 Response 对象,否则返回 JSON
*/
async createChatMessage(
@@ -78,7 +83,8 @@ export const difyClient = {
responseMode: string = 'streaming',
conversationId?: string,
files?: any[],
jwt?: string
jwt?: string,
appId?: string
): Promise<Response | any> {
const body = {
inputs,
@@ -90,6 +96,7 @@ export const difyClient = {
const response = await difyFetch('chat-messages', {
method: 'POST',
body: JSON.stringify(body),
appId, // 传递应用 ID,会在请求头中添加 X-Dify-App-Id
}, jwt);
// 对于流式响应,直接返回 Response 对象