新增用户问题记录功能。
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.electromagnetic.industry.software.manage.pojo.models.AiFileUploadRecord;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
@Mapper
|
||||
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.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName(value = "ai_file_upload_record")
|
||||
@Data
|
||||
@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.util.ElectromagneticResultUtil;
|
||||
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.AiQuestionRecordMapper;
|
||||
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 jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
|
@ -38,7 +39,6 @@ import java.util.List;
|
|||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
|
|
@ -60,12 +60,7 @@ public class ChatService {
|
|||
private AiFileUploadRecordMapper aiFileUploadRecordMapper;
|
||||
|
||||
@Resource
|
||||
private ElePropertyConfig elePropertyConfig;
|
||||
|
||||
public void add(String content) {
|
||||
List<Document> documents = Stream.of(content).map(Document::new).collect(Collectors.toList());
|
||||
vectorStore.write(documents);
|
||||
}
|
||||
private AiQuestionRecordMapper aiQuestionRecordMapper;
|
||||
|
||||
public ElectromagneticResult<?> deleteDocument(List<String> ids) {
|
||||
List<String> vectorIds = aiFileUploadRecordMapper.selectList(Wrappers.lambdaQuery(AiFileUploadRecord.class)
|
||||
|
|
@ -128,10 +123,14 @@ public class ChatService {
|
|||
}
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
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()
|
||||
.prompt(new Prompt(new UserMessage(queryDTO.getMsg())))
|
||||
.stream().chatResponse();
|
||||
|
|
|
|||
Loading…
Reference in New Issue