Skip to main content
Vespa 是一个功能完整的搜索引擎和向量数据库。它在同一个查询中支持向量搜索(ANN)、词法搜索以及结构化数据搜索。
本 notebook 介绍如何将 Vespa.ai 用作 LangChain 检索器。 为了创建检索器,我们使用 pyvespa 建立到 Vespa 服务的连接。
pip install -qU  pyvespa
from vespa.application import Vespa

vespa_app = Vespa(url="https://doc-search.vespa.oath.cloud")
这将创建到 Vespa 服务的连接,这里连接的是 Vespa 文档搜索服务。 使用 pyvespa 包,您也可以连接到 Vespa Cloud 实例 或本地的 Docker 实例 连接到服务后,可以设置检索器:
from langchain_community.retrievers import VespaRetriever

vespa_query_body = {
    "yql": "select content from paragraph where userQuery()",
    "hits": 5,
    "ranking": "documentation",
    "locale": "en-us",
}
vespa_content_field = "content"
retriever = VespaRetriever(vespa_app, vespa_query_body, vespa_content_field)
这将设置一个从 Vespa 应用程序获取文档的 LangChain 检索器。 此处,从 paragraph 文档类型的 content 字段中最多检索 5 条结果, 使用 documentation 作为排名方法。userQuery() 将被替换为从 LangChain 传入的实际查询。 更多信息请参考 pyvespa 文档 现在您可以返回结果并在 LangChain 中继续使用这些结果。
retriever.invoke("what is vespa?")