python 使用Langchain和Qdrant配置多租户

yshpjwxd  于 2023-09-29  发布在  Python
关注(0)|答案(1)|浏览(176)

我正在创建一个Q&A聊天机器人,我正在使用langchain和qdrant。
我正在尝试配置langchain,使其能够在多租户环境中使用qdrant。来自qdrant的文档说,在我的情况下,最好的方法是使用“Partition by payload”,并在集合的每个元素的有效载荷中使用group_id = OneClient,这样就可以过滤该group_id(在我的情况下,它将是客户端)。这是文档https://qdrant.tech/documentation/tutorials/multiple-partitions/的链接
我正在使用langchain,并且我已经向我在qdrant中保存的文档添加了一个“group_id”元数据字段。
我想知道当我使用langchain时如何过滤group_id。下面是我如何使用langchain来检索问题的答案:

qdrant = Qdrant(
    client=QdrantClient(...),
    collection_name="collection1",
    embeddings=embeddings
)
prompt = ...
llm = ChatOpenAI(...) 
qa_chain = RetrievalQAWithSourcesChain.from_chain_type(
     llm=llm,
     chain_type="stuff",
     return_source_documents=True,
     retriever=qdrant.as_retriever(),
     chain_type_kwargs = {"prompt": prompt}
 )
result = qa_chain({"question": question})

group_id将代表客户端,它在问题之前就已经知道了。
任何帮助是非常感谢,谢谢.

83qze16e

83qze16e1#

您希望根据问题确定group_id,还是在调用qa_chain之前就知道它?

相关问题