ScavioScavio
ProduitTarifsDocumentation
ConnexionCommencer
  1. Accueil
  2. Workflows
  3. Pipeline de recherche YaCy avec ancrage LLM
Workflow

Pipeline de recherche YaCy avec ancrage LLM

Workflow combinant la recherche P2P YaCy avec l'API Scavio pour un ancrage LLM fiable. Repli de YaCy vers Scavio lorsque les résultats P2P sont insuffisants.

Commencez gratuitementDocumentation API

Aperçu

YaCy offre une recherche P2P gratuite via yacy_expert avec llama.cpp, mais les résultats sont incohérents en volume et manquent de contenu récent. Ce workflow utilise YaCy pour une découverte large, puis valide et enrichit les résultats via l'API structurée de Scavio. Le LLM est ancré avec des données vérifiées et fraîches, peu importe le fournisseur d'origine.

Déclencheur

Toute demande d'ancrage LLM nécessitant un contexte web.

Planification

À la demande

Étapes du workflow

1

Interroger l'index P2P YaCy

Envoyer la requête à l'instance locale YaCy. Collecter les résultats avec URL, titres et extraits.

2

Noter les résultats YaCy

Vérifier le nombre de résultats et leur fraîcheur. Si YaCy renvoie moins de 3 résultats ou des résultats vieux de plus de 30 jours, marquer pour enrichissement.

3

Enrichir via Scavio

Pour les requêtes marquées, appeler l'API de recherche Scavio pour obtenir des résultats frais et structurés avec AI Overview et Knowledge Graph.

4

Fusionner et dédupliquer

Combiner les résultats YaCy et Scavio, dédupliquer par URL, classer par fraîcheur et pertinence.

5

Formater pour le contexte LLM

Formater les résultats fusionnés en un bloc de contexte d'ancrage pour le prompt LLM.

Implémentation Python

Python
import requests, os, json

API_KEY = os.environ["SCAVIO_API_KEY"]
H = {"x-api-key": API_KEY, "Content-Type": "application/json"}
YACY_URL = os.environ.get("YACY_URL", "http://localhost:8090")

def yacy_search(query: str) -> list:
    """Search local YaCy P2P index."""
    try:
        resp = requests.get(
            f"{YACY_URL}/yacysearch.json",
            params={"query": query, "maximumRecords": 10},
            timeout=5,
        )
        channels = resp.json().get("channels", [{}])
        return [{"title": r.get("title", ""), "url": r.get("link", ""), "snippet": r.get("description", "")}
                for r in channels[0].get("items", [])]
    except Exception:
        return []

def scavio_search(query: str) -> list:
    resp = requests.post(
        "https://api.scavio.dev/api/v1/search",
        headers=H,
        json={"query": query, "country_code": "us"},
        timeout=10,
    )
    data = resp.json()
    return [{"title": r.get("title", ""), "url": r.get("link", ""), "snippet": r.get("snippet", "")}
            for r in data.get("organic_results", [])]

def grounding_pipeline(query: str) -> str:
    yacy_results = yacy_search(query)
    if len(yacy_results) < 3:
        scavio_results = scavio_search(query)
        all_results = yacy_results + scavio_results
    else:
        all_results = yacy_results
    # Deduplicate by URL
    seen = set()
    unique = [r for r in all_results if r["url"] not in seen and not seen.add(r["url"])]
    # Format as LLM context
    context = "\n\n".join(f"[{r['title']}]({r['url']}): {r['snippet']}" for r in unique[:8])
    return context

context = grounding_pipeline("transformer architecture attention mechanism")
print(f"Grounding context ({len(context)} chars):\n{context[:500]}")

Implémentation JavaScript

JavaScript
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
const YACY_URL = process.env.YACY_URL || 'http://localhost:8090';

async function yacySearch(query) {
  try {
    const r = await fetch(YACY_URL+'/yacysearch.json?query='+encodeURIComponent(query)+'&maximumRecords=10');
    const channels = (await r.json()).channels || [{}];
    return (channels[0].items||[]).map(r=>({title:r.title||'', url:r.link||'', snippet:r.description||''}));
  } catch { return []; }
}

async function scavioSearch(query) {
  const r = await fetch('https://api.scavio.dev/api/v1/search', {method:'POST', headers:H, body:JSON.stringify({query, country_code:'us'})});
  return ((await r.json()).organic_results||[]).map(r=>({title:r.title||'', url:r.link||'', snippet:r.snippet||''}));
}

async function groundingPipeline(query) {
  let results = await yacySearch(query);
  if (results.length < 3) results = results.concat(await scavioSearch(query));
  const seen = new Set();
  const unique = results.filter(r=>{ if (seen.has(r.url)) return false; seen.add(r.url); return true; });
  return unique.slice(0,8).map(r=>'['+r.title+']('+r.url+'): '+r.snippet).join('\n\n');
}

const ctx = await groundingPipeline('transformer architecture attention mechanism');
console.log('Grounding context ('+ctx.length+' chars):\n'+ctx.slice(0,500));

Plateformes utilisées

Google

Recherche web avec graphe de connaissances, PAA et aperçus IA

Questions fréquentes

YaCy offre une recherche P2P gratuite via yacy_expert avec llama.cpp, mais les résultats sont incohérents en volume et manquent de contenu récent. Ce workflow utilise YaCy pour une découverte large, puis valide et enrichit les résultats via l'API structurée de Scavio. Le LLM est ancré avec des données vérifiées et fraîches, peu importe le fournisseur d'origine.

Ce workflow utilise un toute demande d'ancrage llm nécessitant un contexte web.. À la demande.

Ce workflow utilise les plateformes Scavio suivantes : google. Chaque plateforme est appelée via le même point de terminaison API unifié.

Oui. L'offre gratuite de Scavio comprend 50 crédits à l'inscription sans carte bancaire. Cela suffit pour tester et valider ce workflow avant de le passer à l'échelle.

Pipeline de recherche YaCy avec ancrage LLM

Workflow combinant la recherche P2P YaCy avec l'API Scavio pour un ancrage LLM fiable. Repli de YaCy vers Scavio lorsque les résultats P2P sont insuffisants.

Obtenez votre clé APILire 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é