diff --git a/src/main/java/xyz/wbsite/ai/RagTest.java b/src/main/java/xyz/wbsite/ai/RagTest.java new file mode 100644 index 0000000..34b7b87 --- /dev/null +++ b/src/main/java/xyz/wbsite/ai/RagTest.java @@ -0,0 +1,58 @@ +package xyz.wbsite.ai; + +import dev.langchain4j.data.document.*; +import dev.langchain4j.data.document.loader.FileSystemDocumentLoader; +import dev.langchain4j.data.document.parser.TextDocumentParser; +import dev.langchain4j.data.segment.TextSegment; +import dev.langchain4j.memory.chat.MessageWindowChatMemory; +import dev.langchain4j.model.chat.ChatLanguageModel; +import dev.langchain4j.model.ollama.OllamaChatModel; +import dev.langchain4j.model.openai.OpenAiChatModel; +import dev.langchain4j.rag.content.Content; +import dev.langchain4j.rag.content.retriever.EmbeddingStoreContentRetriever; +import dev.langchain4j.rag.query.Query; +import dev.langchain4j.service.AiServices; +import dev.langchain4j.service.SystemMessage; +import dev.langchain4j.store.embedding.EmbeddingStoreIngestor; +import dev.langchain4j.store.embedding.inmemory.InMemoryEmbeddingStore; + +import java.io.IOException; +import java.io.InputStream; +import java.util.List; + +public class RagTest { + + public static void main(String[] args) { + + List documents = FileSystemDocumentLoader.loadDocuments("D:\\wbSource\\starter-ai\\src\\main\\resources"); + InMemoryEmbeddingStore embeddingStore = new InMemoryEmbeddingStore<>(); + EmbeddingStoreIngestor.ingest(documents, embeddingStore); + + EmbeddingStoreContentRetriever embeddingStoreContentRetriever = EmbeddingStoreContentRetriever.from(embeddingStore); + + List retrieve = embeddingStoreContentRetriever.retrieve(new Query("java中会存在内存泄漏吗,请简单描述")); + + System.out.println(); + +// ChatLanguageModel model = OllamaChatModel.builder() +// .baseUrl("http://36.138.207.178:11434") +// .modelName("deepseek-r1:32B") +// .build(); +// +// Assistant assistant = AiServices.create(Assistant.class,model); +// .chatMemory(MessageWindowChatMemory.withMaxMessages(10)) +// .contentRetriever(EmbeddingStoreContentRetriever.from(embeddingStore)) +// .build(); +// +// String chat = assistant.chat("java中会存在内存泄漏吗,请简单描述。"); +// System.out.println(chat); + } + + + interface Assistant { + +// @SystemMessage("请扮演一名小学生,根据输入的文章题目写一篇100字以内的作文") + String chat(String userMessage); + } + +} diff --git a/src/main/resources/java.doc b/src/main/resources/java.doc new file mode 100644 index 0000000..3dc0dbe Binary files /dev/null and b/src/main/resources/java.doc differ