增加向量化的库

pull/1/head
liu 11 months ago
parent 3724211a12
commit 343bfe57fb

@ -17,7 +17,6 @@ public class VectorEmbeddingClient extends AbstractEmbeddingClient {
private final Logger logger = LoggerFactory.getLogger(getClass());
@Override
public List<Double> embed(Document document) {
List<List<Double>> list = this.call(new EmbeddingRequest(List.of(document.getContent()), EmbeddingOptions.EMPTY))
@ -41,7 +40,6 @@ public class VectorEmbeddingClient extends AbstractEmbeddingClient {
String post = HttpUtil.post("http://192.168.10.42:8000/embeddings/", JSONUtil.toJsonStr(Map.of("text", inputContent)));
String o = JSONUtil.parseObj(post).getStr("embeddings");
List<Double> embedding = JSONUtil.toList(o, Double.class);
//List<Double> embedding = List.of(1.0, 2.0, 3.0);
embeddingList.add(embedding);
}
var indexCounter = new AtomicInteger(0);

@ -1,5 +1,6 @@
package com.supervision.controller;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.digest.MD5;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject;
@ -7,12 +8,19 @@ import cn.hutool.json.JSONUtil;
import com.supervision.exception.BusinessException;
import com.supervision.model.AskTemplateQuestionLibrary;
import com.supervision.model.ConfigPhysicalTool;
import com.supervision.model.DiagnosisAiRecord;
import com.supervision.service.AskTemplateQuestionLibraryService;
import com.supervision.service.ConfigPhysicalToolService;
import com.supervision.service.DiagnosisAiRecordService;
import com.supervision.util.MinioUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.ai.chat.ChatResponse;
import org.springframework.ai.chat.messages.Message;
import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.document.Document;
import org.springframework.ai.ollama.OllamaChatClient;
import org.springframework.ai.vectorstore.RedisVectorStore;
import org.springframework.ai.vectorstore.SearchRequest;
import org.springframework.web.bind.annotation.GetMapping;
@ -37,6 +45,31 @@ public class TestController {
private final AskTemplateQuestionLibraryService askTemplateQuestionLibraryService;
private final DiagnosisAiRecordService diagnosisAiRecordService;
private final OllamaChatClient chatClient;
@GetMapping("testMatchQuestion")
public String test(String question) {
String template = """
:
---
{questionList}
---
:{question}
---
,
---
json
{"match":true/false,"matchQuestion":"匹配到的项原文"}
""";
Set<String> questionList = diagnosisAiRecordService.lambdaQuery().list().stream().map(DiagnosisAiRecord::getQuestion).collect(Collectors.toSet());
List<Message> messages = new ArrayList<>();
messages.add(new UserMessage(StrUtil.format(template, Map.of("questionList", JSONUtil.toJsonStr(questionList), "question", question))));
ChatResponse call = chatClient.call(new Prompt(messages));
return call.getResult().getOutput().getContent();
}
@GetMapping("testRedisVectorStore")
public void testRedisVectorStore() {
List<AskTemplateQuestionLibrary> list = askTemplateQuestionLibraryService.list();

Loading…
Cancel
Save