我有这个简单的代码来查询保存在色度矢量存储中的文件。现在,如果每个文件都属于某个用户,并且每个用户只能查询自己文件中的数据,而不能查询其他文件中的数据,那么如何才能实现这一点呢?我在想,也许可以将userId保存为每个文档的元数据,并使用userId作为过滤器进行查询,任何帮助都将不胜感激。谢谢你,谢谢
chroma_client = chromadb.PersistentClient(path="chroma")
chroma_collection = chroma_client.get_collection("quickstart")
vector_store = ChromaVectorStore(chroma_collection=chroma_collection)
index = VectorStoreIndex.from_vector_store(vector_store=vector_store)
retriever = index.as_retriever(retriever_mode='embedding')
query_engine = RetrieverQueryEngine(retriever)
query_engine = index.as_query_engine()
response = query_engine.query("what's the persons name")
print(response)
字符串
我试着从他们的网站上问助手,但它只给出随机的答案。正在看他们的文件想找点线索。
2条答案
按热度按时间zbdgwd5y1#
您可以将userId保存为每个文档的元数据,并使用userId作为筛选器进行查询:
字符串
然后使用
pandas
按userId过滤文档:型
wsxa1bj12#
经过一番折腾,我发现使用元数据来区分文档并不能给予一致的结果,所以我为每个用户创建了一个vectorstore,并将他们的数据存储在那里,到目前为止工作正常。