Haystack 統合
Scavioを Haystack (deepset製)と統合すると、RAGパイプラインやエージェントにリアルタイムのWeb検索を追加できます。ScavioWebSearchコンポーネントは、タイトルとURLのメタデータを備えたHaystackのDocumentオブジェクトとして結果を返します -- コスト効率の高いTavily、Exa、SerpAPIの代替です。
そのまま使えるWeb検索
ScavioWebSearchは組み込みのTavilyWebSearchおよびExaWebSearchコンポーネントを模倣しているため、既存のパイプラインに配線を変更することなく組み込めます。概要
scavio-haystack パッケージは、Scavio APIを基盤とするWeb検索コンポーネントScavioWebSearchを提供します。各runは、Documentオブジェクトのリストと生のソースリンクを返し、プロンプトビルダー、リトリーバー、ジェネレーターにそのまま渡せます。
ステップバイステップ統合ガイド
ステップ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の回答をライブのWeb結果に基づかせます。
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])非同期サポート
非同期エージェントやパイプラインの内部では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オブジェクトとして届き、リトリーバーやランカーにそのまま使えます。 - そのまま使える:
TavilyWebSearchやExaWebSearchと同じ形式。 - 非同期対応: 高スループットのエージェント向けの
run_async。 - コスト効率: ほとんどの呼び出しは1クレジット。
次のステップ
- Google Search API -- エンドポイントリファレンスとパラメーター
- Python SDK -- このコンポーネントを支えるクライアント
- MCP統合 -- 全ツールカタログ