package com.ai.controller; import com.ai.service.SimilarService; import dev.langchain4j.community.model.dashscope.QwenEmbeddingModel; import dev.langchain4j.data.document.Document; import dev.langchain4j.data.document.loader.FileSystemDocumentLoader; import dev.langchain4j.data.document.splitter.DocumentByLineSplitter; import dev.langchain4j.data.embedding.Embedding; import dev.langchain4j.data.segment.TextSegment; import dev.langchain4j.store.embedding.EmbeddingStore; import jakarta.annotation.Resource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; @RestController @RequestMapping("/milvus") public class MilvusController { @Autowired private SimilarService similarService; @Resource private QwenEmbeddingModel embeddingModel; @Resource private EmbeddingStore embeddingStore; @Value("${rag.path}") private String ragPath; @RequestMapping("/create") public String create() { similarService.createCollection(); return "milvus collection create"; } @RequestMapping("/vector") public String vector() { similarService.insertProducts(); return "vector create"; } @RequestMapping("/import") public void ImportShopData() { List documents = FileSystemDocumentLoader.loadDocuments(ragPath); for (Document document : documents) { DocumentByLineSplitter splitter = new DocumentByLineSplitter(150,30); List segments = splitter.split(document); List embeddings = embeddingModel.embedAll(segments).content(); embeddingStore.addAll(embeddings, segments); } } }