修改已知问题。
This commit is contained in:
parent
97f68690b2
commit
b0fe94d2ee
|
|
@ -1,6 +1,7 @@
|
||||||
package com.electromagnetic.industry.software.manage.config;
|
package com.electromagnetic.industry.software.manage.config;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
|
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
|
||||||
|
import com.electromagnetic.industry.software.common.pojo.UserLoginInfo;
|
||||||
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
|
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
|
||||||
import org.apache.ibatis.reflection.MetaObject;
|
import org.apache.ibatis.reflection.MetaObject;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
@ -29,7 +30,7 @@ public class EdMetaObjectHandler implements MetaObjectHandler {
|
||||||
this.strictInsertFill(metaObject, "updatedAt", Date.class, new Date());
|
this.strictInsertFill(metaObject, "updatedAt", Date.class, new Date());
|
||||||
}
|
}
|
||||||
if (metaObject.hasGetter("createdBy")) {
|
if (metaObject.hasGetter("createdBy")) {
|
||||||
this.setFieldValByName("createdBy", Optional.ofNullable(UserThreadLocal.getUserId()).orElse(""), metaObject);
|
this.setFieldValByName("createdBy", Optional.ofNullable(UserThreadLocal.getUser()).map(UserLoginInfo::getUserId).orElse(""), metaObject);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -45,7 +46,7 @@ public class EdMetaObjectHandler implements MetaObjectHandler {
|
||||||
this.setFieldValByName("updatedTime", new Date(), metaObject);
|
this.setFieldValByName("updatedTime", new Date(), metaObject);
|
||||||
}
|
}
|
||||||
if (metaObject.hasGetter("updatedBy")) {
|
if (metaObject.hasGetter("updatedBy")) {
|
||||||
this.setFieldValByName("updatedBy", Optional.ofNullable(UserThreadLocal.getUserId()).orElse(""), metaObject);
|
this.setFieldValByName("updatedBy", Optional.ofNullable(UserThreadLocal.getUser()).map(UserLoginInfo::getUserId).orElse(""), metaObject);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package com.electromagnetic.industry.software.manage.controller;
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
|
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
|
||||||
|
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
|
||||||
import com.electromagnetic.industry.software.manage.ai.ChatTaskThread1;
|
import com.electromagnetic.industry.software.manage.ai.ChatTaskThread1;
|
||||||
import com.electromagnetic.industry.software.manage.ai.ChatTaskThread2;
|
import com.electromagnetic.industry.software.manage.ai.ChatTaskThread2;
|
||||||
import com.electromagnetic.industry.software.manage.ai.ThreadUtil;
|
import com.electromagnetic.industry.software.manage.ai.ThreadUtil;
|
||||||
|
|
@ -46,6 +47,7 @@ public class AiController {
|
||||||
if (StrUtil.isEmpty(queryDTO.getMsg())) {
|
if (StrUtil.isEmpty(queryDTO.getMsg())) {
|
||||||
return Flux.empty();
|
return Flux.empty();
|
||||||
}
|
}
|
||||||
|
queryDTO.setUserId(UserThreadLocal.getUserId());
|
||||||
ChatTaskThread1 chatTaskThread = new ChatTaskThread1(chatService, queryDTO);
|
ChatTaskThread1 chatTaskThread = new ChatTaskThread1(chatService, queryDTO);
|
||||||
Future<Flux<String>> future = ThreadUtil.getThreadPool().submit(chatTaskThread);
|
Future<Flux<String>> future = ThreadUtil.getThreadPool().submit(chatTaskThread);
|
||||||
return future.get();
|
return future.get();
|
||||||
|
|
@ -56,6 +58,7 @@ public class AiController {
|
||||||
if (StrUtil.isEmpty(queryDTO.getMsg())) {
|
if (StrUtil.isEmpty(queryDTO.getMsg())) {
|
||||||
return Flux.empty();
|
return Flux.empty();
|
||||||
}
|
}
|
||||||
|
queryDTO.setUserId(UserThreadLocal.getUserId());
|
||||||
ChatTaskThread2 chatTaskThread2 = new ChatTaskThread2(chatService, queryDTO);
|
ChatTaskThread2 chatTaskThread2 = new ChatTaskThread2(chatService, queryDTO);
|
||||||
Future<Flux<ChatResponse>> future = ThreadUtil.getThreadPool().submit(chatTaskThread2);
|
Future<Flux<ChatResponse>> future = ThreadUtil.getThreadPool().submit(chatTaskThread2);
|
||||||
return future.get();
|
return future.get();
|
||||||
|
|
|
||||||
|
|
@ -7,5 +7,5 @@ public class QueryDTO {
|
||||||
|
|
||||||
private String msg;
|
private String msg;
|
||||||
|
|
||||||
// private String userId;
|
private String userId;
|
||||||
}
|
}
|
||||||
|
|
@ -7,9 +7,11 @@ import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.crypto.digest.DigestUtil;
|
import cn.hutool.crypto.digest.DigestUtil;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.electromagnetic.industry.software.common.enums.EffectFlagEnum;
|
import com.electromagnetic.industry.software.common.enums.EffectFlagEnum;
|
||||||
|
import com.electromagnetic.industry.software.common.pojo.UserLoginInfo;
|
||||||
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
|
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
|
||||||
import com.electromagnetic.industry.software.common.util.ElectromagneticResultUtil;
|
import com.electromagnetic.industry.software.common.util.ElectromagneticResultUtil;
|
||||||
import com.electromagnetic.industry.software.common.util.IdWorker;
|
import com.electromagnetic.industry.software.common.util.IdWorker;
|
||||||
|
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
|
||||||
import com.electromagnetic.industry.software.manage.mapper.AiFileUploadRecordMapper;
|
import com.electromagnetic.industry.software.manage.mapper.AiFileUploadRecordMapper;
|
||||||
import com.electromagnetic.industry.software.manage.mapper.AiQuestionRecordMapper;
|
import com.electromagnetic.industry.software.manage.mapper.AiQuestionRecordMapper;
|
||||||
import com.electromagnetic.industry.software.manage.pojo.models.AiFileUploadRecord;
|
import com.electromagnetic.industry.software.manage.pojo.models.AiFileUploadRecord;
|
||||||
|
|
@ -123,13 +125,23 @@ public class ChatService {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Flux<String> chatStreamStr(QueryDTO queryDTO) {
|
public Flux<String> chatStreamStr(QueryDTO queryDTO) {
|
||||||
AiQuestionRecord record = new AiQuestionRecord().setQuestion(queryDTO.getMsg()).setId(IdWorker.getSnowFlakeIdString());
|
AiQuestionRecord record = new AiQuestionRecord()
|
||||||
|
.setQuestion(queryDTO.getMsg())
|
||||||
|
.setId(IdWorker.getSnowFlakeIdString());
|
||||||
|
UserLoginInfo userLoginInfo = new UserLoginInfo();
|
||||||
|
userLoginInfo.setUserId(queryDTO.getUserId());
|
||||||
|
UserThreadLocal.set(userLoginInfo);
|
||||||
aiQuestionRecordMapper.insert(record);
|
aiQuestionRecordMapper.insert(record);
|
||||||
|
UserThreadLocal.remove();
|
||||||
return ChatClient.builder(model).defaultAdvisors(messageChatMemoryAdvisor, questionAnswerAdvisor).build().prompt(queryDTO.getMsg()).stream().content();
|
return ChatClient.builder(model).defaultAdvisors(messageChatMemoryAdvisor, questionAnswerAdvisor).build().prompt(queryDTO.getMsg()).stream().content();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Flux<ChatResponse> chatStreamResponse(QueryDTO queryDTO) {
|
public Flux<ChatResponse> chatStreamResponse(QueryDTO queryDTO) {
|
||||||
AiQuestionRecord record = new AiQuestionRecord().setQuestion(queryDTO.getMsg()).setId(IdWorker.getSnowFlakeIdString());
|
AiQuestionRecord record = new AiQuestionRecord().setQuestion(queryDTO.getMsg()).setId(IdWorker.getSnowFlakeIdString());
|
||||||
|
UserLoginInfo userLoginInfo = new UserLoginInfo();
|
||||||
|
userLoginInfo.setUserId(queryDTO.getUserId());
|
||||||
|
UserThreadLocal.set(userLoginInfo);
|
||||||
|
UserThreadLocal.remove();
|
||||||
aiQuestionRecordMapper.insert(record);
|
aiQuestionRecordMapper.insert(record);
|
||||||
return ChatClient.builder(model).defaultAdvisors(messageChatMemoryAdvisor, questionAnswerAdvisor).build()
|
return ChatClient.builder(model).defaultAdvisors(messageChatMemoryAdvisor, questionAnswerAdvisor).build()
|
||||||
.prompt(new Prompt(new UserMessage(queryDTO.getMsg())))
|
.prompt(new Prompt(new UserMessage(queryDTO.getMsg())))
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue