让 langchain4j 将摄取的文档存储在 milvus 中

问题描述 投票:0回答:1

我有以下代码,它读取 /tmp/t3 中的所有文件。该文件夹仅包含一个文档,其中仅包含我的姓名和工作。然后我要求聊天 gpt 给我我的名字,效果很好。它返回我的正确名称,因此它会解析 /tmp/t3 中的文件。

此代码在运行之前会读取 /tmp/t3 中的所有文件,这是无效的。该过程实际上应该分为 2 个部分,我首先将 /tmp/t3 中的所有文件提取到 Milvus 中,然后我应该能够多次查询它们,而不必每次都注入它们。所以问题是:我该怎么做?我以为我可以在完成第一次摄取后删除对摄取的调用,但如果我这样做,langchain4j 就不会使用 /tmp/t3 中的文件内容

try (MilvusContainer milvus = new MilvusContainer("milvusdb/milvus:v2.4.5")) {
    milvus.start();
    EmbeddingStore<TextSegment> embeddingStore = MilvusEmbeddingStore.builder()
            .uri(milvus.getEndpoint())
            .collectionName("ingest5")
            .dimension(384) // 1536)
            .build();

    List<Document> documents = FileSystemDocumentLoader.loadDocuments("/tmp/t3");
    EmbeddingStoreIngestor.ingest(documents, embeddingStore);
    
    ChatLanguageModel chatModel=OpenAiChatModel.builder()
            .apiKey("demo")
            .modelName(GPT_4_O_MINI)
            .build();
    
    Assistant assistant=AiServices.builder(Assistant.class)
        .chatLanguageModel(chatModel)
        .chatMemory(MessageWindowChatMemory.withMaxMessages(10))
        .contentRetriever(EmbeddingStoreContentRetriever.from(embeddingStore))
        .build();
    
    String answer = assistant.chat("What is my name?");
    System.out.println("answer=" + answer);
}
milvus langchain4j
1个回答
0
投票

在文档中:https://docs.langchain4j.dev/tutorials/rag/

编写一个方法来完成此操作

try (MilvusContainer milvus = new MilvusContainer("milvusdb/milvus:v2.4.5")) {
    milvus.start();
    EmbeddingStore<TextSegment> embeddingStore = MilvusEmbeddingStore.builder()
            .uri(milvus.getEndpoint())
            .collectionName("ingest5")
            .dimension(384) // 1536)
            .build();

List<Document> documents = FileSystemDocumentLoader.loadDocuments("/tmp/t3");
EmbeddingStoreIngestor.ingest(documents, embeddingStore);

然后结束。

然后循环播放

删除

       List<Document> documents = FileSystemDocumentLoader.loadDocuments("/tmp/t3");
    EmbeddingStoreIngestor.ingest(documents, embeddingStore);
© www.soinside.com 2019 - 2024. All rights reserved.