OpenAI Web Search
Recherchez sur le Web via Responses ou Chat et traitez les citations des sources.
OpenAI Web Search permet aux modèles compatibles de rechercher sur le Web avant de répondre, puis de retourner du texte, des appels de recherche et des citations. Il convient aux actualités, à la météo, aux mises à jour de produits et aux autres questions sensibles au temps.
Si les données proviennent de vos bases ou services métier, définissez des outils contrôlés avec Tool Calling plutôt que de confier les données internes à une recherche publique.
Vérifier d’abord le modèle et l’endpoint
La présence des champs Web Search ne signifie pas que tous les modèles du compte les prennent en charge. Vérifiez le modèle et le protocole dans le Catalogue de modèles, puis consultez la référence API correspondante.
Choisir Responses ou Chat
| Endpoint | Activation | Emplacement des résultats |
|---|---|---|
| Responses | Ajouter un Web Search Tool dans tools | web_search_call et Message Output Item |
| Chat Completions | Utiliser web_search_options | Assistant Message et annotations |
Responses convient davantage aux applications qui distinguent les recherches, les réponses et les sources ; Chat convient aux projets utilisant déjà une structure de messages.
Rechercher sur le Web avec Responses
curl 'https://api.agtcloud.cn/v1/responses' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer your-api-key' \
--data '{
"model": "MODEL_ID",
"tools": [
{
"type": "web_search_preview",
"search_context_size": "medium"
}
],
"input": "Quelles actualités technologiques méritent l’attention aujourd’hui ?"
}'Le modèle peut décider de rechercher selon la question. Si une recherche a lieu, output contient généralement un élément d’appel de recherche et un message textuel. Consultez les types Tool dans Responses Reference.
Utiliser Chat Completions
curl 'https://api.agtcloud.cn/v1/chat/completions' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer your-api-key' \
--data '{
"model": "MODEL_ID",
"messages": [
{
"role": "user",
"content": "Quelles actualités technologiques méritent l’attention aujourd’hui ?"
}
],
"web_search_options": {
"search_context_size": "medium"
}
}'Le texte Chat se trouve dans choices[].message.content et les citations structurées, lorsqu’elles sont fournies, dans choices[].message.annotations. Consultez Chat Completions Reference.
Lire la réponse et les citations
{
"output": [
{
"type": "web_search_call",
"id": "ws_example",
"status": "completed"
},
{
"type": "message",
"content": [
{
"type": "output_text",
"text": "D’après les résultats de recherche…",
"annotations": [
{
"type": "url_citation",
"url": "https://example.com/article",
"title": "Titre de la source"
}
]
}
]
}
]
}Ne conservez pas uniquement la réponse. Gardez les URL, les titres et la correspondance entre citations et positions dans le texte. Affichez des sources cliquables et utilisez les attributs de sécurité appropriés pour les liens externes ouverts dans un nouvel onglet.
Limiter le périmètre de recherche
Si le modèle et l’endpoint le permettent, configurez les conditions suivantes :
- Domaines : rechercher uniquement sur les sites autorisés, notamment pour les sources médicales, juridiques ou d’entreprise.
- Localisation : fournir le pays, la ville, la région ou le fuseau horaire pour obtenir des résultats localisés.
- Taille du contexte de recherche : choisir un compromis entre qualité, latence et consommation.
- Liste des sources : lorsque cela est pris en charge, Responses peut retourner les sources consultées, pas seulement celles citées dans la réponse finale.
L’emplacement de ces champs diffère entre Responses et Chat. Consultez la référence correspondante pour les noms et les limites.
Échecs et solutions de repli
| Situation | Traitement |
|---|---|
| Aucune recherche effectuée | Vérifier si la question nécessite des informations récentes et si le modèle prend en charge la recherche |
| Réponse sans citations | Ne pas inventer de sources ; indiquer que la réponse ne fournit aucune citation affichable |
| Recherche échouée | Selon l’erreur, réessayer, répondre sans recherche ou inviter à réessayer plus tard |
| Sources contradictoires | Afficher plusieurs sources et leur date de mise à jour, sans masquer les divergences importantes |
| Source inaccessible | Conserver le titre et l’URL et signaler que la page est actuellement inaccessible |
Les pages externes peuvent contenir des erreurs ou des instructions malveillantes destinées au modèle. Ne les considérez pas automatiquement comme fiables et ne les laissez pas contourner les autorisations ou déclencher des outils à haut risque.
Vérifications avant la mise en production
- Le modèle et le protocole prennent explicitement en charge Web Search.
- Les réponses, appels de recherche, citations et listes de sources sont analysés séparément.
- Aucun faux lien n’est créé en l’absence de citations.
- Les domaines et les informations de localisation ne sont envoyés que si nécessaire.
- Le contenu externe ne contourne pas les autorisations et confirmations de Tool Calling.
- Les échecs, délais dépassés et recherches sans résultats disposent de solutions de repli explicites.
En cas d’échec, consultez Erreurs et dépannage. Avant de changer de protocole, consultez Choix du protocole.