在这篇文章中,我们将介绍如何使用 Azure CosmosDB MongoDB 向量搜索功能。Azure CosmosDB 提供了一个强大且灵活的数据库服务,它的 MongoDB vCore 向量搜索功能允许我们对存储在数据库中的数据进行高效的向量检索。
安装依赖
首先,我们需要安装 llama-index-vector-stores-azurecosmosmongo
包以及 pymongo
包来支持我们的操作。
pip install llama-index-vector-stores-azurecosmosmongo pymongo
代码示例
以下是一个简单的代码示例,演示如何设置和使用 Azure CosmosDB MongoDB 向量搜索功能。
import pymongo
from llama_index.vector_stores.azurecosmosmongo import AzureCosmosDBMongoDBVectorSearch
# 设置 Azure CosmosDB MongoDB 的连接字符串
connection_string = "YOUR_AZURE_COSMOSDB_MONGODB_URI"
mongodb_client = pymongo.MongoClient(connection_string)
# 创建 AzureCosmosDBMongoDBVectorSearch 实例
vector_store = AzureCosmosDBMongoDBVectorSearch(
mongodb_client=mongodb_client,
db_name="demo_vectordb",
collection_name="paul_graham_essay",
)
# 添加向量节点到数据库
nodes = [
# 假设 BaseNode 是我们自己定义的包含向量和其他元数据的节点类
BaseNode(embedding=[0.1, 0.2, 0.3], metadata={"title": "Example 1"}),
BaseNode(embedding=[0.4, 0.5, 0.6], metadata={"title": "Example 2"}),
]
vector_store.add(nodes)
# 查询数据库中的最相似节点
query = VectorStoreQuery(embedding=[0.1, 0.2, 0.3])
results = vector_store.query(query)
for result in results:
print(result)
注释://中转API
可能遇到的错误
-
连接失败: 如果提供的连接字符串不正确或者 Azure CosmosDB 服务不可用,可能会导致连接失败。请确保连接字符串的正确性以及网络连接的稳定性。
-
数据添加失败: 如果节点数据的格式不符合要求或者 MongoDB 集合没有正确配置,可能会导致数据添加失败。请检查数据格式以及 MongoDB 的配置。
-
查询无结果: 当查询的向量与数据库中存储的向量没有足够的相似性时,可能会返回无结果。这时候可以调整查询向量或者增加数据库中存储的向量数据。
参考资料
如果你觉得这篇文章对你有帮助,请点赞,关注我的博客,谢谢!