检查其他资源
- 为这个问题添加了一个非常描述性的标题。
- 使用集成搜索在LangChain文档中进行了搜索。
- 使用GitHub搜索查找类似的问题,但没有找到。
- 我确信这是LangChain中的一个bug,而不是我的代码。
- 通过更新到LangChain的最新稳定版本(或特定集成包)无法解决此bug。
示例代码
# Filtering pipeling working in pymongo used to filter on a list of file_ids
query_embedding = self.embedding_client.embed_query(query)
pipeline = [
{
'$search': {
"cosmosSearch": {
"vector": query_embedding,
"path": "vectorContent",
"k": 5, #, #, "efsearch": 40 # optional for HNSW only
"filter": {"fileId": {'$in': file_ids}}
},
"returnStoredSource": True }},
{'$project': {
'similarityScore': { '$meta': 'searchScore' },
'document' : '$$ROOT'
}
},
]
docs = self.mongo_collection.aggregate(pipeline)
当前实现
def _get_pipeline_vector_ivf(
self, embeddings: List[float], k: int = 4
) -> List[dict[str, Any]]:
pipeline: List[dict[str, Any]] = [
{
"$search": {
"cosmosSearch": {
"vector": embeddings,
"path": self._embedding_key,
"k": k,
},
"returnStoredSource": True,
}
},
{
"$project": {
"similarityScore": {"$meta": "searchScore"},
"document": "$$ROOT",
}
},
]
return pipeline
def _get_pipeline_vector_hnsw(
self, embeddings: List[float], k: int = 4, ef_search: int = 40
) -> List[dict[str, Any]]:
pipeline: List[dict[str, Any]] = [
{
"$search": {
"cosmosSearch": {
"vector": embeddings,
"path": self._embedding_key,
"k": k,
"efSearch": ef_search,
},
}
},
{
"$project": {
"similarityScore": {"$meta": "searchScore"},
"document": "$$ROOT",
}
},
]
return pipeline
错误信息和堆栈跟踪(如有适用)
- 无响应*
描述
正如langchain文档所述,Azure Cosmos DB Mongo vCore应该支持过滤:https://python.langchain.com/v0.2/docs/integrations/vectorstores/azure_cosmos_db/
当我直接使用pyomongo应用我的MongoDB查询时,过滤功能可以正常工作,就像示例中所示的那样。然而,通过langchain,相同的过滤器无法应用。我尝试使用filter、pre_filter、search_kwargs和kwargs参数,但都没有用。
docs = self.vectorstore.similarity_search(query,
k=5,
pre_filter = {'fileId': {'$in': ["31c283c2-ac31-4260-a8d0-864f444c33ee]"}}
)
仔细检查源代码后,我发现查询字典中没有过滤器键,也没有看到kwargs、search_kwargs被传递,这可能是原因。
https://github.com/langchain-ai/langchain/blob/master/libs/community/langchain_community/vectorstores/azure_cosmos_db.py
对此问题有任何建议吗?
系统信息
系统信息
操作系统:Windows
操作系统版本:10.0.22631
Python版本:3.11.4 (tags/v3.11.4:d2340ef, Jun 7 2023, 05:45:37) [MSC v.1934 64 bit (AMD64)]
软件包信息
langchain_core: 0.2.10
langchain: 0.2.6
langchain_community: 0.2.6
langsmith: 0.1.82
langchain_openai: 0.1.13
langchain_text_splitters: 0.2.2
没有安装的软件包(不一定是问题)
以下软件包未找到:
langgraph
langserve
1条答案
按热度按时间bpzcxfmw1#
你是对的。我会创建一个修复。