Skip to main content

Vespa

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

本笔记本展示了如何将Vespa.ai用作LangChain检索器。

为了创建一个检索器,我们使用pyvespa来创建与Vespa服务的连接。

#!pip install pyvespa
from vespa.application import Vespa

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

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

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

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)

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

有关更多信息,请参阅pyvespa文档

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

retriever.get_relevant_documents("what is vespa?")