Passer au contenu principal
CHATGPT interroge ChatGPT avec la recherche web et renvoie la réponse, chaque source trouvée, les recherches lancées et les fiches de produits et de lieux affichées.

Requête

Réponse

Par exemple, une réponse abrégée :
Chaque source porte searchQueries (les recherches dont les résultats l’incluaient), cited (si la réponse la cite dans le texte) et citedText (le passage de la réponse que chaque citation appuie). Les sources qu’aucune recherche n’a renvoyées, comme les produits, n’ont pas de searchQueries.

Disposition en cartes

layout apparaît quand ChatGPT présente la réponse sous forme de cartes. Ses nodes suivent l’ordre affiché par ChatGPT :

Flags include

CHATGPT respecte tous les flags de réponse. Tous sont activés par défaut sauf rawResponse et html ; envoyez false pour en désactiver un.

Détails des cartes

Avec include.entityDetails, chaque carte de la réponse (un produit, un lieu, une app ou une marque) arrive avec le panneau de détail que ChatGPT ouvre quand le lecteur clique dessus : description, caractéristiques, avis et pages qui les appuient. Les panneaux citent leurs propres pages et montrent ainsi des sources absentes du texte de la réponse. error vaut ENTITY_DETAIL_FAILED si la demande du panneau échoue, ENTITY_DETAIL_EMPTY si le panneau ne contient aucun texte et ENTITY_DETAIL_UNAVAILABLE si les données de conversation ou les identifiants du tour nécessaires sont absents. Les détails fonctionnent aussi avec payload.location, CN, HK, les réponses du chemin de repli et include.html. Un panneau que ChatGPT a déjà écrit revient en une seconde environ ; un panneau qu’il écrit à la demande prend de 10 à 30 secondes, avec jusqu’à 4 panneaux à la fois. Jusqu’à 20 cartes sont ouvertes par réponse. Les panneaux n’ajoutent aucun crédit, et chaque réponse de suivi reçoit ses propres panneaux.

Questions de suivi

payload.followUps pose jusqu’à 4 questions de plus dans la même conversation après la première réponse, dans l’ordre. Chaque élément est l’un des suivants :
  • { "prompt": "..." } : une question à vous.
  • { "select": { "button": 0, "choices": { "budget": "Under $100" } } } : appuie sur le bouton d’un formulaire de suivi de la réponse précédente.
button compte les boutons de la réponse à partir de 0 ; par défaut, c’est le premier. choices choisit les options par le name de chaque nœud choice, ou sous forme de tableau dans l’ordre du formulaire ; un choix est la value ou le label d’une option, ou sa position à partir de 0. Les choix que vous ne faites pas gardent l’option présélectionnée par ChatGPT : { "select": {} } envoie donc le prompt propre au bouton.
Les champs de premier niveau restent ceux de la première réponse. followUps dans la réponse liste chaque réponse suivante avec la question envoyée (prompt), ce sur quoi un select a appuyé (selection : le label du bouton et la valeur de chaque choix) et les mêmes champs que la première réponse. Quand un select ne peut pas être appliqué, les questions de suivi restantes ne sont pas posées, et followUpsStopped indique l’index de la question de suivi, un code et un message : La tâche se termine quand même avec les réponses obtenues. Chaque réponse coûte 1 crédit : la tâche réserve des crédits pour chaque question de suivi et ne facture que les réponses qu’elle renvoie. include.analysis, include.citationAnalysis et include.html s’appliquent à la première réponse. Les autres moteurs refusent followUps avec 400 VALIDATION_ERROR.

Continuer une conversation plus tard

Pour lire une réponse avant de choisir la question suivante, envoyez une nouvelle tâche CHATGPT avec payload.continueFrom égal à l’id d’une tâche terminée, et soit un prompt, soit un select qui appuie sur un formulaire de la dernière réponse de cette tâche (mêmes règles que pour followUps).
  • Une réponse qui affiche un formulaire contient forms : les buttons de chaque formulaire, dont l’ordre est select.button, et ses choices avec leur name, l’option sélectionnée au départ et les options.
  • conversation.id est la tâche qui a ouvert la conversation, turn compte ses réponses jusqu’ici et expiresAt est le dernier moment pour la continuer, 3 heures après sa première réponse.
  • Une continuation pose la question sous la dernière réponse de la tâche que vous nommez : nommer deux fois la même tâche crée donc une branche dans la conversation.
  • Elle conserve le country et la location d’origine. Omettez-les ou envoyez les mêmes valeurs.
  • Une tâche d’un autre compte ou d’un autre moteur, une tâche non terminée ou un select invalide est refusé avec 400 VALIDATION_ERROR. Une conversation expirée est refusée avec 400 CONVERSATION_EXPIRED. Aucun des deux n’est facturé.
  • Une continuation coûte le même prix que toute tâche ChatGPT.

Voir aussi