我正在创建一个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将代表客户端,它在问题之前就已经知道了。
任何帮助是非常感谢,谢谢.
1条答案
按热度按时间83qze16e1#
您希望根据问题确定
group_id
,还是在调用qa_chain
之前就知道它?