From eaef9a0e4ca724ac6ec6ae4452b05ac2979f4a04 Mon Sep 17 00:00:00 2001 From: sion123 <450702724@qq.com> Date: Sat, 11 Apr 2026 18:13:08 +0800 Subject: [PATCH] =?UTF-8?q?feat(agent):=20=E6=94=AF=E6=8C=81=E8=87=AA?= =?UTF-8?q?=E5=BB=BA=E9=A3=8E=E6=A0=BC=E4=B8=8E=E6=99=BA=E8=83=BD=E4=BD=93?= =?UTF-8?q?=E5=8F=8C=E6=A8=A1=E5=BC=8F=E5=AF=B9=E8=AF=9D=E7=B3=BB=E7=BB=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 `source` 字段区分智能体(`agent`)与自建风格(`prompt`)两种对话来源 - 前端统一对话组件,根据来源动态构建请求参数、显示不同样式与文案 - 后端重构 Dify 会话与消息获取逻辑,支持合并查询 Pro 与 Standard 两个 Dify App 的会话历史 - 实现复合游标分页机制,支持跨双数据源的高效分页 - 新增 `clipboard-polyfill` 依赖,统一剪贴板复制功能,提升非 HTTPS 环境兼容性 - 扩展历史记录面板,支持按来源加载对应会话与消息 - 调整侧边抽屉宽度,优化大屏显示体验 --- frontend/app/web-gold/package.json | 1 + frontend/app/web-gold/src/api/agent.js | 13 +- .../src/components/agents/ChatDrawer.vue | 69 +++--- .../components/agents/ChatDrawerHeader.vue | 22 +- .../src/components/agents/HistoryPanel.vue | 19 +- .../components/agents/MyFavoritesModal.vue | 1 + .../src/components/ui/sheet/SheetContent.vue | 4 +- frontend/app/web-gold/src/utils/clipboard.ts | 34 +-- .../app/web-gold/src/views/agents/Agents.vue | 1 + .../dify/controller/AppDifyController.java | 18 +- .../module/tik/dify/service/DifyService.java | 13 +- .../tik/dify/service/DifyServiceImpl.java | 205 +++++++++++++++--- .../module/tik/dify/vo/DifyChatReqVO.java | 3 + .../dify/vo/DifyConversationListRespVO.java | 5 + .../tik/dify/vo/DifyConversationRespVO.java | 4 + 15 files changed, 292 insertions(+), 120 deletions(-) diff --git a/frontend/app/web-gold/package.json b/frontend/app/web-gold/package.json index a9549f367f..da48fff6a2 100644 --- a/frontend/app/web-gold/package.json +++ b/frontend/app/web-gold/package.json @@ -25,6 +25,7 @@ "ai": "^6.0.39", "aplayer": "^1.10.1", "class-variance-authority": "^0.7.1", + "clipboard-polyfill": "^4.1.1", "clsx": "^2.1.1", "date-fns": "^4.1.0", "dayjs": "^1.11.18", diff --git a/frontend/app/web-gold/src/api/agent.js b/frontend/app/web-gold/src/api/agent.js index 06a92e746d..7e109e16e2 100644 --- a/frontend/app/web-gold/src/api/agent.js +++ b/frontend/app/web-gold/src/api/agent.js @@ -38,6 +38,7 @@ export async function sendChatStream(options) { conversationId, modelMode = 'pro', customSystemPrompt, + source, ctrl, onMessage, onError, @@ -59,7 +60,8 @@ export async function sendChatStream(options) { content, conversationId, modelMode, - customSystemPrompt + customSystemPrompt, + source }), onmessage: (event) => { if (typeof onMessage === 'function') { @@ -89,10 +91,11 @@ export async function sendChatStream(options) { } /** - * 获取会话列表 + * 获取会话列表(合并 pro + standard 两个 Dify 工作流) * @param {Object} params - 请求参数 * @param {number} params.agentId - 智能体ID - * @param {string} [params.lastId] - 上一页最后一条记录ID + * @param {string} [params.source] - 来源类型:agent-智能体 prompt-自建风格 + * @param {string} [params.cursor] - 复合游标(首页不传) * @param {number} [params.limit] - 返回条数,默认20 */ export function getConversations(params) { @@ -104,10 +107,12 @@ export function getConversations(params) { } /** - * 获取会话历史消息 + * 获取会话历史消息(自动定位 pro/standard App) * @param {Object} params - 请求参数 * @param {number} params.agentId - 智能体ID + * @param {string} [params.source] - 来源类型:agent-智能体 prompt-自建风格 * @param {string} params.conversationId - 会话ID + * @param {string} [params.appSource] - 来源应用标识:pro/standard * @param {string} [params.firstId] - 当前页第一条记录ID * @param {number} [params.limit] - 返回条数,默认20 */ diff --git a/frontend/app/web-gold/src/components/agents/ChatDrawer.vue b/frontend/app/web-gold/src/components/agents/ChatDrawer.vue index b31bece763..84bac91842 100644 --- a/frontend/app/web-gold/src/components/agents/ChatDrawer.vue +++ b/frontend/app/web-gold/src/components/agents/ChatDrawer.vue @@ -1,5 +1,5 @@