作者 dong

修复bug,更正需求

package org.jeecg.modules.airag.app.controller;
import cn.hutool.core.lang.generator.SnowflakeGenerator;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import dev.langchain4j.internal.Json;
import io.swagger.v3.oas.annotations.Operation;
import lombok.extern.slf4j.Slf4j;
... ... @@ -20,6 +23,7 @@ import org.springframework.web.multipart.MultipartFile;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.stream.Collectors;
... ... @@ -63,7 +67,7 @@ public class QuestionEmbeddingController {
}
@PostMapping("/add")
public Result<String> insert(@RequestBody QuestionEmbedding record) {
public Result<String> insert(@RequestBody QuestionEmbedding record) throws JsonProcessingException {
Map<String, String> airagKnowledgeMap = airagKnowledgeService.list()
.stream()
.collect(Collectors.toMap(AiragKnowledge::getId, AiragKnowledge::getName));
... ... @@ -75,6 +79,18 @@ public class QuestionEmbeddingController {
record.setKnowledgeName(knowledgeName);
}
//1.创建matadata数据
Map<String, Object> metadata = new LinkedHashMap<>();
SnowflakeGenerator snowflakeGenerator = new SnowflakeGenerator();
metadata.put("docName", "");
String docId = String.valueOf(snowflakeGenerator.next());
metadata.put("docId", docId); // 自动生成唯一文档ID
metadata.put("knowledgeId", record.getKnowledgeId());
// 使用 Jackson 序列化 Map 到 JSON
ObjectMapper mapper = new ObjectMapper();
String metadataJson = mapper.writeValueAsString(metadata);
// 2. 设置到embeddings对象
record.setMetadata(metadataJson);
int result = questionEmbeddingService.insert(record);
return result > 0 ? Result.OK("添加成功!") : Result.error("添加失败");
... ...
... ... @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.apache.poi.ss.formula.functions.T;
import org.jeecg.modules.airag.app.entity.AiragLog;
... ... @@ -17,7 +18,7 @@ import java.util.List;
*/
public interface IAiragLogService extends IService<AiragLog> {
// List<AiragLog> getLogListWithModelName();
void saveToQuestionLibrary(AiragLog log);
void saveToQuestionLibrary(AiragLog log) throws JsonProcessingException;
IPage<AiragLog> list1(AiragLog airagLog,Page<AiragLog> page);
... ...
... ... @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.util.ObjectBuffer;
import io.minio.messages.Metadata;
... ... @@ -50,13 +51,24 @@ public class AiragLogServiceImpl extends ServiceImpl<AiragLogMapper, AiragLog> i
// }
@Override
public void saveToQuestionLibrary(AiragLog log) {
public void saveToQuestionLibrary(AiragLog log) throws JsonProcessingException {
// 这里实现将问题和回答存入问题库数据表的逻辑
// 假设问题库数据表的实体类为 QuestionLibrary,Mapper 接口为 QuestionLibraryMapper
QuestionEmbedding questionEmbedding = new QuestionEmbedding();
questionEmbedding.setQuestion(log.getQuestion());
questionEmbedding.setAnswer(log.getAnswer());
questionEmbedding.setKnowledgeId(log.getKnowledgeId());
Map<String, Object> metadata = new LinkedHashMap<>();
SnowflakeGenerator snowflakeGenerator = new SnowflakeGenerator();
metadata.put("docName", "");
String docId = String.valueOf(snowflakeGenerator.next());
metadata.put("docId", docId); // 自动生成唯一文档ID
metadata.put("knowledgeId", questionEmbedding.getKnowledgeId());
// 使用 Jackson 序列化 Map 到 JSON
ObjectMapper mapper = new ObjectMapper();
String metadataJson = mapper.writeValueAsString(metadata);
// 2. 设置到embeddings对象
questionEmbedding.setMetadata(metadataJson);
questionEmbeddingMapper.insert(questionEmbedding);
airagLogMapper.updataIsStorage(log.getIsStorage(),log.getId());
... ...