Integrazione Haystack
Integra Scavio con Haystack di deepset per offrire ai tuoi pipeline RAG e ai tuoi agenti la ricerca web in tempo reale. Il componente ScavioWebSearch restituisce i risultati come oggetti Document di Haystack con metadati di titolo e URL -- un'alternativa economica a Tavily, Exa e SerpAPI.
Ricerca web pronta all'uso
ScavioWebSearch rispecchia i componenti integrati TavilyWebSearch ed ExaWebSearch, quindi si inserisce nei pipeline esistenti senza modifiche al cablaggio.Introduzione
Il pacchetto scavio-haystack fornisce ScavioWebSearch, un componente di ricerca web basato sull'API Scavio. Ogni run restituisce un elenco di oggetti Document più i link sorgente grezzi, pronti per alimentare un prompt builder, un retriever o un generatore.
Guida all'integrazione passo dopo passo
Passaggio 1: Installa il pacchetto
pip install scavio-haystackPassaggio 2: Imposta la tua chiave API
Ottieni una chiave su dashboard.scavio.dev, poi esponila come variabile d'ambiente SCAVIO_API_KEY:
export SCAVIO_API_KEY=sk_live_...Passaggio 3: Esegui una ricerca
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 in un pipeline RAG
Collega ScavioWebSearch a un pipeline per ancorare la risposta di un LLM a risultati web in tempo reale:
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])Supporto asincrono
Usa run_async all'interno di agenti e pipeline asincroni:
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())Parametri
| Parametro | Descrizione |
|---|---|
api_key | Chiave API Scavio. Per impostazione predefinita, la variabile d'ambiente SCAVIO_API_KEY. |
top_k | Numero massimo di risultati da restituire. Per impostazione predefinita 10. |
search_params | Parametri aggiuntivi per l'endpoint Google di Scavio -- country_code, language, page, search_type, device, nfpr, light_request. Impostati all'inizializzazione o sovrascritti per run. |
Vantaggi di Scavio + Haystack
- Documenti nativi: i risultati arrivano come oggetti
Documentdi Haystack, pronti per retriever e ranker. - Pronto all'uso: stessa forma di
TavilyWebSearchedExaWebSearch. - Pronto per l'async:
run_asyncper agenti ad alto throughput. - Economico: la maggior parte delle chiamate costa un solo credito.
Passaggi successivi
- API Google Search -- riferimento dell'endpoint e parametri
- SDK Python -- il client che alimenta questo componente
- Integrazione MCP -- l'intero catalogo di strumenti