From c8598d3dea75092ac90d0e30a9692b57e773534b Mon Sep 17 00:00:00 2001 From: shenaowei <450702724@qq.com> Date: Mon, 23 Feb 2026 01:04:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/app/web-gold/src/api/agent.js | 5 ++++- .../web-gold/src/components/agents/ChatDrawer.vue | 1 + .../module/tik/dify/service/DifyServiceImpl.java | 13 +++++++++---- .../yudao/module/tik/dify/vo/DifyChatReqVO.java | 3 +++ .../tik/muye/aiagent/mapper/AiAgentMapper.java | 4 +++- .../views/muye/aimodelconfig/AiModelConfigForm.vue | 4 ++-- .../src/views/muye/aimodelconfig/index.vue | 12 ++++++------ 7 files changed, 28 insertions(+), 14 deletions(-) diff --git a/frontend/app/web-gold/src/api/agent.js b/frontend/app/web-gold/src/api/agent.js index 35be0e13d3..68a728786e 100644 --- a/frontend/app/web-gold/src/api/agent.js +++ b/frontend/app/web-gold/src/api/agent.js @@ -25,6 +25,7 @@ export function getAgentList() { * @param {number} options.agentId - 智能体ID * @param {string} options.content - 用户输入内容 * @param {string} [options.conversationId] - 会话ID(可选,首次对话不传) + * @param {string} [options.modelMode] - 模型模式:pro-深度版 standard-标准版 * @param {AbortController} [options.ctrl] - 取消控制器 * @param {Function} options.onMessage - 消息回调 * @param {Function} [options.onError] - 错误回调 @@ -35,6 +36,7 @@ export async function sendChatStream(options) { agentId, content, conversationId, + modelMode = 'pro', ctrl, onMessage, onError, @@ -54,7 +56,8 @@ export async function sendChatStream(options) { body: JSON.stringify({ agentId, content, - conversationId + conversationId, + modelMode }), onmessage: (event) => { if (typeof onMessage === 'function') { diff --git a/frontend/app/web-gold/src/components/agents/ChatDrawer.vue b/frontend/app/web-gold/src/components/agents/ChatDrawer.vue index e90f5229c2..3f2534b85e 100644 --- a/frontend/app/web-gold/src/components/agents/ChatDrawer.vue +++ b/frontend/app/web-gold/src/components/agents/ChatDrawer.vue @@ -207,6 +207,7 @@ const handleSend = async () => { agentId: props.agent?.id, content: question, conversationId: conversationId.value, + modelMode: modelMode.value, ctrl: abortController.value, onMessage: (result) => { if (result.event === 'message' && result.content) { diff --git a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/dify/service/DifyServiceImpl.java b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/dify/service/DifyServiceImpl.java index e6b26c6ca8..4f84c94be5 100644 --- a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/dify/service/DifyServiceImpl.java +++ b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/dify/service/DifyServiceImpl.java @@ -29,8 +29,10 @@ public class DifyServiceImpl implements DifyService { /** Dify 平台标识 */ private static final String PLATFORM_DIFY = "dify"; - /** Dify 模型类型 */ - private static final String MODEL_TYPE_WRITING = "writing"; + /** Dify 模型类型 - Pro深度版 */ + private static final String MODEL_TYPE_WRITING_PRO = "writing_pro"; + /** Dify 模型类型 - 标准版 */ + private static final String MODEL_TYPE_WRITING_STANDARD = "writing_standard"; @Resource private AiAgentService aiAgentService; @@ -55,8 +57,11 @@ public class DifyServiceImpl implements DifyService { throw new RuntimeException("智能体不存在"); } - // 2. 获取积分配置 - AiModelConfigDO config = pointsService.getConfig(PLATFORM_DIFY, MODEL_TYPE_WRITING); + // 2. 根据 modelMode 获取对应的积分配置 + String modelType = "standard".equals(reqVO.getModelMode()) + ? MODEL_TYPE_WRITING_STANDARD + : MODEL_TYPE_WRITING_PRO; + AiModelConfigDO config = pointsService.getConfig(PLATFORM_DIFY, modelType); // 3. 预检积分 pointsService.checkPoints(userId, config.getConsumePoints()); diff --git a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/dify/vo/DifyChatReqVO.java b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/dify/vo/DifyChatReqVO.java index 1ad6eb551b..fca17dafbf 100644 --- a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/dify/vo/DifyChatReqVO.java +++ b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/dify/vo/DifyChatReqVO.java @@ -23,4 +23,7 @@ public class DifyChatReqVO { @Schema(description = "会话ID(可选,首次对话不传)") private String conversationId; + @Schema(description = "模型模式:pro-深度版 standard-标准版", example = "pro") + private String modelMode = "pro"; + } diff --git a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/aiagent/mapper/AiAgentMapper.java b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/aiagent/mapper/AiAgentMapper.java index 9a9dbf692f..aaa5d4e64f 100644 --- a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/aiagent/mapper/AiAgentMapper.java +++ b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/aiagent/mapper/AiAgentMapper.java @@ -34,10 +34,12 @@ public interface AiAgentMapper extends BaseMapperX { } /** - * 查询启用状态的智能体列表 + * 查询启用状态的智能体列表(只查询必要字段) */ default List selectEnabledList() { return selectList(new LambdaQueryWrapperX() + .select(AiAgentDO::getId, AiAgentDO::getAgentId, AiAgentDO::getAgentName, + AiAgentDO::getIcon, AiAgentDO::getDescription, AiAgentDO::getCategoryName) .eq(AiAgentDO::getStatus, 1) .orderByDesc(AiAgentDO::getId)); } diff --git a/yudao-ui-admin-vue3/src/views/muye/aimodelconfig/AiModelConfigForm.vue b/yudao-ui-admin-vue3/src/views/muye/aimodelconfig/AiModelConfigForm.vue index cb8dc159f3..38ab174e62 100644 --- a/yudao-ui-admin-vue3/src/views/muye/aimodelconfig/AiModelConfigForm.vue +++ b/yudao-ui-admin-vue3/src/views/muye/aimodelconfig/AiModelConfigForm.vue @@ -10,7 +10,7 @@ - + @@ -33,7 +33,7 @@ - + 图像 文本 diff --git a/yudao-ui-admin-vue3/src/views/muye/aimodelconfig/index.vue b/yudao-ui-admin-vue3/src/views/muye/aimodelconfig/index.vue index 93ea9b981c..42ddb947a2 100644 --- a/yudao-ui-admin-vue3/src/views/muye/aimodelconfig/index.vue +++ b/yudao-ui-admin-vue3/src/views/muye/aimodelconfig/index.vue @@ -17,10 +17,10 @@ class="!w-240px" /> - + - - + + - + - +