llm-context

À UTILISER pour le RAG/grounding LLM. Renvoie du contenu web pré-extrait (texte, tableaux, code) optimisé pour les LLM. GET + POST. Ajustez `max_tokens`/`count` selon la complexité. Prend en charge les Goggles, les résultats locaux/POI. Pour les réponses IA, utilisez `answers`. Recommandé pour toute personne développant des applications IA/agentiques.

npx skills add https://github.com/brave/brave-search-skills --skill llm-context

Contexte pour LLM

Requiert une clé API : Obtenir une à https://api.search.brave.com

Plan : Inclus dans le plan Search. Voir https://api-dashboard.search.brave.com/app/subscriptions/subscribe

L'API Brave LLM Context fournit du contenu web pré-extrait et classé par pertinence, optimisé pour ancrer les réponses des LLM dans des résultats de recherche en temps réel. Contrairement aux API de recherche web traditionnelles qui retournent des liens et des extraits, LLM Context extrait le contenu réel de la page — chunks de texte, tableaux, blocs de code et données structurées — afin que votre LLM ou agent IA puisse raisonner directement dessus.

LLM Context vs AI Grounding

Fonctionnalité LLM Context (ceci) AI Grounding (answers)
Sortie Contenu brut extrait pour VOTRE LLM Réponses IA complètes avec citations
Interface REST API (GET/POST) Compatible OpenAI /chat/completions
Recherches Une seule recherche par requête Multi-recherche (recherche itérative)
Vitesse Rapide (<1s) Plus lent
Plan Search Answers
Endpoint /res/v1/llm/context /res/v1/chat/completions
Idéal pour Agents IA, pipelines RAG, appels d'outils Interfaces de chat, mode recherche

Endpoint

GET  https://api.search.brave.com/res/v1/llm/context
POST https://api.search.brave.com/res/v1/llm/context

Authentification : en-tête X-Subscription-Token: <API_KEY>

En-têtes optionnels :

  • Accept-Encoding: gzip — Activer la compression gzip

Démarrage rapide

Requête GET

curl -s "https://api.search.brave.com/res/v1/llm/context?q=tallest+mountains+in+the+world" \
  -H "Accept: application/json" \
  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}"

Requête POST (corps JSON)

curl -s --compressed -X POST "https://api.search.brave.com/res/v1/llm/context" \
  -H "Accept: application/json" \
  -H "Accept-Encoding: gzip" \
  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{"q": "tallest mountains in the world"}'

Avec Goggles (En ligne)

curl -s "https://api.search.brave.com/res/v1/llm/context" \
  -H "Accept: application/json" \
  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
  -G \
  --data-urlencode "q=rust programming" \
  --data-urlencode 'goggles=$discard
$site=docs.rs
$site=rust-lang.org'

Paramètres

Paramètres de requête

Paramètre Type Requis Défaut Description
q string Oui - Requête de recherche (1-400 caractères, max 50 mots)
country string Non US Pays de recherche (code pays à 2 lettres ou ALL)
search_lang string Non en Préférence de langue (code langue 2+ caractères)
count int Non 20 Max résultats de recherche à considérer (1-50)

Paramètres de taille de contexte

Paramètre Type Requis Défaut Description
maximum_number_of_urls int Non 20 Max URL en réponse (1-50)
maximum_number_of_tokens int Non 8192 Tokens max environ dans le contexte (1024-32768)
maximum_number_of_snippets int Non 50 Max extraits sur toutes les URL (1-100)
maximum_number_of_tokens_per_url int Non 4096 Max tokens par URL individuelle (512-8192)
maximum_number_of_snippets_per_url int Non 50 Max extraits par URL individuelle (1-100)

Paramètres de filtrage et locaux

Paramètre Type Requis Défaut Description
context_threshold_mode string Non balanced Seuil de pertinence pour inclure le contenu (strict/balanced/lenient)
enable_local bool Non null Contrôle du rappel local (true/false/null, voir ci-dessous)
goggles string/list Non null URL Goggle ou définition en ligne pour le classement personnalisé

Directives de taille de contexte

Type de tâche count max_tokens Exemple
Factuel simple 5 2 048 « En quelle année Python a-t-il été créé ? »
Requêtes standard 20 8 192 « Bonnes pratiques pour les hooks React »
Recherche complexe 50 16 384 « Comparer les frameworks IA pour la production »

Des fenêtres de contexte plus grandes fournissent plus d'informations mais augmentent la latence et le coût (de votre inférence). Commencez par les valeurs par défaut et ajustez.

Modes de seuil

Mode Comportement
strict Seuil plus élevé — résultats moins nombreux mais plus pertinents
balanced Par défaut — bon équilibre entre couverture et pertinence
lenient Seuil plus bas — plus de résultats, peut inclure du contenu moins pertinent

Rappel local

Le paramètre enable_local contrôle le rappel conscient de la localisation :

Valeur Comportement
null (non défini) Auto-détection — rappel local activé quand un en-tête de localisation est fourni
true Forcer local — toujours utiliser le rappel local, même sans en-têtes de localisation
false Forcer standard — toujours utiliser le classement web standard, même avec les en-têtes de localisation

Pour la plupart des cas d'usage, omettez enable_local et laissez l'API auto-détecter à partir des en-têtes de localisation.

En-têtes de localisation

En-tête Type Description
X-Loc-Lat float Latitude (-90.0 à 90.0)
X-Loc-Long float Longitude (-180.0 à 180.0)
X-Loc-City string Nom de ville
X-Loc-State string Code état/région (ISO 3166-2)
X-Loc-State-Name string Nom état/région
X-Loc-Country string Code pays à 2 lettres
X-Loc-Postal-Code string Code postal

Priorité : X-Loc-Lat + X-Loc-Long ont la priorité. Quand fournis, les en-têtes textuels (City, State, Country, Postal-Code) ne sont pas utilisés pour la résolution de localisation. Fournissez les en-têtes textuels uniquement quand vous n'avez pas de coordonnées.

Exemple : Avec coordonnées

curl -s "https://api.search.brave.com/res/v1/llm/context" \
  -H "Accept: application/json" \
  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
  -H "X-Loc-Lat: 37.7749" \
  -H "X-Loc-Long: -122.4194" \
  -G \
  --data-urlencode "q=best coffee shops near me"

Exemple : Avec nom de lieu

curl -s "https://api.search.brave.com/res/v1/llm/context" \
  -H "Accept: application/json" \
  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
  -H "X-Loc-City: San Francisco" \
  -H "X-Loc-State: CA" \
  -H "X-Loc-Country: US" \
  -G \
  --data-urlencode "q=best coffee shops near me"

Goggles (classement personnalisé) — Unique à Brave

Goggles vous permettent de contrôler quelles sources ancrent votre LLM — essentiel pour la qualité du RAG.

Cas d'usage Règles Goggle
Docs officielles uniquement $discard\n$site=docs.python.org
Exclure contenu utilisateur $discard,site=reddit.com\n$discard,site=stackoverflow.com
Sources académiques $discard\n$site=arxiv.org\n$site=.edu
Sans paywalls $discard,site=medium.com
Méthode Exemple
Hébergée --data-urlencode "goggles=https://raw.githubusercontent.com/brave/goggles-quickstart/main/goggles/1k_short.goggle"
En ligne --data-urlencode 'goggles=$discard\n$site=example.com'

Les goggles hébergées doivent être sur GitHub/GitLab, inclure les en-têtes ! name:, ! description:, ! author:, et être enregistrées à https://search.brave.com/goggles/create. Les règles en ligne ne nécessitent pas d'enregistrement.

Syntaxe : $boost=N / $downrank=N (1–10), $discard, $site=example.com. Combiner avec des virgules : $site=example.com,boost=3. Séparer les règles avec \n (%0A).

Liste blanche : $discard\n$site=docs.python.org\n$site=developer.mozilla.orgListe noire : $discard,site=pinterest.com\n$discard,site=quora.com

Ressources : Découvrir · Syntaxe · Démarrage rapide

Format de réponse

Réponse standard

{
  "grounding": {
    "generic": [
      {
        "url": "https://example.com/page",
        "title": "Page Title",
        "snippets": [
          "Relevant text chunk extracted from the page...",
          "Another relevant passage from the same page..."
        ]
      }
    ],
    "map": []
  },
  "sources": {
    "https://example.com/page": {
      "title": "Page Title",
      "hostname": "example.com",
      "age": ["Wednesday, January 15, 2025", "2025-01-15", "392 days ago"]
    }
  }
}

Réponse locale (avec enable_local)

{
  "grounding": {
    "generic": [...],
    "poi": {
      "name": "Business Name",
      "url": "https://business.com",
      "title": "Title of business.com website",
      "snippets": ["Business details and information..."]
    },
    "map": [
      {
        "name": "Place Name",
        "url": "https://place.com",
        "title": "Title of place.com website",
        "snippets": ["Place information and details..."]
      }
    ]
  },
  "sources": {
    "https://business.com": {
      "title": "Business Name",
      "hostname": "business.com",
      "age": null
    }
  }
}

Champs de réponse

Champ Type Description
grounding object Conteneur pour tout le contenu d'ancrage par type
grounding.generic array Tableau d'objets URL avec contenu extrait (données d'ancrage principales)
grounding.generic[].url string URL source
grounding.generic[].title string Titre de page
grounding.generic[].snippets array Chunks intelligents extraits pertinents pour la requête
grounding.poi object/null Données point d'intérêt (uniquement avec rappel local)
grounding.poi.name string/null Nom point d'intérêt
grounding.poi.url string/null URL source POI
grounding.poi.title string/null Titre page POI
grounding.poi.snippets array/null Extraits texte POI
grounding.map array Résultats carte/lieu (uniquement avec rappel local)
grounding.map[].name string/null Nom du lieu
grounding.map[].url string/null URL source lieu
grounding.map[].title string/null Titre page lieu
grounding.map[].snippets array/null Extraits texte lieu
sources object Métadonnées pour toutes les URL référencées, indexées par URL
sources[url].title string Titre de page
sources[url].hostname string Hostname source
sources[url].age array/null Dates modification page (quand disponible)

Note : Les extraits peuvent contenir du texte brut OU des données structurées sérialisées en JSON (tableaux, schémas, blocs de code). Les LLM gèrent bien ce format mixte.

Cas d'usage

  • Agents IA : Donnez à votre agent un outil de recherche web qui retourne du contenu prêt à l'emploi en un seul appel
  • Pipelines RAG : Ancrer les réponses LLM dans du contenu web frais et pertinent
  • Assistants IA et Chatbots : Fournir des réponses factuelles soutenues par de vraies sources
  • Réponses à des questions : Récupérer un contexte ciblé pour des requêtes spécifiques
  • Vérification des faits : Vérifier les affirmations par rapport au contenu web actuel
  • Recherche de contenu : Rassembler du matériel source sur n'importe quel sujet en un appel API

Bonnes pratiques

  • Budget en tokens : Commencer par les valeurs par défaut (maximum_number_of_tokens=8192, count=20). Réduire pour des recherches simples, augmenter pour la recherche complexe.
  • Qualité des sources : Utiliser Goggles pour restreindre aux sources de confiance. Définir context_threshold_mode=strict quand la précision > le rappel.
  • Performance : Utiliser le plus petit count et maximum_number_of_tokens qui répondent à vos besoins. Pour les requêtes locales, fournir les en-têtes de localisation.

Skills similaires