Aller au contenu principal

Filtrer les Domaines de Recherche Web

Contrôler les sources pour des résultats fiables

Lorsque vous intégrez la recherche web dans une application professionnelle, vous ne voulez pas que le modèle aille chercher ses informations n’importe où. Un chatbot juridique doit consulter des sources officielles, un assistant médical doit se limiter aux publications scientifiques, et un outil de veille technologique doit cibler les sites de référence.

L’API Grok propose deux paramètres de filtrage pour maîtriser les sources : allowed_domains et excluded_domains. Ces paramètres vous donnent un contrôle granulaire sur le périmètre de recherche.

Les deux modes de filtrage

Liste blanche : allowed_domains

Ce paramètre restreint la recherche aux seuls domaines que vous spécifiez. Le modèle ne consultera aucun autre site :

response = client.responses.create(
    model="grok-3",
    input="Quelles sont les dernières avancées en IA ?",
    tools=[{
        "type": "web_search",
        "allowed_domains": ["arxiv.org", "nature.com", "science.org"]
    }]
)

Liste noire : excluded_domains

Ce paramètre autorise toutes les sources sauf celles que vous listez. Pratique pour exclure les sites peu fiables ou les concurrents :

response = client.responses.create(
    model="grok-3",
    input="Analyse du marché SaaS en France",
    tools=[{
        "type": "web_search",
        "excluded_domains": ["reddit.com", "quora.com"]
    }]
)

La règle d’exclusivité mutuelle

Les paramètres allowed_domains et excluded_domains sont mutuellement exclusifs. Vous ne pouvez pas utiliser les deux en même temps dans un seul appel. Si vous tentez de combiner les deux, l’API renverra une erreur.

Choisissez votre stratégie selon le cas d’usage :

  • Liste blanche (allowed_domains) : quand vous connaissez précisément les sources fiables et que tout le reste est suspect
  • Liste noire (excluded_domains) : quand la plupart des sources sont acceptables mais que quelques-unes posent problème

Limite de cinq domaines

Chaque paramètre accepte un maximum de 5 domaines. Cette contrainte vous oblige à prioriser vos sources. Si vous avez besoin de couvrir davantage de sites, envisagez de faire plusieurs appels avec des listes différentes, ou d’utiliser la liste noire pour exclure les quelques domaines problématiques.

Syntaxe des domaines

Les domaines se spécifient sans protocole ni slash final :

# Correct
"allowed_domains": ["arxiv.org", "nature.com"]

# Incorrect
"allowed_domains": ["https://arxiv.org/", "www.nature.com"]

Cas d’usage concrets

Assistant de recherche scientifique

tools=[{
    "type": "web_search",
    "allowed_domains": [
        "arxiv.org",
        "pubmed.ncbi.nlm.nih.gov",
        "scholar.google.com",
        "nature.com",
        "science.org"
    ]
}]

Veille réglementaire européenne

tools=[{
    "type": "web_search",
    "allowed_domains": [
        "eur-lex.europa.eu",
        "legifrance.gouv.fr",
        "cnil.fr",
        "ec.europa.eu"
    ]
}]

Chatbot d’entreprise sans réseaux sociaux

tools=[{
    "type": "web_search",
    "excluded_domains": [
        "twitter.com",
        "facebook.com",
        "reddit.com",
        "tiktok.com"
    ]
}]

Stratégie de filtrage dynamique

Dans une application réelle, vous pouvez adapter le filtrage selon le contexte de la requête utilisateur :

def get_search_config(category):
    configs = {
        "legal": {
            "allowed_domains": ["legifrance.gouv.fr", "eur-lex.europa.eu"]
        },
        "tech": {
            "excluded_domains": ["pinterest.com", "quora.com"]
        },
        "general": {}
    }
    return configs.get(category, {})

search_params = get_search_config(user_category)
tools = [{"type": "web_search", **search_params}]

Mise en pratique

Créez un assistant spécialisé dans un domaine de votre choix (juridique, scientifique, technologique). Configurez le filtrage de domaines approprié et testez-le avec plusieurs questions. Comparez les résultats obtenus avec et sans filtrage pour mesurer l’impact sur la pertinence des réponses.

Points clés à retenir

  • allowed_domains restreint la recherche à une liste blanche de sites
  • excluded_domains exclut des sites spécifiques de la recherche
  • Les deux paramètres sont mutuellement exclusifs : un seul par appel
  • Maximum 5 domaines par paramètre
  • Les domaines se spécifient sans protocole (arxiv.org, pas https://arxiv.org)
  • Adaptez la stratégie au cas d’usage : liste blanche pour les domaines sensibles, liste noire pour le filtrage léger