新增用户问题记录功能。
This commit is contained in:
parent
218a2af06e
commit
97f68690b2
|
|
@ -2,6 +2,8 @@ package com.electromagnetic.industry.software.manage.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.electromagnetic.industry.software.manage.pojo.models.AiFileUploadRecord;
|
import com.electromagnetic.industry.software.manage.pojo.models.AiFileUploadRecord;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
public interface AiFileUploadRecordMapper extends BaseMapper<AiFileUploadRecord> {
|
public interface AiFileUploadRecordMapper extends BaseMapper<AiFileUploadRecord> {
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
package com.electromagnetic.industry.software.manage.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.electromagnetic.industry.software.manage.pojo.models.AiQuestionRecord;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface AiQuestionRecordMapper extends BaseMapper<AiQuestionRecord> {
|
||||||
|
}
|
||||||
|
|
@ -3,8 +3,10 @@ package com.electromagnetic.industry.software.manage.pojo.models;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@TableName(value = "ai_file_upload_record")
|
@TableName(value = "ai_file_upload_record")
|
||||||
@Data
|
@Data
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
package com.electromagnetic.industry.software.manage.pojo.models;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@TableName(value = "ai_question_record")
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class AiQuestionRecord extends BaseModel{
|
||||||
|
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
@TableField(value = "question")
|
||||||
|
private String question;
|
||||||
|
|
||||||
|
@TableField(value = "effect_flag")
|
||||||
|
private Integer effectFlag;
|
||||||
|
}
|
||||||
|
|
@ -10,9 +10,10 @@ import com.electromagnetic.industry.software.common.enums.EffectFlagEnum;
|
||||||
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.manage.config.ElePropertyConfig;
|
|
||||||
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.pojo.models.AiFileUploadRecord;
|
import com.electromagnetic.industry.software.manage.pojo.models.AiFileUploadRecord;
|
||||||
|
import com.electromagnetic.industry.software.manage.pojo.models.AiQuestionRecord;
|
||||||
import com.electromagnetic.industry.software.manage.pojo.req.QueryDTO;
|
import com.electromagnetic.industry.software.manage.pojo.req.QueryDTO;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
@ -38,7 +39,6 @@ import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
|
|
@ -60,12 +60,7 @@ public class ChatService {
|
||||||
private AiFileUploadRecordMapper aiFileUploadRecordMapper;
|
private AiFileUploadRecordMapper aiFileUploadRecordMapper;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private ElePropertyConfig elePropertyConfig;
|
private AiQuestionRecordMapper aiQuestionRecordMapper;
|
||||||
|
|
||||||
public void add(String content) {
|
|
||||||
List<Document> documents = Stream.of(content).map(Document::new).collect(Collectors.toList());
|
|
||||||
vectorStore.write(documents);
|
|
||||||
}
|
|
||||||
|
|
||||||
public ElectromagneticResult<?> deleteDocument(List<String> ids) {
|
public ElectromagneticResult<?> deleteDocument(List<String> ids) {
|
||||||
List<String> vectorIds = aiFileUploadRecordMapper.selectList(Wrappers.lambdaQuery(AiFileUploadRecord.class)
|
List<String> vectorIds = aiFileUploadRecordMapper.selectList(Wrappers.lambdaQuery(AiFileUploadRecord.class)
|
||||||
|
|
@ -128,10 +123,14 @@ 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());
|
||||||
|
aiQuestionRecordMapper.insert(record);
|
||||||
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());
|
||||||
|
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())))
|
||||||
.stream().chatResponse();
|
.stream().chatResponse();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue