DashVector
DashVector 是一个完全托管的向量数据库服务,支持高维稠密和稀疏向量、实时插入和过滤搜索。它旨在自动扩展,并能够适应不同的应用需求。 向量检索服务
DashVector
基于DAMO Academy
独立开发的高效向量引擎Proxima
核心, 并提供具有水平扩展能力的云原生、完全托管的向量检索服务。DashVector
通过简单易用的 SDK/API 接口,暴露其强大的向量管理、向量查询和其他多样化能力, 可以被上层 AI 应用快速集成,从而提供服务 包括大型模型生态、多模态 AI 搜索、分子结构分析等多种应用场景, 提供所需的高效向量检索能力。
在这个笔记本中,我们将演示使用 DashVector
向量存储的 SelfQueryRetriever
。
创建 DashVector 向量存储
首先,我们需要创建一个 DashVector
向量存储,并用一些数据进行初始化。我们创建了一小组包含电影摘要的演示文档。
要使用 DashVector,您必须安装 dashvector
包,并且必须拥有一个 API 密钥和一个环境。以下是 安装说明。
注意:自查询检索器要求您安装 lark
包。
%pip install --upgrade --quiet lark dashvector
import os
import dashvector
client = dashvector.Client(api_key=os.environ["DASHVECTOR_API_KEY"])
<!--IMPORTS:[{"imported": "DashScopeEmbeddings", "source": "langchain_community.embeddings", "docs": "https://python.langchain.com/api_reference/community/embeddings/langchain_community.embeddings.dashscope.DashScopeEmbeddings.html", "title": "DashVector"}, {"imported": "DashVector", "source": "langchain_community.vectorstores", "docs": "https://python.langchain.com/api_reference/community/vectorstores/langchain_community.vectorstores.dashvector.DashVector.html", "title": "DashVector"}, {"imported": "Document", "source": "langchain_core.documents", "docs": "https://python.langchain.com/api_reference/core/documents/langchain_core.documents.base.Document.html", "title": "DashVector"}]-->
from langchain_community.embeddings import DashScopeEmbeddings
from langchain_community.vectorstores import DashVector
from langchain_core.documents import Document
embeddings = DashScopeEmbeddings()
# create DashVector collection
client.create("langchain-self-retriever-demo", dimension=1536)
docs = [
Document(
page_content="A bunch of scientists bring back dinosaurs and mayhem breaks loose",
metadata={"year": 1993, "rating": 7.7, "genre": "action"},
),
Document(
page_content="Leo DiCaprio gets lost in a dream within a dream within a dream within a ...",
metadata={"year": 2010, "director": "Christopher Nolan", "rating": 8.2},
),
Document(
page_content="A psychologist / detective gets lost in a series of dreams within dreams within dreams and Inception reused the idea",
metadata={"year": 2006, "director": "Satoshi Kon", "rating": 8.6},
),
Document(
page_content="A bunch of normal-sized women are supremely wholesome and some men pine after them",
metadata={"year": 2019, "director": "Greta Gerwig", "rating": 8.3},
),
Document(
page_content="Toys come alive and have a blast doing so",
metadata={"year": 1995, "genre": "animated"},
),
Document(
page_content="Three men walk into the Zone, three men walk out of the Zone",
metadata={
"year": 1979,
"director": "Andrei Tarkovsky",
"genre": "science fiction",
"rating": 9.9,
},
),
]
vectorstore = DashVector.from_documents(
docs, embeddings, collection_name="langchain-self-retriever-demo"
)