Haystack 통합
Scavio를 deepset의 Haystack과 통합하여 RAG 파이프라인과 에이전트에 실시간 웹 검색 기능을 부여하세요. ScavioWebSearch 컴포넌트는 제목과 URL 메타데이터가 포함된 Haystack Document 객체로 결과를 반환합니다 — 비용 효율적인 Tavily, Exa, SerpAPI 대안입니다.
즉시 사용 가능한 웹 검색
ScavioWebSearch는 기본 제공되는 TavilyWebSearch 및 ExaWebSearch 컴포넌트를 그대로 반영하므로, 기존 파이프라인에 재구성 없이 끼워 넣을 수 있습니다.소개
scavio-haystack 패키지는 Scavio API를 기반으로 하는 웹 검색 컴포넌트 ScavioWebSearch를 제공합니다. 각 run은 Document 객체 목록과 원본 소스 링크를 반환하여, 프롬프트 빌더, 리트리버 또는 제너레이터에 바로 전달할 수 있습니다.
단계별 통합 가이드
1단계: 패키지 설치하기
Bash
pip install scavio-haystack2단계: 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])비동기 지원
비동기 에이전트와 파이프라인 내부에서는 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. - 비용 효율적: 대부분의 호출은 크레딧 하나만 소요됩니다.
다음 단계
- Google Search API — 엔드포인트 참조 및 매개변수
- Python SDK — 이 컴포넌트를 구동하는 클라이언트
- MCP 통합 — 전체 도구 카탈로그