ScavioScavio
ProduitTarifsDocumentation
ConnexionCommencer
  1. Accueil
  2. Tutoriels
  3. Comment ancrer la sortie d'un LLM avec des données SERP en direct
Tutoriel

Comment ancrer la sortie d'un LLM avec des données SERP en direct

Évitez les hallucinations de prix et de dates dans les LLM en récupérant des données SERP en direct et en les injectant comme contexte d'ancrage avant le prompt. Des exemples Python sont inclus.

Obtenez une clé API gratuiteDocumentation API

Ancrer un LLM avec des données SERP en direct signifie récupérer les résultats de recherche actuels pour une affirmation factuelle avant de générer une réponse, puis injecter les faits extraits dans le prompt comme contexte. Cela évite les hallucinations concernant les prix, les dates et la disponibilité.

Prérequis

  • Python 3.9+
  • Clé API Scavio
  • SDK openai ou anthropic

Parcours

Étape 1: Rechercher sur SERP l'affirmation factuelle

Avant d'interroger le LLM, effectuez une recherche ciblée pour récupérer les faits actuels.

Python
import requests

API_KEY = "your-scavio-api-key"

def fetch_grounding_context(claim_query: str, num_results: int = 5) -> str:
    r = requests.post(
        "https://api.scavio.dev/api/v1/search",
        json={"query": claim_query, "num_results": num_results},
        headers={"x-api-key": API_KEY},
        timeout=15
    )
    r.raise_for_status()
    results = r.json().get("organic_results", [])
    lines = []
    for i, res in enumerate(results, 1):
        lines.append(f"{i}. {res.get('title')}\n   {res.get('snippet')}\n   Source: {res.get('link')}")
    return "\n\n".join(lines)

Étape 2: Injecter le contexte d'ancrage dans le prompt

Ajoutez les extraits SERP en tant que bloc [CONTEXT] pour que le LLM les utilise à la place des données d'entraînement.

Python
def build_grounded_prompt(user_question: str, grounding_context: str) -> str:
    return f"""[CONTEXT - Retrieved {__import__('datetime').date.today()}]
{grounding_context}

[INSTRUCTIONS]
Answer the question below using ONLY the context above. If the context does not contain the answer, say "I don't have current data on this."
Do not use information from your training data for prices, dates, or availability.

[QUESTION]
{user_question}"""

context = fetch_grounding_context("GPT-4o API pricing 2026")
prompt = build_grounded_prompt("What is the current price of GPT-4o per million tokens?", context)
print(prompt[:500])

Étape 3: Appeler le LLM avec le prompt ancré

Transmettez le prompt ancré à n'importe quel LLM. La réponse du modèle est contrainte par les faits injectés.

Python
import anthropic

client = anthropic.Anthropic(api_key="your-anthropic-key")

def grounded_answer(question: str, search_query: str = None) -> str:
    query = search_query or question
    context = fetch_grounding_context(query)
    prompt = build_grounded_prompt(question, context)
    message = client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=512,
        messages=[{"role": "user", "content": prompt}]
    )
    return message.content[0].text

answer = grounded_answer(
    "What does GPT-4o cost per million input tokens?",
    "GPT-4o API pricing per million tokens 2026"
)
print(answer)

Exemple Python

Python
import requests
import anthropic
from datetime import date

SCAVIO_KEY = "your-scavio-api-key"
ANTHROPIC_KEY = "your-anthropic-key"

def fetch_serp_context(query: str, n: int = 5) -> str:
    r = requests.post(
        "https://api.scavio.dev/api/v1/search",
        json={"query": query, "num_results": n},
        headers={"x-api-key": SCAVIO_KEY},
        timeout=15
    )
    r.raise_for_status()
    results = r.json().get("organic_results", [])
    return "\n\n".join(
        f"{i}. {r.get('title')}\n   {r.get('snippet')}\n   {r.get('link')}"
        for i, r in enumerate(results, 1)
    )

def grounded_answer(question: str, search_query: str | None = None) -> dict:
    query = search_query or question
    context = fetch_serp_context(query)
    prompt = f"""[CONTEXT - {date.today()}]\n{context}\n\n[INSTRUCTIONS]\nAnswer using ONLY the context above. For prices, dates, or availability, cite the source number.\n\n[QUESTION]\n{question}"""

    client = anthropic.Anthropic(api_key=ANTHROPIC_KEY)
    msg = client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=512,
        messages=[{"role": "user", "content": prompt}]
    )
    return {"answer": msg.content[0].text, "context_used": context}

if __name__ == "__main__":
    result = grounded_answer(
        "How much does Firecrawl cost per month?",
        "Firecrawl pricing 2026"
    )
    print(result["answer"])

Exemple JavaScript

JavaScript
const SCAVIO_KEY = 'your-scavio-api-key';
const ANTHROPIC_KEY = 'your-anthropic-key';

async function fetchSerpContext(query, n = 5) {
  const res = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json', 'x-api-key': SCAVIO_KEY },
    body: JSON.stringify({ query, num_results: n })
  });
  const data = await res.json();
  return (data.organic_results ?? [])
    .map((r, i) => `${i+1}. ${r.title}\n   ${r.snippet}\n   ${r.link}`)
    .join('\n\n');
}

async function groundedAnswer(question, searchQuery) {
  const context = await fetchSerpContext(searchQuery ?? question);
  const prompt = `[CONTEXT - ${new Date().toISOString().slice(0,10)}]\n${context}\n\n[QUESTION]\n${question}`;

  const res = await fetch('https://api.anthropic.com/v1/messages', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'x-api-key': ANTHROPIC_KEY,
      'anthropic-version': '2023-06-01'
    },
    body: JSON.stringify({
      model: 'claude-sonnet-4-6',
      max_tokens: 512,
      messages: [{ role: 'user', content: prompt }]
    })
  });
  const msg = await res.json();
  return msg.content[0].text;
}

const answer = await groundedAnswer('How much does Firecrawl cost per month?', 'Firecrawl pricing 2026');
console.log(answer);

Sortie attendue

JSON
Based on the search results (source 2), Firecrawl offers:
- Free tier: 1,000 credits
- Starter: $16/month for 5,000 credits
- Scale: $83/month for 100,000 credits (annual billing)

These prices reflect annual billing rates as of 2026.

Tutoriels associés

  • Comment configurer le RAG avec la recherche au lieu des vecteurs
  • Comment vérifier les affirmations de prix des concurrents avec SERP
  • Comment construire un agent de recherche multi-source

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.9+. Clé API Scavio. SDK openai ou anthropic. 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

Solution

Ancrez les réponses du LLM avec des données de recherche en temps réel

Read more
Use Case

Ancrage de recherche pour LLM local via API

Read more
Use Case

Actualités LLM locales et ancrage de recherche

Read more
Glossary

LLM Grounding

Read more
Best Of

Meilleures API de recherche pour l'ancrage des LLM open source en 2026

Read more
Best Of

Meilleures API de données SERP brutes pour tableaux de bord personnalisés (2026)

Read more

Commencer

Évitez les hallucinations de prix et de dates dans les LLM en récupérant des données SERP en direct et en les injectant comme contexte d'ancrage avant le prompt. Des exemples Python sont inclus.

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é