上传备份

master
王兵 5 months ago
parent f73e83a0e0
commit 7cbfb9bc3c

@ -0,0 +1,58 @@
package xyz.wbsite.ai;
import cn.hutool.core.collection.CollUtil;
import dev.langchain4j.data.document.Document;
import dev.langchain4j.data.segment.TextSegment;
import dev.langchain4j.memory.chat.MessageWindowChatMemory;
import dev.langchain4j.model.input.PromptTemplate;
import dev.langchain4j.rag.DefaultRetrievalAugmentor;
import dev.langchain4j.rag.content.injector.DefaultContentInjector;
import dev.langchain4j.rag.content.retriever.EmbeddingStoreContentRetriever;
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.util.List;
/**
* Easy-RAG
*/
public class Easy_RAG_Augmentor_Example {
public static void main(String[] args) {
// 加载文档
List<Document> documents = CollUtil.newArrayList(Document.from("小明+小芳=小强"));
// 创建一个内存存储器,用于存储文档和其嵌入
InMemoryEmbeddingStore<TextSegment> embeddingStore = new InMemoryEmbeddingStore<>();
// 使用easy-rag可以最快捷的方式使用rag
EmbeddingStoreIngestor.ingest(documents, embeddingStore);
PromptTemplate promptTemplate = PromptTemplate.from("{{userMessage}} \n\n 使用以下信息回答:\n{{contents}}");
Assistant assistant = AiServices.builder(Assistant.class)
.chatLanguageModel(Helper.getChatModel())
.chatMemory(MessageWindowChatMemory.withMaxMessages(10))
// .contentRetriever(EmbeddingStoreContentRetriever.from(embeddingStore))
.retrievalAugmentor(DefaultRetrievalAugmentor.builder()
.contentRetriever(EmbeddingStoreContentRetriever.from(embeddingStore))
.contentInjector(DefaultContentInjector.builder().promptTemplate(promptTemplate).build())
.build()
)
.build();
String chat = assistant.chat("小明+小芳等于什么");
System.out.println(chat);
}
/**
*
*/
interface Assistant {
String chat(String userMessage);
}
}

@ -6,6 +6,7 @@ import dev.langchain4j.model.openai.OpenAiChatModel;
import dev.langchain4j.model.openai.OpenAiEmbeddingModel;
import dev.langchain4j.model.openai.OpenAiStreamingChatModel;
import java.time.Duration;
import java.util.List;
public class Helper {
@ -21,6 +22,7 @@ public class Helper {
private static OpenAiChatModel openAiChatModel = OpenAiChatModel.builder()
.baseUrl("http://192.168.88.106:11434/v1")
.apiKey("1")
.timeout(Duration.ofSeconds(120))
.modelName("deepseek-r1:1.5b")
.logRequests(true)
.logResponses(true)

Loading…
Cancel
Save

Powered by TurnKey Linux.