Integracion con Haystack
Integra Scavio con Haystack de deepset para dar a tus pipelines RAG y agentes busqueda web en tiempo real. El componente ScavioWebSearch devuelve los resultados como objetos Document de Haystack con metadatos de titulo y URL -- una alternativa rentable a Tavily, Exa y SerpAPI.
Busqueda web lista para usar
ScavioWebSearch replica los componentes integrados TavilyWebSearch y ExaWebSearch, por lo que encaja en pipelines existentes sin reconexiones.Introduccion
El paquete scavio-haystack proporciona ScavioWebSearch, un componente de busqueda web respaldado por la API de Scavio. Cada run devuelve una lista de objetos Document mas los enlaces de origen sin procesar, listos para alimentar un prompt builder, retriever o generador.
Guia de integracion paso a paso
Paso 1: Instala el paquete
pip install scavio-haystackPaso 2: Configura tu clave API
Consigue una clave en dashboard.scavio.dev, luego exponla como la variable de entorno SCAVIO_API_KEY:
export SCAVIO_API_KEY=sk_live_...Paso 3: Ejecuta una busqueda
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"]Usalo en un pipeline RAG
Conecta ScavioWebSearch a un pipeline para fundamentar la respuesta de un LLM en resultados web en 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])Soporte asincrono
Usa run_async dentro de agentes y pipelines asincronos:
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())Parametros
| Parametro | Descripcion |
|---|---|
api_key | Clave API de Scavio. Por defecto usa la variable de entorno SCAVIO_API_KEY. |
top_k | Numero maximo de resultados a devolver. Por defecto 10. |
search_params | Parametros adicionales para el endpoint de Google de Scavio -- country_code, language, page, search_type, device, nfpr, light_request. Se configuran al iniciar o se sobrescriben por run. |
Ventajas de Scavio + Haystack
- Documentos nativos: los resultados llegan como objetos
Documentde Haystack, listos para retrievers y rankers. - Lista para usar: la misma forma que
TavilyWebSearchyExaWebSearch. - Preparada para async:
run_asyncpara agentes de alto rendimiento. - Rentable: la mayoria de las llamadas cuestan un solo credito.
Siguientes pasos
- Google Search API -- referencia del endpoint y parametros
- Python SDK -- el cliente que impulsa este componente
- Integracion con MCP -- el catalogo completo de herramientas