diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/AiFileUploadRecordMapper.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/AiFileUploadRecordMapper.java index 019bc3d..c5f8dfd 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/AiFileUploadRecordMapper.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/AiFileUploadRecordMapper.java @@ -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 { } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/AiQuestionRecordMapper.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/AiQuestionRecordMapper.java new file mode 100644 index 0000000..f3ac31d --- /dev/null +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/AiQuestionRecordMapper.java @@ -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 { +} diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/AiFileUploadRecord.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/AiFileUploadRecord.java index 8f01b25..d0ad7d8 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/AiFileUploadRecord.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/AiFileUploadRecord.java @@ -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) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/AiQuestionRecord.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/AiQuestionRecord.java new file mode 100644 index 0000000..1a09428 --- /dev/null +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/AiQuestionRecord.java @@ -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; +} diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/ChatService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/ChatService.java index 7fa4b75..45c5f15 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/ChatService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/ChatService.java @@ -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 documents = Stream.of(content).map(Document::new).collect(Collectors.toList()); - vectorStore.write(documents); - } + private AiQuestionRecordMapper aiQuestionRecordMapper; public ElectromagneticResult deleteDocument(List ids) { List vectorIds = aiFileUploadRecordMapper.selectList(Wrappers.lambdaQuery(AiFileUploadRecord.class) @@ -128,10 +123,14 @@ public class ChatService { } public Flux 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 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();