ScavioScavio
ProduitTarifsDocumentation
ConnexionCommencer
  1. Accueil
  2. Tutoriels
  3. Comment ancrer un LLM local avec une API de recherche d'actualités
Tutoriel

Comment ancrer un LLM local avec une API de recherche d'actualités

Ajouter un ancrage en temps réel des actualités à un LLM local comme Llama ou Mistral. Rechercher des événements récents et injecter les résultats dans la fenêtre de contexte du modèle.

Obtenez une clé API gratuiteDocumentation API

Ancrer un LLM local avec des actualités en temps réel en détectant quand une requête utilisateur concerne des événements récents, en recherchant les actualités récentes via l'API de recherche, et en injectant les résultats dans la fenêtre de contexte du modèle avant la génération. Les LLM locaux comme Llama et Mistral ont des coupures de connaissance statiques et ne peuvent pas répondre aux questions sur des événements récents. L'ancrage aux actualités résout ce problème en fournissant des informations actuelles au moment de l'inférence, sans fine-tuning ni réentraînement. L'appel de recherche ajoute une latence minimale et empêche les histoires d'actualités hallucinées que les LLM locaux génèrent lorsqu'on leur demande des événements dont ils n'ont pas de données.

Prérequis

  • Python 3.8+ installé
  • bibliothèque requests installée
  • Une clé API Scavio depuis scavio.dev
  • Un LLM local en fonctionnement (via Ollama, llama.cpp, ou similaire)

Parcours

Étape 1: Détecter les requêtes dignes d'actualité

Construire un classifieur qui identifie les requêtes nécessitant des données d'actualité récentes.

Python
import os, requests

API_KEY = os.environ['SCAVIO_API_KEY']

NEWS_SIGNALS = [
    'latest', 'recent', 'today', 'this week', 'breaking',
    'update', 'announcement', 'just happened', 'new release',
    'election', 'earnings', 'ipo', 'acquisition', 'merger',
    'what happened', 'current', 'news about',
]

TIME_ENTITIES = ['2025', '2026', 'yesterday', 'last week', 'this month']

def needs_news(query: str) -> bool:
    q_lower = query.lower()
    if any(signal in q_lower for signal in NEWS_SIGNALS):
        return True
    if any(entity in q_lower for entity in TIME_ENTITIES):
        return True
    if '?' in query and any(w in q_lower for w in ['who', 'what', 'when', 'where']):
        return True
    return False

print(needs_news('What happened with the OpenAI announcement?'))  # True
print(needs_news('How do Python list comprehensions work?'))       # False
print(needs_news('Latest AI agent frameworks 2026'))               # True

Étape 2: Rechercher les actualités récentes

Interroger l'API de recherche pour obtenir des articles d'actualité récents liés à la question de l'utilisateur.

Python
def search_news(query: str, limit: int = 5) -> list:
    resp = requests.post('https://api.scavio.dev/api/v1/search',
        headers={'x-api-key': API_KEY},
        json={'platform': 'google', 'query': f'{query} news 2026'}, timeout=15)
    results = resp.json().get('organic_results', [])
    news = []
    for r in results[:limit]:
        news.append({
            'title': r.get('title', ''),
            'snippet': r.get('snippet', ''),
            'source': r.get('source', ''),
            'url': r.get('link', ''),
        })
    return news

news = search_news('latest AI agent frameworks')
for n in news:
    print(f"  {n['source']}: {n['title'][:50]}")

Étape 3: Formater le contexte pour le LLM

Structurer les résultats d'actualité en un bloc de contexte qui s'intègre naturellement dans le prompt du LLM.

Python
def format_news_context(news: list) -> str:
    if not news:
        return ''
    parts = ['CURRENT NEWS CONTEXT (live search results):', '']
    for i, n in enumerate(news[:3], 1):
        parts.append(f'{i}. {n["title"]}')
        if n.get('source'):
            parts.append(f'   Source: {n["source"]}')
        if n.get('snippet'):
            parts.append(f'   Summary: {n["snippet"][:200]}')
        parts.append('')
    parts.append('Use the above current information to answer the question accurately.')
    parts.append('Cite sources when referencing specific news items.')
    return '\n'.join(parts)

context = format_news_context(news)
print(context[:400])

Étape 4: Injecter dans le prompt du LLM

Construire le prompt complet avec le contexte d'actualité injecté avant la requête utilisateur.

Python
def grounded_prompt(query: str, system: str = 'You are a helpful assistant.') -> str:
    parts = [system]
    if needs_news(query):
        news = search_news(query)
        news_context = format_news_context(news)
        if news_context:
            parts.append(news_context)
    parts.append(f'User: {query}')
    parts.append('Assistant:')
    return '\n\n'.join(parts)

# Example with news grounding:
prompt = grounded_prompt('What are the latest AI agent frameworks in 2026?')
print(f'Prompt length: {len(prompt)} chars')
print(prompt[:500])

# Example without grounding:
prompt_no_news = grounded_prompt('How do Python decorators work?')
print(f'\nNo-news prompt length: {len(prompt_no_news)} chars')

Étape 5: Tester la qualité de l'ancrage

Vérifier que le pipeline d'ancrage produit un contexte pertinent et actuel pour les requêtes d'actualité.

Python
def test_grounding():
    test_cases = [
        ('Latest Python release', True),
        ('Python list comprehension syntax', False),
        ('Who won the latest tech IPO?', True),
        ('How to use git rebase', False),
        ('AI regulation news 2026', True),
    ]
    for query, expected_news in test_cases:
        detected = needs_news(query)
        status = 'PASS' if detected == expected_news else 'FAIL'
        print(f'[{status}] "{query}" -> needs_news={detected} (expected={expected_news})')
        if detected:
            news = search_news(query)
            print(f'       Found {len(news)} news items')

test_grounding()

Exemple Python

Python
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}

def news_context(query):
    data = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
        json={'platform': 'google', 'query': f'{query} news 2026'}).json()
    news = data.get('organic_results', [])[:3]
    return '\n'.join(f"{n.get('title', '')}: {n.get('snippet', '')[:80]}" for n in news)

print(news_context('latest AI frameworks'))

Exemple JavaScript

JavaScript
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
async function newsContext(query) {
  const r = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST', headers: H,
    body: JSON.stringify({platform: 'google', query: `${query} news 2026`})
  });
  const news = (await r.json()).organic_results || [];
  return news.slice(0, 3).map(n => `${n.title}: ${(n.snippet || '').slice(0, 80)}`).join('\n');
}
newsContext('latest AI frameworks').then(console.log);

Sortie attendue

JSON
A local LLM grounding pipeline that detects news-worthy queries, fetches current news via search API, and injects real-time context into the model prompt.

Tutoriels associés

  • Comment améliorer la précision de recherche des agents IA avec la recherche
  • Comment ajouter le contexte CRM à un agent de recherche MCP

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+ installé. bibliothèque requests installée. Une clé API Scavio depuis scavio.dev. Un LLM local en fonctionnement (via Ollama, llama.cpp, ou similaire). 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

Use Case

Ancrage de recherche pour LLM local via API

Read more
Best Of

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

Read more
Use Case

Actualités LLM locales et ancrage de recherche

Read more
Best Of

Meilleure API de recherche en temps réel en 2026

Read more
Solution

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

Read more
Workflow

Pipeline quotidien d'ancrage de recherche LLM local

Read more

Commencer

Ajouter un ancrage en temps réel des actualités à un LLM local comme Llama ou Mistral. Rechercher des événements récents et injecter les résultats dans la fenêtre de contexte du modèle.

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é