From 85069103bd0b1a801924c660daad78aedd0bfb6c Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Thu, 18 Sep 2025 16:52:52 +0800 Subject: [PATCH] ``` feat(AiMemberTalkStreamService): 添加answerV3方法以支持流式生成报告 --- src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java | 33 +++++++++++++++++++++++---------- 1 files changed, 23 insertions(+), 10 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java index 11c6794..5e5d556 100644 --- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java @@ -9,7 +9,7 @@ import cc.mrbird.febs.ai.res.ai.AiResponse; import cc.mrbird.febs.ai.res.ai.RadarDataItem; import cc.mrbird.febs.ai.res.ai.Report; -import cc.mrbird.febs.ai.res.memberTalk.ApiMemberTalkStreamVo; +import cc.mrbird.febs.ai.res.memberTalk.ApiMemberTalkStreamVoOld; import cc.mrbird.febs.ai.service.AiProductRoleService; import cc.mrbird.febs.ai.service.AiService; import cc.mrbird.febs.ai.service.AiTalkItemService; @@ -126,6 +126,19 @@ type = Integer.parseInt(dataDictionaryCustom.getValue()); } return type; + } + + @Override + public String getSystemSetLTAiPrompt() { + String prompt = "请将问题转换为中文,并给出一个最详细的答案。"; + DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( + LlmStrategyContextEnum.LLM_LING_TONG_PROMPT.getCode(), + LlmStrategyContextEnum.LLM_LING_TONG_PROMPT.getCode() + ); + if (dataDictionaryCustom != null) { + prompt = dataDictionaryCustom.getValue(); + } + return prompt; } @Override @@ -420,18 +433,18 @@ } - ApiMemberTalkStreamVo apiMemberTalkStreamVo = new ApiMemberTalkStreamVo(); + ApiMemberTalkStreamVoOld apiMemberTalkStreamVoOld = new ApiMemberTalkStreamVoOld(); // 判断是否触发深度思考,触发则打印模型输出的思维链内容 ChatMessage message = choice.getMessage(); if (message.getReasoningContent()!= null &&!message.getReasoningContent().isEmpty()) { - apiMemberTalkStreamVo.setReasoningContent(message.getReasoningContent()); + apiMemberTalkStreamVoOld.setReasoningContent(message.getReasoningContent()); // System.out.print(message.getReasoningContent()); } String content = message.getContent() == null ? "" : message.getContent().toString(); - apiMemberTalkStreamVo.setContent(content); + apiMemberTalkStreamVoOld.setContent(content); System.out.print(content); - return new FebsResponse().success().data(apiMemberTalkStreamVo); + return new FebsResponse().success().data(apiMemberTalkStreamVoOld); }) .onErrorResume(throwable -> { log.error("流式调用AI服务失败,问题输入: {}", question, throwable); @@ -454,7 +467,7 @@ final ChatMessage systemMessage = ChatMessage.builder() .role(ChatMessageRole.SYSTEM) - .content("你是豆包,是由字节跳动开发的 AI 人工智能助手") + .content("你是豆包,是由字节跳动开发的 AI 人工智能助手,请使用中文回复") .build(); messages.add(systemMessage); @@ -500,12 +513,12 @@ } ChatMessage message = choice.getMessage(); - ApiMemberTalkStreamVo apiMemberTalkStreamVo = new ApiMemberTalkStreamVo(); + ApiMemberTalkStreamVoOld apiMemberTalkStreamVoOld = new ApiMemberTalkStreamVoOld(); // 处理 reasoning content String reasoningContent = message.getReasoningContent(); if (StrUtil.isNotEmpty(reasoningContent)) { - apiMemberTalkStreamVo.setReasoningContent(reasoningContent); + apiMemberTalkStreamVoOld.setReasoningContent(reasoningContent); log.debug("Reasoning Content: {}", reasoningContent); } @@ -514,11 +527,11 @@ if (message.getContent() != null) { content = message.getContent().toString(); } - apiMemberTalkStreamVo.setContent(content); + apiMemberTalkStreamVoOld.setContent(content); System.out.print(content); log.debug("Content: {}", content); - return new FebsResponse().success().data(apiMemberTalkStreamVo); + return new FebsResponse().success().data(apiMemberTalkStreamVoOld); }) .onErrorResume(throwable -> { log.error("流式调用AI服务失败,问题输入: {}", question, throwable); -- Gitblit v1.9.1