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_domainsrestreint la recherche à une liste blanche de sitesexcluded_domainsexclut 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, pashttps://arxiv.org) - Adaptez la stratégie au cas d’usage : liste blanche pour les domaines sensibles, liste noire pour le filtrage léger