代码之家  ›  专栏  ›  技术社区  ›  vetheve

在特定文档上实现语义搜索并使用vectorstore.asRetriever()JavaScript LangChain方法和元数据

  •  0
  • vetheve  · 技术社区  · 2 年前

    我试图理解 vectorstore.asRetriever() 方法操作。

    本练习旨在使用专注于特定文档的元数据过滤器来指导语义搜索。在某些情况下,我可能需要基于标记为 code ,它是唯一的,功能类似于 ID 在这种情况下,只需要对Pinecone数据库中存储的10万个文档中的这一特定文档执行语义搜索。

    我该如何着手实施?有其他方法吗?我试图在LangChain JS文档中寻找解决方案,但还没有找到。

    我的代码:

    export const makeChain = (vectorstore: PineconeStore) => {
      const model = new OpenAI({
        temperature: 0,
        modelName: 'gpt-3.5',
      });
    
      const metadataFilter = { location: 'Paris' };
    
      const chain = ConversationalRetrievalQAChain.fromLLM(
        model,
        vectorstore.asRetriever(10, metadataFilter),
        {
          qaTemplate: QA_PROMPT,
          questionGeneratorTemplate: CONDENSE_PROMPT,
          returnSourceDocuments: true,
        },
      );
      return chain;
    };
    

    文档

    asRetriever()
    
    asRetriever(k?: number, filter?: object): VectorStoreRetriever<VectorStore>
    
    Parameters:
    Parameter   Type
    k?          number
    filter?     object
    Returns
    
    VectorStoreRetriever<VectorStore>
    
      asRetriever(
        k?: number,
        filter?: this["FilterType"]
      ): VectorStoreRetriever<this> {
        return new VectorStoreRetriever({ vectorStore: this, k, filter });
      }
    }
    
    
    0 回复  |  直到 2 年前