Commit 10cb0e1a authored by yangyw's avatar yangyw

feature: 过滤参数修改为助手名称

parent e23afb5d
......@@ -29,6 +29,7 @@ import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.reactive.function.client.WebClient;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import java.util.*;
import java.util.stream.Collectors;
......@@ -60,6 +61,9 @@ public class AppChatCompletionService {
@Value("${deepseek.app_id}")
private String dsAppId;
@Value("${deepseek.diss_api_base}")
private String dissApiBase;
private final RestTemplate restTemplate = new RestTemplate();
private final ChatCompletionService chatCompletionService;
......@@ -368,7 +372,7 @@ public class AppChatCompletionService {
Integer chatCompletionId = chatCompletionService.saveUserQaSession(saveModel);
// 保存问答详情
Integer userQaRecordId = chatCompletionService.saveUserQaRecord(chatCompletionId, 0, null, request.getContent(), request.getAssistantId());
Integer userQaRecordId = chatCompletionService.saveUserQaRecord(chatCompletionId, 0, null, request.getContent(), request.getAssistantId(), "");
// 问一下AI
AiChatComplateResultDto complateResultDto = ask4Knowledge(sessionId, userPrincipal.getUserId(), request.getContent(), request.getAssistantId());
......@@ -384,7 +388,7 @@ public class AppChatCompletionService {
}
// 保存AI问答详情
chatCompletionService.saveUserQaRecord(chatCompletionId, 1, userQaRecordId, replyContent, request.getAssistantId());
chatCompletionService.saveUserQaRecord(chatCompletionId, 1, userQaRecordId, replyContent, request.getAssistantId(), "");
result.setChatCompletionId(chatCompletionId);
result.setReplyContent(replyContent);
......@@ -427,7 +431,7 @@ public class AppChatCompletionService {
Integer chatCompletionId = chatCompletionService.saveUserQaSession(saveModel);
// 保存问答详情
Integer userQaRecordId = chatCompletionService.saveUserQaRecord(chatCompletionId, 0, null, request.getContent(), request.getAssistantId());
Integer userQaRecordId = chatCompletionService.saveUserQaRecord(chatCompletionId, 0, null, request.getContent(), request.getAssistantId(), "");
// 获取随机问题
final List<HotQaMobileDto> hots = Lists.newArrayList();
......@@ -493,7 +497,7 @@ public class AppChatCompletionService {
chatCompletionService.saveUserQaSession(updateModel);
}
// 保存AI问答详情
chatCompletionService.saveUserQaRecord(chatCompletionId, 1, userQaRecordId, replyContent, request.getAssistantId());
chatCompletionService.saveUserQaRecord(chatCompletionId, 1, userQaRecordId, replyContent, request.getAssistantId(), "");
}
).map(v -> ServerSentEvent.builder(v).build());
}
......@@ -534,7 +538,7 @@ public class AppChatCompletionService {
Integer chatCompletionId = chatCompletionService.saveUserQaSession(saveModel);
// 保存问答详情
Integer userQaRecordId = chatCompletionService.saveUserQaRecord(chatCompletionId, 0, null, request.getContent(), request.getAssistantId());
Integer userQaRecordId = chatCompletionService.saveUserQaRecord(chatCompletionId, 0, null, request.getContent(), request.getAssistantId(), "");
// 获取随机问题
final List<HotQaMobileDto> hots = Lists.newArrayList();
......@@ -577,6 +581,7 @@ public class AppChatCompletionService {
final String[] thoughtContent = {""};
final String[] replyContent = {""};
final String[] difySessionId = {""};
final String[] recordId = {""};
final Boolean[] replyFlag = {false};
String finalSessionId = sessionId;
return webClient.post().uri(dsApiBase).accept(MediaType.TEXT_EVENT_STREAM).bodyValue(reqBody.toJSONString()).exchangeToFlux(r -> r.bodyToFlux(String.class))
......@@ -611,6 +616,9 @@ public class AppChatCompletionService {
if(ObjectUtil.isEmpty(difySessionId[0]) && ObjectUtil.isNotEmpty(payload.getString("session_id"))) {
difySessionId[0] = payload.getString("session_id");
}
if (StrUtil.isBlank(recordId[0]) && StrUtil.isNotBlank(payload.getString("record_id"))) {
recordId[0] = payload.getString("record_id");
}
}
}
String finalContent = thoughtContent[0];
......@@ -634,7 +642,7 @@ public class AppChatCompletionService {
chatCompletionService.saveUserQaSession(updateModel);
}
// 保存AI问答详情
chatCompletionService.saveUserQaRecord(chatCompletionId, 1, userQaRecordId, finalContent, request.getAssistantId());
chatCompletionService.saveUserQaRecord(chatCompletionId, 1, userQaRecordId, finalContent, request.getAssistantId(), recordId[0]);
}
).map(v -> ServerSentEvent.builder(v).build());
}
......@@ -714,6 +722,23 @@ public class AppChatCompletionService {
saveModel.setId(model.getId());
saveModel.setDiss(status);
chatCompletionService.saveUserQaRecord(saveModel);
// 提交腾讯云踩的数据
if (ObjectUtil.equals(1, status)) {
if (StrUtil.isNotBlank(model.getRecordId())) {
com.alibaba.fastjson2.JSONObject body = new com.alibaba.fastjson2.JSONObject();
body.put("RecordId", model.getRecordId());
body.put("Score", 2);
body.put("BotAppKey", dsAppKey);
webClient.post().uri(dissApiBase)
.header("X-TC-Action", "RateMsgRecord")
.header("X-TC-Region", "ap-guangzhou")
.header("X-TC-Version", "2023-11-30")
.contentType(MediaType.APPLICATION_JSON).bodyValue(body.toJSONString())
.exchangeToMono(r -> r.bodyToMono(String.class)).subscribe(res -> {
log.info("踩数据提交结果:{}", res);
});
}
}
}
}
......
......@@ -35,6 +35,11 @@ public class UserChatCompletionHistoryResponseModel implements Serializable {
*/
private Integer likes;
/**
* 问答记录ID
*/
private String recordId;
/**
* 创建时间
*/
......
......@@ -30,7 +30,7 @@ public interface ChatCompletionService {
Integer saveUserQaSession(UserChatCompletionSaveModel dto);
Integer saveUserQaRecord(Integer chatCompletionId, Integer type, Integer replyMessageId, String content, Integer assistantId);
Integer saveUserQaRecord(Integer chatCompletionId, Integer type, Integer replyMessageId, String content, Integer assistantId, String recordId);
Integer saveUserQaRecord(UserQaHistorySaveModel dto);
......
......@@ -149,13 +149,14 @@ public class ChatCompletionServiceImpl implements ChatCompletionService{
}
@Override
public Integer saveUserQaRecord(Integer chatCompletionId, Integer type, Integer replyMessageId, String content, Integer assistantId) {
public Integer saveUserQaRecord(Integer chatCompletionId, Integer type, Integer replyMessageId, String content, Integer assistantId, String recordId) {
UserChatCompletionHistoryEntity entity = new UserChatCompletionHistoryEntity();
entity.setChatCompletionId(chatCompletionId);
entity.setType(type);
entity.setReplyMessageId(replyMessageId);
entity.setContent(content);
entity.setAssistantId(assistantId);
entity.setRecordId(recordId);
entity.setCreateTime(new Date());
chatCompletionHistoryMapper.insertOrUpdateSelective(entity);
return entity.getId();
......
......@@ -65,6 +65,13 @@ public class UserChatCompletionHistoryEntity implements Serializable {
* AI回复用户消息ID
*/
private Integer replyMessageId;
/**
* 问答记录ID
*/
private String recordId;
/**
* 创建时间
*/
......
......@@ -28,6 +28,7 @@ deepseek:
secret_id: AKIDHMA2jAKD6dwzpPikWR5TbT5RWLtAAuNZ
app_key: imNDldBw
api_base: https://wss.lke.cloud.tencent.com/v1/qbot/chat/sse
diss_api_base: https://lke.tencentcloudapi.com/
---
spring:
config:
......
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