La sortie en streaming de l'API Assistant fournit des résultats en temps réel. Ces résultats sont transmis sous forme de flux d'événements contenant des informations d'état et des messages de conversation issus de l'exécution de l'Assistant. Pour traiter ces messages, vous devez comprendre les objets delta de message et les objets delta d'étape d'exécution.
ImportantL'API Assistant est en cours de dépréciation. Migrez vers l'API Responses, qui offre des outils intégrés et une gestion du contexte multi-tours.
Objet delta de message
Nom de l'événement : thread.message.delta
Fragment de message généré par le grand modèle de langage (LLM) lors d'une exécution en streaming.
Nom du champ | Type | Description |
|---|---|---|
id | string | Identifiant du message. |
object | string | Type d'objet. Correspond au nom de l'événement. Toujours |
delta | object | Objet fragment de message généré par le LLM. |
delta.role | string | Rôle ayant généré le message. La valeur peut être |
delta.file_ids | array | Ce champ n'est pas utilisé. |
delta.content | object | Objet contenu du message. |
delta.content.type | string | Type de contenu du message. Toujours |
delta.content.text | object | Objet contenu textuel du message. |
delta.content.text.annotations | array | Ce champ n'est pas utilisé. |
delta.content.text.value | string | Contenu textuel du message. |
{
"delta": {
"content": {
"text": {
"annotations": [],
"value": "[REDACTED]"
},
"type": "text"
},
"role": "[REDACTED]",
"file_ids": []
},
"id": "[REDACTED]",
"object": "thread.message.delta",
"request_id": "[REDACTED]",
"status_code": 200
}
Objet delta d'étape d'exécution
Nom de l'événement : thread.run.step.delta
Fragment de message retourné par un appel d'outil lors d'une exécution en streaming.
Nom du champ | Type | Description |
|---|---|---|
id | string | Identifiant de l'étape d'exécution. |
object | string | Type d'objet. Correspond au nom de l'événement. Toujours |
delta | object | Objet fragment de message retourné par l'appel d'outil. |
delta.step_details | object | Objet contenant les détails de l'étape pour le fragment. |
delta.step_details.type | string | Type de détails de l'étape. La valeur peut être |
delta.step_details.message_creation | object | Détails du message créé lors de cette étape. |
delta.step_details.message_creation.type | string | Toujours |
delta.step_details.message_creation.message_id | string | ID du message créé à cette étape. |
delta.step_details.tool_calls | array | Liste des détails des appels d'outils. |
delta.step_details.tool_calls.type | string | Type d'appel d'outil. La valeur peut être |
delta.step_details.tool_calls.code_interpreter | object | Objet message pour l'interpréteur de code. |
delta.step_details.tool_calls.code_interpreter.arguments | string | Paramètres d'entrée de l'interpréteur de code. Inclut le type de code et le code complet. Généré par le LLM. |
delta.step_details.tool_calls.code_interpreter.output | string | Paramètres de sortie de l'interpréteur de code. Inclut le résultat de l'exécution. Généré par l'interpréteur de code. |
delta.step_details.tool_calls.quark_search | object | Objet message pour Quark Search. |
delta.step_details.tool_calls.quark_search.arguments | string | Paramètres d'entrée de Quark Search. Inclut la requête reformulée. Généré par le LLM. |
delta.step_details.tool_calls.quark_search.output | string | Paramètres de sortie de Quark Search. Comprend un indicateur de succès, un code d'erreur, un message d'erreur et une liste de résultats de recherche (titre, adresse, description, type, source du message). Généré par Quark Search. |
delta.step_details.tool_calls.text_to_image | object | Objet message pour la conversion texte-en-image. |
delta.step_details.tool_calls.text_to_image.arguments | string | Paramètres d'entrée de la conversion texte-en-image. Inclut le nom du modèle, le style, la taille de l'image, le nombre d'images, le prompt positif et le prompt négatif. Généré par le LLM. |
delta.step_details.tool_calls.text_to_image.output | string | Paramètres de sortie de la conversion texte-en-image. Comprend l'ID de la requête, l'ID de la tâche, l'état de la tâche, l'heure de soumission, l'heure d'achèvement estimée, l'heure de fin, le résultat généré, le nombre d'images, ainsi que les indicateurs de succès et d'échec. Généré par l'outil texte-en-image. |
delta.step_details.tool_calls.calculator | object | Objet message pour la calculatrice. |
delta.step_details.tool_calls.calculator.arguments | string | Paramètres d'entrée de la calculatrice. Inclut la formule d'entrée et l'en-tête de la requête. Généré par le LLM. |
delta.step_details.tool_calls.calculator.output | string | Paramètres de sortie de la calculatrice. Comprend la formule et le résultat. Généré par la calculatrice. |
RemarqueLes outils interpréteur de code, Quark Search, texte-en-image et calculatrice prennent en charge la sortie en streaming.
Les autres outils de l'API Assistant ne prennent pas en charge la sortie en streaming. Pour récupérer les résultats de ces appels d'outils dans le flux de sortie, utilisez la méthode standard d'appel d'outils. Pour plus d'informations, consultez la section correspondante dans Présentation des appels d'outils.
{
"delta": {
"step_details": {
"tool_calls": [
{
"code_interpreter": {
"output": [],
"arguments": "[REDACTED]"
},
"type": "code_interpreter"
}
],
"type": "tool_calls"
}
},
"id": "[REDACTED]",
"object": "thread.run.step.delta",
"request_id": "[REDACTED]",
"status_code": 200
}
Flux d'événements de l'Assistant
Événements déclenchés lors de l'exécution d'un Assistant en mode streaming.
Dans l'API Assistant, un flux d'événements se compose d'un event et de data :
-
event: Le serveur envoie un événement lors de la création d'un objet, d'un changement d'état ou de la diffusion de contenu en streaming.Par exemple, un événement est envoyé lors de la création d'une nouvelle exécution (
thread.run.created) ou lorsqu'une exécution est terminée (thread.run.completed). -
data: Contient les données détaillées associées à l'événement.Peut inclure l'état, du texte, des messages d'outils ou des erreurs.
event: thread.created
data: {"id": "thread_123", "object": "thread", ...}
Nom de l'événement | Type de données | Description |
|---|---|---|
thread.created | thread | Déclenché lors de la création d'un nouveau fil de discussion. |
thread.run.created | run | Déclenché lors de la création d'une nouvelle exécution. |
thread.run.queued | run | L'exécution passe à l'état |
thread.run.in_progress | run | L'exécution passe à l'état |
thread.run.requires_action | run | L'exécution nécessite une action ( |
thread.run.completed | run | L'exécution est terminée. |
thread.run.failed | run | L'exécution a échoué. |
thread.run.cancelled | run | L'exécution a été annulée. |
thread.run.expired | run | L'exécution a expiré. |
thread.run.step.created | run step | Création d'une étape d'exécution. |
thread.run.step.in_progress | run step | L'étape d'exécution passe à l'état |
thread.run.step.delta | run step delta | Diffusion d'une partie du contenu d'une étape en streaming. |
thread.run.step.completed | run step | L'étape d'exécution est terminée. |
thread.run.step.failed | run step | L'étape d'exécution a échoué. |
thread.run.step.cancelled | run step | L'étape d'exécution a été annulée. |
thread.run.step.expired | run step | L'étape d'exécution a expiré. |
thread.message.created | message | Création d'un message. |
thread.message.in_progress | message | Le message passe à l'état |
thread.message.delta | message delta | Diffusion d'une partie du contenu d'un message. |
thread.message.completed | message | Le message est terminé. |
thread.message.incomplete | message | Le message s'est terminé avant d'être complet. |
error | error | Déclenché en cas d'erreur. Peut provenir d'une erreur interne du serveur ou d'un délai d'attente dépassé. |
FAQ
- Si vous rencontrez une erreur d'exécution de code lors de la configuration de la sortie en streaming, consultez la rubrique Messages d'erreur pour résoudre le problème.
- Pour configurer la sortie en streaming pour l'API Assistant, reportez-vous au Guide de démarrage rapide pour la sortie en streaming de l'API Assistant.