Intégration Haystack
Intégrez Scavio à Haystack de deepset pour offrir à vos pipelines RAG et à vos agents une recherche web en temps réel. Le composant ScavioWebSearch renvoie les résultats sous forme d'objets Document Haystack avec les métadonnées de titre et d'URL -- une alternative économique à Tavily, Exa et SerpAPI.
Recherche web prête à l'emploi
ScavioWebSearch reproduit les composants intégrés TavilyWebSearch et ExaWebSearch, il s'intègre donc dans les pipelines existants sans reconfiguration.Introduction
Le paquet scavio-haystack fournit ScavioWebSearch, un composant de recherche web propulsé par l'API Scavio. Chaque run renvoie une liste d'objets Document ainsi que les liens sources bruts, prêts à alimenter un prompt builder, un retriever ou un générateur.
Guide d'intégration étape par étape
Étape 1 : Installer le paquet
pip install scavio-haystackÉtape 2 : Définir votre clé API
Obtenez une clé sur dashboard.scavio.dev, puis exposez-la comme variable d'environnement SCAVIO_API_KEY :
export SCAVIO_API_KEY=sk_live_...Étape 3 : Lancer une recherche
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"]Utilisez-le dans un pipeline RAG
Reliez ScavioWebSearch à un pipeline pour ancrer la réponse d'un LLM sur des résultats web en direct :
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])Support asynchrone
Utilisez run_async dans vos agents et pipelines asynchrones :
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())Paramètres
| Paramètre | Description |
|---|---|
api_key | Clé API Scavio. Par défaut, la variable d'environnement SCAVIO_API_KEY. |
top_k | Nombre maximal de résultats à renvoyer. Par défaut 10. |
search_params | Paramètres supplémentaires pour le point de terminaison Google de Scavio -- country_code, language, page, search_type, device, nfpr, light_request. Définis à l'initialisation ou remplacés par run. |
Avantages de Scavio + Haystack
- Documents natifs : les résultats arrivent sous forme d'objets
DocumentHaystack, prêts pour les retrievers et les rankers. - Prêt à l'emploi : même forme que
TavilyWebSearchetExaWebSearch. - Prêt pour l'async :
run_asyncpour les agents à haut débit. - Économique : la plupart des appels coûtent un seul crédit.
Prochaines étapes
- API Google Search -- référence du point de terminaison et paramètres
- SDK Python -- le client qui propulse ce composant
- Intégration MCP -- le catalogue d'outils complet