API Responses
Le point de terminaison avec état (stateful) de nouvelle génération d'OpenAI, avec prise en charge intégrée des outils, de la recherche web, de la recherche de fichiers et des tâches multi-étapes — il remplace progressivement Chat Completions.
Créer une réponse
POST /v1/responseshttps://test.kailin.com.cn/v1/responsesRequête
curl https://test.kailin.com.cn/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-your-token" \
-d '{
"model": "gpt-4o-mini",
"input": "Describe the Responses API in one sentence"
}'
Corps de la requête
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
model | string | Oui | Nom du modèle |
input | string / array | Oui | Texte d'entrée, ou tableau de messages/parties de contenu |
stream | boolean | Non | Sortie en streaming (types d'événements plus riches) |
instructions | string | Non | Instructions au niveau système |
previous_response_id | string | Non | Passez l'ID de la Response précédente pour une continuité multi-tours sans renvoyer l'historique |
tools | array | Non | Outils : function, web_search_preview, etc. |
temperature / top_p | number | Non | Paramètres d'échantillonnage |
max_output_tokens | number | Non | Nombre maximal de tokens en sortie |
metadata | object | Non | Paires clé-valeur personnalisées (jusqu'à 16) |
store | boolean | Non | Indique si le résultat est conservé pour référence via previous_response_id |
Exemple avec un input sous forme de tableau (incluant une image) :
{
"model": "gpt-4o-mini",
"input": [
{
"role": "user",
"content": [
{ "type": "input_text", "text": "Describe this image" },
{ "type": "input_image", "image_url": "https://example.com/cat.jpg" }
]
}
]
}
Réponse
{
"id": "resp_abc123",
"object": "response",
"created_at": 1730000000,
"status": "completed",
"model": "gpt-4o-mini",
"output": [
{
"type": "message",
"id": "msg_abc123",
"role": "assistant",
"status": "completed",
"content": [
{
"type": "output_text",
"text": "The Responses API is OpenAI's next-generation stateful endpoint…",
"annotations": []
}
]
}
],
"usage": {
"input_tokens": 12,
"output_tokens": 30,
"total_tokens": 42
}
}
Pour extraire le texte, parcourez les éléments output de type: "message" et lisez content[].text ; le SDK propose également le raccourci resp.output_text.
Récupérer une réponse
GET /v1/responses/{response_id}curl https://test.kailin.com.cn/v1/responses/resp_abc123 \
-H "Authorization: Bearer sk-your-token"
Renvoie l'objet Response complet. Les réponses créées avec store: false ne peuvent pas être récupérées.
Compactage du contexte
POST /v1/responses/compactCompacte une longue conversation en un résumé — utile pour les agents de longue durée afin de réduire la consommation de tokens sur les requêtes suivantes :
curl https://test.kailin.com.cn/v1/responses/compact \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-your-token" \
-d '{
"model": "gpt-4o-mini",
"input": [ ...long message array... ]
}'
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
model | string | Oui | Modèle utilisé pour le compactage |
input | array | Oui | Tableau de messages à compacter |
instructions | string | Non | Instructions personnalisées pour le résumé |
Renvoie l'objet résumé compacté, qui peut être placé dans le input de la requête suivante.
L'accès via WebSocket (wss://.../v1/responses avec des événements response.create) dépend de la prise en charge du passthrough WS par la passerelle — REST + SSE reste la voie d'intégration client principale et n'est pas couvert ici.