ScavioScavio
ProduitTarifsDocumentation
ConnexionCommencer
  1. Accueil
  2. Tutoriels
  3. Comment construire une chaîne de basculement de backend de recherche
Tutoriel

Comment construire une chaîne de basculement de backend de recherche

Apprenez à construire une chaîne de basculement qui achemine automatiquement les requêtes de recherche à travers plusieurs plateformes, garantissant que votre agent IA ne perde jamais sa capacité de recherche.

Obtenez une clé API gratuiteDocumentation API

Les agents IA de production qui dépendent d'un seul backend de recherche subissent une dégradation complète des sorties en cas de panne. Une chaîne de basculement achemine les requêtes à travers plusieurs plateformes de recherche par ordre de priorité, en revenant automatiquement au prochain lorsque le principal renvoie des erreurs ou des résultats vides. Ce tutoriel construit une chaîne de basculement en utilisant l'API multiplateforme de Scavio, où une seule clé couvre Google, Reddit, YouTube, Amazon et Walmart. Le même modèle fonctionne pour la redondance au niveau du fournisseur en ajoutant un fournisseur secondaire comme dernier recours.

Prérequis

  • Python 3.8+ ou Node.js 18+ installé
  • bibliothèque requests (Python) ou fetch intégré (JS)
  • Une clé API Scavio depuis scavio.dev
  • Compréhension de base de la gestion des erreurs try-catch

Parcours

Étape 1: Définissez votre priorité de plateforme

Listez les plateformes de recherche par ordre de préférence pour votre cas d'utilisation. Google couvre la plupart des requêtes ; Reddit et YouTube offrent de la profondeur pour les discussions et les sujets vidéo.

Python
PLATFORMS = ['google', 'reddit', 'youtube']
API_KEY = os.environ['SCAVIO_API_KEY']

Étape 2: Construisez la fonction de basculement

Parcourez les plateformes en renvoyant les résultats de la première qui réussit avec des résultats non vides.

Python
import requests, os

def failover_search(query: str, min_results: int = 1) -> dict:
    for platform in PLATFORMS:
        try:
            resp = requests.post('https://api.scavio.dev/api/v1/search',
                headers={'x-api-key': API_KEY},
                json={'platform': platform, 'query': query}, timeout=10)
            resp.raise_for_status()
            data = resp.json()
            results = data.get('organic', [])
            if len(results) >= min_results:
                return {'platform': platform, 'results': results}
        except (requests.RequestException, ValueError):
            continue
    return {'platform': 'none', 'results': []}

Étape 3: Ajoutez la journalisation pour l'observabilité

Enregistrez quelle plateforme a servi chaque requête afin de suivre la fréquence de basculement et d'identifier les backends dégradés.

Python
import logging
logger = logging.getLogger('search_failover')

def logged_failover_search(query: str) -> dict:
    for platform in PLATFORMS:
        try:
            resp = requests.post('https://api.scavio.dev/api/v1/search',
                headers={'x-api-key': API_KEY},
                json={'platform': platform, 'query': query}, timeout=10)
            data = resp.json()
            results = data.get('organic', [])
            if results:
                logger.info(f'Query "{query}" served by {platform} ({len(results)} results)')
                return {'platform': platform, 'results': results}
            logger.warning(f'{platform} returned 0 results for "{query}"')
        except Exception as e:
            logger.error(f'{platform} failed for "{query}": {e}')
    logger.error(f'All platforms failed for "{query}"')
    return {'platform': 'none', 'results': []}

Étape 4: Normalisez la sortie

Assurez-vous que le LLM en aval reçoive le même format, quel que soit la plateforme qui a répondu.

Python
def normalize_result(result: dict, platform: str) -> dict:
    return {
        'title': result.get('title', ''),
        'snippet': result.get('snippet', result.get('description', '')),
        'url': result.get('link', result.get('url', '')),
        'source_platform': platform
    }

def search_for_agent(query: str) -> list:
    data = logged_failover_search(query)
    return [normalize_result(r, data['platform']) for r in data['results'][:5]]

Exemple Python

Python
import requests, os

PLATFORMS = ['google', 'reddit', 'youtube']
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}

def failover_search(query):
    for p in PLATFORMS:
        try:
            r = requests.post('https://api.scavio.dev/api/v1/search',
                headers=H, json={'platform': p, 'query': query}, timeout=10)
            results = r.json().get('organic', [])
            if results: return {'platform': p, 'results': results[:5]}
        except: continue
    return {'platform': 'none', 'results': []}

print(failover_search('best crm for startups'))

Exemple JavaScript

JavaScript
const PLATFORMS = ['google', 'reddit', 'youtube'];
async function failoverSearch(query) {
  for (const p of PLATFORMS) {
    try {
      const r = await fetch('https://api.scavio.dev/api/v1/search', {
        method: 'POST',
        headers: {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'},
        body: JSON.stringify({platform: p, query})
      });
      const data = await r.json();
      if (data.organic?.length) return {platform: p, results: data.organic.slice(0, 5)};
    } catch { continue; }
  }
  return {platform: 'none', results: []};
}

Sortie attendue

JSON
A failover search function that automatically routes through Google, Reddit, and YouTube in order, returning normalized results from the first platform that succeeds.

Tutoriels associés

  • Comment récupérer les résultats de recherche Google en Python

Questions fréquentes

La plupart des développeurs terminent ce tutoriel en 15 à 30 minutes. Vous aurez besoin d'une clé API Scavio (l'offre gratuite suffit) et d'un environnement Python ou JavaScript fonctionnel.

Python 3.8+ ou Node.js 18+ installé. bibliothèque requests (Python) ou fetch intégré (JS). Une clé API Scavio depuis scavio.dev. Compréhension de base de la gestion des erreurs try-catch. Une clé API Scavio vous donne 50 crédits gratuits à l'inscription.

Oui. L'offre gratuite comprend 50 crédits à l'inscription, ce qui est largement suffisant pour terminer ce tutoriel et prototyper une solution fonctionnelle.

Scavio dispose d'un package natif LangChain (langchain-scavio), d'un serveur MCP et d'une API REST simple qui fonctionne avec tout client HTTP. Ce tutoriel utilise the raw REST API, mais vous pouvez l'adapter à votre framework de prédilection.

Ressources connexes

Best Of

Meilleures architectures de repli de recherche pour agents (2026)

Read more
Use Case

Recherche Multi-Plateforme de l'Agent de Codage Pi

Read more
Best Of

Meilleures API de données multi-plateformes pour le grounding des agents en mai 2026

Read more
Use Case

Passerelle de recherche MCP pour systèmes multi-agents

Read more
Solution

Alimentez votre agent avec six plateformes pour des données fraîches

Read more
Solution

Basculement multi-moteurs de recherche

Read more

Commencer

Apprenez à construire une chaîne de basculement qui achemine automatiquement les requêtes de recherche à travers plusieurs plateformes, garantissant que votre agent IA ne perde jamais sa capacité de recherche.

Obtenez une clé API gratuiteLire la documentation
ScavioScavio

API de recherche en temps réel pour agents IA. Recherchez sur toutes les plateformes, pas seulement Google.

Produit

  • Fonctionnalités
  • Tarifs
  • Tableau de bord
  • Affiliés

Développeurs

  • Documentation
  • Référence API
  • Démarrage rapide
  • Intégration MCP
  • SDK Python

Alternatives

  • Alternative à Tavily
  • Alternative à SerpAPI
  • Alternative à Firecrawl
  • Alternative à Exa

Outils

  • Formateur JSON
  • cURL vers code
  • Compteur de jetons
  • Tous les outils

© 2026 Scavio. Tous droits réservés.

Featured on TAAFT
Conditions d'utilisationPolitique de confidentialité