Vespa

Vespaopen in new window 是一个功能齐全的搜索引擎和向量数据库。它支持向量搜索(ANN)、词汇搜索和结构化数据搜索,所有这些都可以在同一个查询中进行。

这个笔记本展示了如何将 Vespa.ai 作为 LangChain 的检索器使用。

为了创建一个检索器,我们使用 pyvespaopen in new window 来建立与 Vespa 服务的连接。

#!pip install pyvespa
from vespa.application import Vespa

vespa_app = Vespa(url="https://doc-search.vespa.oath.cloud")

这将创建一个与 Vespa 服务的连接,这里是 Vespa 文档搜索服务。使用 pyvespa 包,您还可以连接到 Vespa Cloud 实例open in new window 或本地的 Docker 实例open in new window

连接到服务之后,您可以设置检索器:

from langchain.retrievers.vespa_retriever 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)

这样设置了一个 LangChain 的检索器,它从 Vespa 应用程序中获取文档。在这里,从 paragraph 文档类型的 content 字段中检索最多 5 个结果,使用 documentation 作为排名方法。userQuery() 会被实际传递给 LangChain 的查询替换。

有关更多信息,请参阅 pyvespa 文档open in new window

现在,您可以返回结果并在 LangChain 中继续使用这些结果。

retriever.get_relevant_documents("what is vespa?")
Last Updated:
Contributors: 刘强