正在显示
3 个修改的文件
包含
32 行增加
和
3 行删除
| 1 | package org.jeecg.modules.airag.app.controller; | 1 | package org.jeecg.modules.airag.app.controller; |
| 2 | 2 | ||
| 3 | +import cn.hutool.core.lang.generator.SnowflakeGenerator; | ||
| 3 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 4 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| 5 | +import com.fasterxml.jackson.core.JsonProcessingException; | ||
| 6 | +import com.fasterxml.jackson.databind.ObjectMapper; | ||
| 4 | import dev.langchain4j.internal.Json; | 7 | import dev.langchain4j.internal.Json; |
| 5 | import io.swagger.v3.oas.annotations.Operation; | 8 | import io.swagger.v3.oas.annotations.Operation; |
| 6 | import lombok.extern.slf4j.Slf4j; | 9 | import lombok.extern.slf4j.Slf4j; |
| @@ -20,6 +23,7 @@ import org.springframework.web.multipart.MultipartFile; | @@ -20,6 +23,7 @@ import org.springframework.web.multipart.MultipartFile; | ||
| 20 | 23 | ||
| 21 | import java.util.Arrays; | 24 | import java.util.Arrays; |
| 22 | import java.util.HashMap; | 25 | import java.util.HashMap; |
| 26 | +import java.util.LinkedHashMap; | ||
| 23 | import java.util.Map; | 27 | import java.util.Map; |
| 24 | import java.util.stream.Collectors; | 28 | import java.util.stream.Collectors; |
| 25 | 29 | ||
| @@ -63,7 +67,7 @@ public class QuestionEmbeddingController { | @@ -63,7 +67,7 @@ public class QuestionEmbeddingController { | ||
| 63 | } | 67 | } |
| 64 | 68 | ||
| 65 | @PostMapping("/add") | 69 | @PostMapping("/add") |
| 66 | - public Result<String> insert(@RequestBody QuestionEmbedding record) { | 70 | + public Result<String> insert(@RequestBody QuestionEmbedding record) throws JsonProcessingException { |
| 67 | Map<String, String> airagKnowledgeMap = airagKnowledgeService.list() | 71 | Map<String, String> airagKnowledgeMap = airagKnowledgeService.list() |
| 68 | .stream() | 72 | .stream() |
| 69 | .collect(Collectors.toMap(AiragKnowledge::getId, AiragKnowledge::getName)); | 73 | .collect(Collectors.toMap(AiragKnowledge::getId, AiragKnowledge::getName)); |
| @@ -75,6 +79,18 @@ public class QuestionEmbeddingController { | @@ -75,6 +79,18 @@ public class QuestionEmbeddingController { | ||
| 75 | record.setKnowledgeName(knowledgeName); | 79 | record.setKnowledgeName(knowledgeName); |
| 76 | } | 80 | } |
| 77 | 81 | ||
| 82 | + //1.创建matadata数据 | ||
| 83 | + Map<String, Object> metadata = new LinkedHashMap<>(); | ||
| 84 | + SnowflakeGenerator snowflakeGenerator = new SnowflakeGenerator(); | ||
| 85 | + metadata.put("docName", ""); | ||
| 86 | + String docId = String.valueOf(snowflakeGenerator.next()); | ||
| 87 | + metadata.put("docId", docId); // 自动生成唯一文档ID | ||
| 88 | + metadata.put("knowledgeId", record.getKnowledgeId()); | ||
| 89 | + // 使用 Jackson 序列化 Map 到 JSON | ||
| 90 | + ObjectMapper mapper = new ObjectMapper(); | ||
| 91 | + String metadataJson = mapper.writeValueAsString(metadata); | ||
| 92 | + // 2. 设置到embeddings对象 | ||
| 93 | + record.setMetadata(metadataJson); | ||
| 78 | 94 | ||
| 79 | int result = questionEmbeddingService.insert(record); | 95 | int result = questionEmbeddingService.insert(record); |
| 80 | return result > 0 ? Result.OK("添加成功!") : Result.error("添加失败"); | 96 | return result > 0 ? Result.OK("添加成功!") : Result.error("添加失败"); |
| @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | ||
| 4 | import com.baomidou.mybatisplus.core.metadata.IPage; | 4 | import com.baomidou.mybatisplus.core.metadata.IPage; |
| 5 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 5 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| 6 | import com.baomidou.mybatisplus.extension.service.IService; | 6 | import com.baomidou.mybatisplus.extension.service.IService; |
| 7 | +import com.fasterxml.jackson.core.JsonProcessingException; | ||
| 7 | import org.apache.poi.ss.formula.functions.T; | 8 | import org.apache.poi.ss.formula.functions.T; |
| 8 | import org.jeecg.modules.airag.app.entity.AiragLog; | 9 | import org.jeecg.modules.airag.app.entity.AiragLog; |
| 9 | 10 | ||
| @@ -17,7 +18,7 @@ import java.util.List; | @@ -17,7 +18,7 @@ import java.util.List; | ||
| 17 | */ | 18 | */ |
| 18 | public interface IAiragLogService extends IService<AiragLog> { | 19 | public interface IAiragLogService extends IService<AiragLog> { |
| 19 | // List<AiragLog> getLogListWithModelName(); | 20 | // List<AiragLog> getLogListWithModelName(); |
| 20 | - void saveToQuestionLibrary(AiragLog log); | 21 | + void saveToQuestionLibrary(AiragLog log) throws JsonProcessingException; |
| 21 | 22 | ||
| 22 | IPage<AiragLog> list1(AiragLog airagLog,Page<AiragLog> page); | 23 | IPage<AiragLog> list1(AiragLog airagLog,Page<AiragLog> page); |
| 23 | 24 |
| @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | ||
| 5 | import com.baomidou.mybatisplus.core.metadata.IPage; | 5 | import com.baomidou.mybatisplus.core.metadata.IPage; |
| 6 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 6 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| 7 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | 7 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| 8 | +import com.fasterxml.jackson.core.JsonProcessingException; | ||
| 8 | import com.fasterxml.jackson.databind.ObjectMapper; | 9 | import com.fasterxml.jackson.databind.ObjectMapper; |
| 9 | import com.fasterxml.jackson.databind.util.ObjectBuffer; | 10 | import com.fasterxml.jackson.databind.util.ObjectBuffer; |
| 10 | import io.minio.messages.Metadata; | 11 | import io.minio.messages.Metadata; |
| @@ -50,13 +51,24 @@ public class AiragLogServiceImpl extends ServiceImpl<AiragLogMapper, AiragLog> i | @@ -50,13 +51,24 @@ public class AiragLogServiceImpl extends ServiceImpl<AiragLogMapper, AiragLog> i | ||
| 50 | // } | 51 | // } |
| 51 | 52 | ||
| 52 | @Override | 53 | @Override |
| 53 | - public void saveToQuestionLibrary(AiragLog log) { | 54 | + public void saveToQuestionLibrary(AiragLog log) throws JsonProcessingException { |
| 54 | // 这里实现将问题和回答存入问题库数据表的逻辑 | 55 | // 这里实现将问题和回答存入问题库数据表的逻辑 |
| 55 | // 假设问题库数据表的实体类为 QuestionLibrary,Mapper 接口为 QuestionLibraryMapper | 56 | // 假设问题库数据表的实体类为 QuestionLibrary,Mapper 接口为 QuestionLibraryMapper |
| 56 | QuestionEmbedding questionEmbedding = new QuestionEmbedding(); | 57 | QuestionEmbedding questionEmbedding = new QuestionEmbedding(); |
| 57 | questionEmbedding.setQuestion(log.getQuestion()); | 58 | questionEmbedding.setQuestion(log.getQuestion()); |
| 58 | questionEmbedding.setAnswer(log.getAnswer()); | 59 | questionEmbedding.setAnswer(log.getAnswer()); |
| 59 | questionEmbedding.setKnowledgeId(log.getKnowledgeId()); | 60 | questionEmbedding.setKnowledgeId(log.getKnowledgeId()); |
| 61 | + Map<String, Object> metadata = new LinkedHashMap<>(); | ||
| 62 | + SnowflakeGenerator snowflakeGenerator = new SnowflakeGenerator(); | ||
| 63 | + metadata.put("docName", ""); | ||
| 64 | + String docId = String.valueOf(snowflakeGenerator.next()); | ||
| 65 | + metadata.put("docId", docId); // 自动生成唯一文档ID | ||
| 66 | + metadata.put("knowledgeId", questionEmbedding.getKnowledgeId()); | ||
| 67 | + // 使用 Jackson 序列化 Map 到 JSON | ||
| 68 | + ObjectMapper mapper = new ObjectMapper(); | ||
| 69 | + String metadataJson = mapper.writeValueAsString(metadata); | ||
| 70 | + // 2. 设置到embeddings对象 | ||
| 71 | + questionEmbedding.setMetadata(metadataJson); | ||
| 60 | questionEmbeddingMapper.insert(questionEmbedding); | 72 | questionEmbeddingMapper.insert(questionEmbedding); |
| 61 | airagLogMapper.updataIsStorage(log.getIsStorage(),log.getId()); | 73 | airagLogMapper.updataIsStorage(log.getIsStorage(),log.getId()); |
| 62 | 74 |
-
请 注册 或 登录 后发表评论