Vespa
Vespa 是一个功能齐全的搜索引擎和向量数据库。它支持向量搜索 (ANN)、词法搜索以及结构化数据搜索,所有这些都可以在同一个查询中进行。
本Notebook展示了如何将 Vespa.ai 用作 LangChain 的检索器。
为了创建检索器,我们使用 pyvespa 来连接 Vespa 服务。
%pip install --upgrade --quiet  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)
API 参考:VespaRetriever
这设置了一个 LangChain 检索器,用于从 Vespa 应用程序中获取文档。在此,最多从 paragraph 文档类型中的 content 字段检索 5 个结果,并使用 doumentation 作为排序方法。userQuery() 将被 LangChain 传递的实际查询替换。
更多信息请参考 pyvespa 文档。
现在您可以返回结果并在 LangChain 中继续使用这些结果。
retriever.invoke("what is vespa?")