Integração Haystack
Integre a Scavio ao Haystack da deepset para dar aos seus pipelines RAG e agentes busca na web em tempo real. O componente ScavioWebSearch retorna os resultados como objetos Document do Haystack com metadados de título e URL -- uma alternativa econômica ao Tavily, Exa e SerpAPI.
Busca na web pronta para usar
ScavioWebSearch espelha os componentes integrados TavilyWebSearch e ExaWebSearch, portanto se encaixa em pipelines existentes sem reconfiguração.Introdução
O pacote scavio-haystack fornece o ScavioWebSearch, um componente de busca na web baseado na API da Scavio. Cada run retorna uma lista de objetos Document mais os links de origem brutos, prontos para alimentar um prompt builder, retriever ou gerador.
Guia de integração passo a passo
Passo 1: Instale o pacote
pip install scavio-haystackPasso 2: Defina sua chave de API
Obtenha uma chave em dashboard.scavio.dev, depois exponha-a como a variável de ambiente SCAVIO_API_KEY:
export SCAVIO_API_KEY=sk_live_...Passo 3: Execute uma busca
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"]Use em um pipeline RAG
Conecte o ScavioWebSearch a um pipeline para fundamentar a resposta de um LLM em resultados da web ao vivo:
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])Suporte assíncrono
Use run_async dentro de agentes e pipelines assíncronos:
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())Parâmetros
| Parâmetro | Descrição |
|---|---|
api_key | Chave de API da Scavio. Por padrão, a variável de ambiente SCAVIO_API_KEY. |
top_k | Número máximo de resultados a retornar. Por padrão, 10. |
search_params | Parâmetros extras para o endpoint do Google da Scavio -- country_code, language, page, search_type, device, nfpr, light_request. Definidos na inicialização ou substituídos por run. |
Benefícios do Scavio + Haystack
- Documentos nativos: os resultados chegam como objetos
Documentdo Haystack, prontos para retrievers e rankers. - Pronto para usar: mesma forma que
TavilyWebSearcheExaWebSearch. - Pronto para async:
run_asyncpara agentes de alta vazão. - Econômico: a maioria das chamadas custa um único crédito.
Próximos passos
- API de Busca do Google -- referência do endpoint e parâmetros
- SDK Python -- o cliente que impulsiona este componente
- Integração MCP -- o catálogo completo de ferramentas