作者 lixiang

删除无用代码,bug修正

@@ -2,8 +2,9 @@ package org.jeecg.modules.airag.app.controller; @@ -2,8 +2,9 @@ package org.jeecg.modules.airag.app.controller;
2 2
3 import cn.hutool.core.lang.generator.SnowflakeGenerator; 3 import cn.hutool.core.lang.generator.SnowflakeGenerator;
4 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 4 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5 -import com.baomidou.mybatisplus.core.metadata.IPage;  
6 import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 5 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  6 +import dev.langchain4j.data.embedding.Embedding;
  7 +import dev.langchain4j.model.output.Response;
7 import io.swagger.v3.oas.annotations.Operation; 8 import io.swagger.v3.oas.annotations.Operation;
8 import io.swagger.v3.oas.annotations.tags.Tag; 9 import io.swagger.v3.oas.annotations.tags.Tag;
9 import lombok.extern.slf4j.Slf4j; 10 import lombok.extern.slf4j.Slf4j;
@@ -12,8 +13,11 @@ import org.apache.shiro.authz.annotation.RequiresPermissions; @@ -12,8 +13,11 @@ import org.apache.shiro.authz.annotation.RequiresPermissions;
12 import org.jeecg.common.api.vo.Result; 13 import org.jeecg.common.api.vo.Result;
13 import org.jeecg.common.aspect.annotation.AutoLog; 14 import org.jeecg.common.aspect.annotation.AutoLog;
14 import org.jeecg.common.system.query.QueryGenerator; 15 import org.jeecg.common.system.query.QueryGenerator;
  16 +import org.jeecg.modules.airag.airagchatsetting.entity.AiragChatsetting;
15 import org.jeecg.modules.airag.app.entity.Embeddings; 17 import org.jeecg.modules.airag.app.entity.Embeddings;
16 import org.jeecg.modules.airag.app.service.IEmbeddingsService; 18 import org.jeecg.modules.airag.app.service.IEmbeddingsService;
  19 +import org.jeecg.modules.airag.app.service.RedisChatSetService;
  20 +import org.jeecg.modules.airag.app.utils.AiModelUtils;
17 import org.jeecg.modules.airag.llm.entity.AiragKnowledge; 21 import org.jeecg.modules.airag.llm.entity.AiragKnowledge;
18 import org.jeecg.modules.airag.llm.service.IAiragKnowledgeService; 22 import org.jeecg.modules.airag.llm.service.IAiragKnowledgeService;
19 import org.springframework.beans.factory.annotation.Autowired; 23 import org.springframework.beans.factory.annotation.Autowired;
@@ -42,6 +46,10 @@ public class EmbeddingsController { @@ -42,6 +46,10 @@ public class EmbeddingsController {
42 46
43 @Autowired 47 @Autowired
44 private IAiragKnowledgeService airagKnowledgeService; 48 private IAiragKnowledgeService airagKnowledgeService;
  49 + @Autowired
  50 + private AiModelUtils aiModelUtils;
  51 + @Autowired
  52 + private RedisChatSetService redisChatSetService;
45 53
46 /*@Autowired 54 /*@Autowired
47 private AiModelUtils aiModelUtils; 55 private AiModelUtils aiModelUtils;
@@ -252,8 +260,8 @@ public class EmbeddingsController { @@ -252,8 +260,8 @@ public class EmbeddingsController {
252 embeddings.setText(fullContent); 260 embeddings.setText(fullContent);
253 embeddings.setId(UUID.randomUUID().toString()); 261 embeddings.setId(UUID.randomUUID().toString());
254 embeddings.setMetadata(metadata); 262 embeddings.setMetadata(metadata);
255 - // 设置向量嵌入(实际项目中应调用模型API)  
256 - embeddings.setEmbedding(generateRandomEmbedding()); 263 + // 设置向量嵌入
  264 + embeddings.setEmbedding(generateEmbedding(fullContent));
257 265
258 // 保存到数据库 266 // 保存到数据库
259 embeddingsService.insert(embeddings); 267 embeddingsService.insert(embeddings);
@@ -290,14 +298,11 @@ public class EmbeddingsController { @@ -290,14 +298,11 @@ public class EmbeddingsController {
290 } 298 }
291 299
292 300
293 - // 生成随机向量(1536维)  
294 - private float[] generateRandomEmbedding() {  
295 - float[] embedding = new float[768];  
296 - Random random = new Random();  
297 - for (int i = 0; i < embedding.length; i++) {  
298 - embedding[i] = random.nextFloat() * 2 - 1;  
299 - }  
300 - return embedding; 301 + // 生成向量
  302 + private float[] generateEmbedding(String fullContent) {
  303 + AiragChatsetting chatSetting = redisChatSetService.getChatSetting();
  304 + Response<Embedding> embedding = aiModelUtils.getEmbedding(chatSetting.getEmbeddingId(), fullContent);
  305 + return embedding.content().vector();
301 306
302 } 307 }
303 } 308 }
@@ -257,7 +257,7 @@ public class EmbeddingHandler implements IEmbeddingHandler { @@ -257,7 +257,7 @@ public class EmbeddingHandler implements IEmbeddingHandler {
257 257
258 258
259 Map<String, Object> metadataMap = new HashMap<>(); 259 Map<String, Object> metadataMap = new HashMap<>();
260 - metadataMap.put("docId", metadata.getString("docId")); // 假设metadata中有docId字段 260 + metadataMap.put("docId", metadata.getString("docId"));
261 metadataMap.put("storedFileName", metadata.getString("storedFileName")); 261 metadataMap.put("storedFileName", metadata.getString("storedFileName"));
262 metadataMap.put("docName", metadata.getString(EMBED_STORE_METADATA_DOCNAME)); 262 metadataMap.put("docName", metadata.getString(EMBED_STORE_METADATA_DOCNAME));
263 metadataMap.put("index", metadata.getInteger("index")); 263 metadataMap.put("index", metadata.getInteger("index"));