From 3fc02a071ab4ab126cfb90901076735ff672ca19 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 20 Oct 2025 11:36:46 +0800
Subject: [PATCH] feat(ai): 添加公司编码申请功能
---
src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java | 50 ++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 40 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 73aa812..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,11 +9,14 @@
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;
+import cc.mrbird.febs.ai.strategy.enumerates.LlmStrategyContextEnum;
import cc.mrbird.febs.common.entity.FebsResponse;
+import cc.mrbird.febs.mall.entity.DataDictionaryCustom;
+import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
@@ -74,6 +77,7 @@
private final AiProductRoleService aiProductRoleService;
private final ObjectMapper objectMapper;
private final AiTalkItemService aiTalkItemService;
+ private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
@Value("${ai.service.ak}")
private String ak;
@@ -109,6 +113,32 @@
if (service != null) {
service.shutdownExecutor();
}
+ }
+
+ @Override
+ public Integer getSystemSetAiType() {
+ Integer type = 2;
+ DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ LlmStrategyContextEnum.LLM_STRATEGY.getCode(),
+ LlmStrategyContextEnum.LLM_STRATEGY.getCode()
+ );
+ if (dataDictionaryCustom != null) {
+ 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
@@ -403,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);
@@ -437,7 +467,7 @@
final ChatMessage systemMessage = ChatMessage.builder()
.role(ChatMessageRole.SYSTEM)
- .content("你是豆包,是由字节跳动开发的 AI 人工智能助手")
+ .content("你是豆包,是由字节跳动开发的 AI 人工智能助手,请使用中文回复")
.build();
messages.add(systemMessage);
@@ -483,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);
}
@@ -497,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