Commit 9ac602f7 authored by alex yao's avatar alex yao

feat: 输入联想优化

parent 6c4e6a66
package cn.com.poc.ai_dialogues.aggregate.impl; package cn.com.poc.ai_dialogues.aggregate.impl;
import cn.com.poc.agent_application.entity.BizAgentApplicationGcConfigEntity;
import cn.com.poc.agent_application.query.AgentApplicationDialoguesRecordQueryItem; import cn.com.poc.agent_application.query.AgentApplicationDialoguesRecordQueryItem;
import cn.com.poc.agent_application.service.BizAgentApplicationDialoguesRecordService; import cn.com.poc.agent_application.service.BizAgentApplicationDialoguesRecordService;
import cn.com.poc.agent_application.service.BizAgentApplicationGcConfigService;
import cn.com.poc.ai_dialogues.aggregate.AiDialoguesService; import cn.com.poc.ai_dialogues.aggregate.AiDialoguesService;
import cn.com.poc.ai_dialogues.constant.AiDialoguesTypeEnum; import cn.com.poc.ai_dialogues.constant.AiDialoguesTypeEnum;
import cn.com.poc.ai_dialogues.dto.AiDialoguesRecordDto; import cn.com.poc.ai_dialogues.dto.AiDialoguesRecordDto;
import cn.com.poc.ai_dialogues.entity.BizAiDialoguesEntity; import cn.com.poc.ai_dialogues.entity.BizAiDialoguesEntity;
import cn.com.poc.ai_dialogues.entity.BizAiDialoguesGuessYouAskEntity; import cn.com.poc.ai_dialogues.entity.BizAiDialoguesGuessYouAskEntity;
import cn.com.poc.ai_dialogues.entity.BizAiDialoguesProblemAssociationEntity;
import cn.com.poc.ai_dialogues.query.AiDialoguesQueryCondition; import cn.com.poc.ai_dialogues.query.AiDialoguesQueryCondition;
import cn.com.poc.ai_dialogues.query.AiDialoguesQueryItem; import cn.com.poc.ai_dialogues.query.AiDialoguesQueryItem;
import cn.com.poc.ai_dialogues.query.ProblemAssociationQueryItem;
import cn.com.poc.ai_dialogues.service.BizAiDialoguesGuessYouAskService; import cn.com.poc.ai_dialogues.service.BizAiDialoguesGuessYouAskService;
import cn.com.poc.ai_dialogues.service.BizAiDialoguesProblemAssociationService; import cn.com.poc.ai_dialogues.service.BizAiDialoguesProblemAssociationService;
import cn.com.poc.ai_dialogues.service.BizAiDialoguesService; import cn.com.poc.ai_dialogues.service.BizAiDialoguesService;
...@@ -18,8 +20,14 @@ import cn.com.poc.common.service.BizFileUploadRecordService; ...@@ -18,8 +20,14 @@ import cn.com.poc.common.service.BizFileUploadRecordService;
import cn.com.poc.common.utils.JsonUtils; import cn.com.poc.common.utils.JsonUtils;
import cn.com.poc.common.utils.StringUtils; import cn.com.poc.common.utils.StringUtils;
import cn.com.poc.expose.dto.DialoguesContextDto; import cn.com.poc.expose.dto.DialoguesContextDto;
import cn.com.poc.thirdparty.resource.demand.ai.constants.LLMRoleEnum;
import cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.Message;
import cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.ToolFunction; import cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.ToolFunction;
import cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelDemandResult;
import cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelResponse;
import cn.com.poc.thirdparty.service.LLMService;
import cn.com.yict.framemax.core.exception.BusinessException; import cn.com.yict.framemax.core.exception.BusinessException;
import com.fasterxml.jackson.core.type.TypeReference;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -56,6 +64,12 @@ public class AiDialoguesServiceImpl implements AiDialoguesService { ...@@ -56,6 +64,12 @@ public class AiDialoguesServiceImpl implements AiDialoguesService {
@Resource @Resource
private BizAiDialoguesProblemAssociationService bizAiDialoguesProblemAssociationService; private BizAiDialoguesProblemAssociationService bizAiDialoguesProblemAssociationService;
@Resource
private LLMService llmService;
@Resource
private BizAgentApplicationGcConfigService bizAgentApplicationGcConfigService;
@Override @Override
public String create(AiDialoguesTypeEnum type, Long userId) throws Exception { public String create(AiDialoguesTypeEnum type, Long userId) throws Exception {
return bizAiDialoguesService.create(type.getType(), userId); return bizAiDialoguesService.create(type.getType(), userId);
...@@ -168,17 +182,53 @@ public class AiDialoguesServiceImpl implements AiDialoguesService { ...@@ -168,17 +182,53 @@ public class AiDialoguesServiceImpl implements AiDialoguesService {
@Override @Override
public List<String> questionAssociation(String dialogueId, String question) { public List<String> questionAssociation(String dialogueId, String question) {
List<String> res = new ArrayList<>();
try {
if (StringUtils.isBlank(question)) { if (StringUtils.isBlank(question)) {
logger.warn("question is blank"); logger.warn("question is blank");
return Collections.emptyList(); return Collections.emptyList();
} }
String GC_CONFIG_CODE = "QuestionAssociation";
List<ProblemAssociationQueryItem> problemAssociationList = bizAiDialoguesProblemAssociationService.getProblemAssociationList(question); BizAgentApplicationGcConfigEntity gcConfigEntity = bizAgentApplicationGcConfigService.getByConfigCode(GC_CONFIG_CODE);
if (CollectionUtils.isNotEmpty(problemAssociationList)) { if (gcConfigEntity == null) {
return problemAssociationList.stream().map(ProblemAssociationQueryItem::getQuestion).collect(Collectors.toList()); logger.error("获取配置失败");
return Collections.emptyList();
} }
Message systemMessage = new Message();
systemMessage.setContent(gcConfigEntity.getConfigSystem());
systemMessage.setRole(LLMRoleEnum.SYSTEM.getRole());
systemMessage.setName("QUESTION_ASSOCIATION_GENERATE");
Message userMessage = new Message();
userMessage.setContent(question);
userMessage.setRole(LLMRoleEnum.USER.getRole());
LargeModelResponse largeModelResponse = new LargeModelResponse();
largeModelResponse.setModel(gcConfigEntity.getLargeModel());
largeModelResponse.setMessages(new Message[]{systemMessage, userMessage});
largeModelResponse.setStream(false);
LargeModelDemandResult largeModelDemandResult = llmService.chat(largeModelResponse);
if (largeModelDemandResult == null || StringUtils.isBlank(largeModelDemandResult.getMessage())) {
logger.error("大模型响应错误");
return Collections.emptyList(); return Collections.emptyList();
} }
String message = largeModelDemandResult.getMessage();
int start = message.indexOf("[");
int end = message.indexOf("]");
String sub = message.substring(start, end + 1);
res = JsonUtils.deSerialize(sub, new TypeReference<List<String>>() {
}.getType());
return res;
} finally {
if (CollectionUtils.isNotEmpty(res)) {
for (String que : res) {
BizAiDialoguesProblemAssociationEntity bizAiDialoguesProblemAssociationEntity = new BizAiDialoguesProblemAssociationEntity();
bizAiDialoguesProblemAssociationEntity.setQuestion(que);
bizAiDialoguesProblemAssociationService.save(bizAiDialoguesProblemAssociationEntity);
}
}
}
}
@Override @Override
public List<String> guessYouAsk(String type) throws Exception { public List<String> guessYouAsk(String type) throws Exception {
......
...@@ -14,7 +14,7 @@ public interface BizAiDialoguesProblemAssociationService extends BaseService { ...@@ -14,7 +14,7 @@ public interface BizAiDialoguesProblemAssociationService extends BaseService {
List<BizAiDialoguesProblemAssociationEntity> findByExample(BizAiDialoguesProblemAssociationEntity example, PagingInfo pagingInfo) throws Exception; List<BizAiDialoguesProblemAssociationEntity> findByExample(BizAiDialoguesProblemAssociationEntity example, PagingInfo pagingInfo) throws Exception;
BizAiDialoguesProblemAssociationEntity save(BizAiDialoguesProblemAssociationEntity entity) throws Exception; BizAiDialoguesProblemAssociationEntity save(BizAiDialoguesProblemAssociationEntity entity) ;
BizAiDialoguesProblemAssociationEntity update(BizAiDialoguesProblemAssociationEntity entity) throws Exception; BizAiDialoguesProblemAssociationEntity update(BizAiDialoguesProblemAssociationEntity entity) throws Exception;
......
...@@ -50,7 +50,7 @@ public class BizAiDialoguesProblemAssociationServiceImpl extends BaseServiceImpl ...@@ -50,7 +50,7 @@ public class BizAiDialoguesProblemAssociationServiceImpl extends BaseServiceImpl
return result; return result;
} }
public BizAiDialoguesProblemAssociationEntity save(BizAiDialoguesProblemAssociationEntity entity) throws Exception { public BizAiDialoguesProblemAssociationEntity save(BizAiDialoguesProblemAssociationEntity entity) {
Assert.notNull(entity); Assert.notNull(entity);
entity.setId(null); entity.setId(null);
BizAiDialoguesProblemAssociationModel model = BizAiDialoguesProblemAssociationConvert.entityToModel(entity); BizAiDialoguesProblemAssociationModel model = BizAiDialoguesProblemAssociationConvert.entityToModel(entity);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment