Haystack 集成
将 Scavio 与 deepset 的 Haystack 集成,为你的 RAG 管道和 Agent 提供实时网络搜索。ScavioWebSearch 组件将结果作为带有标题和 URL 元数据的 Haystack Document 对象返回—这是一个经济高效的 Tavily、Exa 和 SerpAPI 替代方案。
开箱即用的网络搜索
ScavioWebSearch 与内置的 TavilyWebSearch 和 ExaWebSearch 组件形式一致,因此可以无需重新接线即可接入现有管道。简介
scavio-haystack 包提供 ScavioWebSearch,一个由 Scavio API 支持的网络搜索组件。每次 run 都会返回一个 Document 对象列表以及原始来源链接,可直接送入 prompt builder、retriever 或 generator。
分步集成指南
步骤 1:安装该包
Bash
pip install scavio-haystack步骤 2:设置你的 API 密钥
在 dashboard.scavio.dev 获取密钥,然后将其作为 SCAVIO_API_KEY 环境变量暴露:
Bash
export SCAVIO_API_KEY=sk_live_...步骤 3:运行搜索
Python
from haystack_integrations.components.websearch.scavio import ScavioWebSearch
from haystack.utils import Secret
web_search = ScavioWebSearch(
api_key=Secret.from_env_var("SCAVIO_API_KEY"), # defaults to SCAVIO_API_KEY
top_k=5,
)
result = web_search.run(query="What is Haystack by deepset?")
documents = result["documents"]
links = result["links"]在 RAG 管道中使用
将 ScavioWebSearch 接入管道,让 LLM 的回答基于实时网络结果:
Python
from haystack import Pipeline
from haystack.components.builders import PromptBuilder
from haystack.components.generators import OpenAIGenerator
from haystack_integrations.components.websearch.scavio import ScavioWebSearch
template = """
Given the following web search results, answer the question.
Results:
{% for doc in documents %}{{ doc.content }}
{% endfor %}
Question: {{ query }}
Answer:
"""
pipe = Pipeline()
pipe.add_component("search", ScavioWebSearch(top_k=5))
pipe.add_component("prompt_builder", PromptBuilder(template=template))
pipe.add_component("llm", OpenAIGenerator(model="gpt-5.5"))
pipe.connect("search.documents", "prompt_builder.documents")
pipe.connect("prompt_builder", "llm")
query = "What is Haystack by deepset?"
result = pipe.run(data={"search": {"query": query}, "prompt_builder": {"query": query}})
print(result["llm"]["replies"][0])异步支持
在异步 Agent 和管道中使用 run_async:
Python
import asyncio
from haystack_integrations.components.websearch.scavio import ScavioWebSearch
async def main():
web_search = ScavioWebSearch(top_k=3)
result = await web_search.run_async(query="What is Haystack by deepset?")
print(f"Found {len(result['documents'])} documents")
asyncio.run(main())参数
| 参数 | 描述 |
|---|---|
api_key | Scavio API 密钥。默认为 SCAVIO_API_KEY 环境变量。 |
top_k | 要返回的最大结果数。默认为 10。 |
search_params | Scavio Google 端点的额外参数—country_code、language、page、search_type、device、nfpr、light_request。在初始化时设置,或按 run 覆盖。 |
Scavio + Haystack 的优势
- 原生 Document:结果以 Haystack
Document对象形式返回,可直接用于 retriever 和 ranker。 - 开箱即用:与
TavilyWebSearch和ExaWebSearch形式相同。 - 异步就绪:
run_async适用于高吞吐量 Agent。 - 经济高效:大多数调用仅需一个积分。
后续步骤
- Google Search API—端点参考与参数
- Python SDK—支撑该组件的客户端
- MCP 集成—完整工具目录