我正在创建一个问答聊天机器人,并且正在使用 langchain 和 qdrant。
我正在尝试配置 langchain 以便能够在多租户环境中使用 qdrant。 qdrant 的文档说,在我的情况下,最好的方法是使用“按有效负载分区”,并在集合的每个元素的有效负载内使用 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 将代表客户端,并且在提问之前就已知。
非常感谢任何帮助,谢谢。
您想根据问题确定
group_id
,还是在致电qa_chain
之前就知道?