TokenLab

Texte

Créer une réponse

Crée une réponse en utilisant le format OpenAI Responses API

POST
/v1/responses

Utilisez cet endpoint lorsque accepted_request_formats dans les détails du modèle contient openai_responses. Les requêtes et les réponses utilisent le format Responses API. Les champs facultatifs et les valeurs acceptées dépendent du modèle choisi.

Corps de la requête

modelstringrequis

ID du modèle à utiliser. Voir Models pour les options disponibles.

inputstring | array

L’entrée est facultative lorsque la requête utilise à la place un prompt réutilisable ou poursuit une réponse stockée avec previous_response_id.

Une liste d'éléments d'entrée constituant la conversation.

Chaque élément peut être :

  • message : Un message de conversation avec rôle et contenu
  • function_call : Une requête d'appel de fonction
  • function_call_output : Sortie d'un appel de fonction

Pour les entrées multimodales, message.content peut être soit une chaîne simple, soit un tableau de blocs de contenu. Pour les modèles capables de traiter des images, comme les variantes GPT-5.6 Terra, transmettez les images en tant que blocs input_image au lieu d'incorporer directement des URLs ou des chaînes Base64 dans du texte brut.

Exemples de blocs de contenu :

  • { "type": "input_text", "text": "Describe this image" }
  • { "type": "input_image", "image_url": "https://example.com/image.jpg" }
  • { "type": "input_image", "image_url": "data:image/png;base64,..." }
instructionsstring

Instructions système pour le modèle (équivalent du message système).

max_output_tokensinteger

Nombre maximal de tokens à générer.

temperaturenumber

Température d’échantillonnage. Les valeurs acceptées et les valeurs par défaut dépendent du modèle choisi.

toolsarray

Outils que le modèle peut appeler. Les types et combinaisons acceptés dépendent du modèle choisi.

streambooleanpar défaut: false

Si true, renvoie un flux d'événements.

previous_response_idstring

ID d'une réponse précédente à partir de laquelle continuer la conversation.

storebooleanpar défaut: true

Indique s'il faut stocker la réponse pour une récupération ultérieure.

backgroundbooleanpar défaut: false

Demande une exécution asynchrone. La prise en charge dépend du modèle choisi.

promptobject

Référence à un modèle de prompt réutilisable et à ses variables.

metadataobject

Métadonnées à attacher à la réponse à des fins de suivi.

textobject

Paramètres de sortie textuelle. La prise en charge de text.format dépend du modèle choisi.

parallel_tool_callsbooleanpar défaut: true

Indique s'il faut autoriser plusieurs appels d'outils en parallèle.

top_pnumber

Paramètre de sampling Nucleus (0-1).

reasoningobject

Les options de raisonnement, dont effort, dépendent du modèle choisi.

Réponse

idstring

Identifiant unique de la réponse.

objectstring

Toujours response.

created_atinteger

Timestamp Unix de création de la réponse.

statusstring

État de la réponse : queued, in_progress, completed, incomplete, failed ou cancelled. Vérifiez ce champ même si la requête HTTP réussit.

outputarray

Liste des éléments de sortie générés par le modèle.

usageobject

Statistiques d'utilisation des tokens.

Endpoints associés

  • GET /v1/responses/{id} récupère une réponse enregistrée et accepte include, include_obfuscation, stream et starting_after.
  • DELETE /v1/responses/{id} supprime une réponse enregistrée. Cela n’annule pas la génération.
  • POST /v1/responses/compact renvoie un objet response.compaction.
  • Les endpoints d’annulation, input-items et input-tokens ne sont pas disponibles actuellement.

Requête

cURL
curl -X POST "https://api.tokenlab.sh/v1/responses" \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.6-terra",
    "input": [
      {"type": "message", "role": "user", "content": "Hello!"}
    ],
    "max_output_tokens": 1000
  }'
Python
from openai import OpenAI

client = OpenAI(
    api_key="sk-your-api-key",
    base_url="https://api.tokenlab.sh/v1"
)

response = client.responses.create(
    model="gpt-5.6-terra",
    input=[
        {"type": "message", "role": "user", "content": "Hello!"}
    ],
    max_output_tokens=1000
)

print(response.output)
JavaScript
import OpenAI from 'openai';

const client = new OpenAI({
  apiKey: 'sk-your-api-key',
  baseURL: 'https://api.tokenlab.sh/v1'
});

const response = await client.responses.create({
  model: 'gpt-5.6-terra',
  input: [
    { type: 'message', role: 'user', content: 'Hello!' }
  ],
  max_output_tokens: 1000
});

console.log(response.output);
Go
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    payload := map[string]interface{}{
        "model": "gpt-5.6-terra",
        "input": []map[string]interface{}{
            {"type": "message", "role": "user", "content": "Hello!"},
        },
        "max_output_tokens": 1000,
    }
    body, _ := json.Marshal(payload)

    req, _ := http.NewRequest("POST", "https://api.tokenlab.sh/v1/responses", bytes.NewBuffer(body))
    req.Header.Set("Authorization", "Bearer sk-your-api-key")
    req.Header.Set("Content-Type", "application/json")

    client := &http.Client{}
    resp, _ := client.Do(req)
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result["output"])
}
PHP
<?php
$ch = curl_init('https://api.tokenlab.sh/v1/responses');

curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'Authorization: Bearer sk-your-api-key'
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'model' => 'gpt-5.6-terra',
        'input' => [
            ['type' => 'message', 'role' => 'user', 'content' => 'Hello!']
        ],
        'max_output_tokens' => 1000
    ])
]);

$response = curl_exec($ch);
curl_close($ch);

$data = json_decode($response, true);
print_r($data['output']);

Exemple d’entrée visuelle

Utilisez les modèles capables d'images en plaçant les images dans message.content sous forme de blocs input_image. La valeur de image_url peut être soit une URL publique, soit une URL de données Base64.

{
  "model": "gpt-5.6-terra",
  "input": [
    {
      "type": "message",
      "role": "user",
      "content": [
        {
          "type": "input_text",
          "text": "Please describe this image."
        },
        {
          "type": "input_image",
          "image_url": "https://example.com/demo.jpg"
        }
      ]
    }
  ]
}
{
  "model": "gpt-5.6-terra",
  "input": [
    {
      "type": "message",
      "role": "user",
      "content": [
        {
          "type": "input_text",
          "text": "Please describe this image."
        },
        {
          "type": "input_image",
          "image_url": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ..."
        }
      ]
    }
  ]
}

Réponse

Response
{
  "id": "resp_abc123",
  "object": "response",
  "created_at": 1706000000,
  "status": "completed",
  "model": "gpt-5.6-terra",
  "output": [
    {
      "id": "msg_abc123",
      "type": "message",
      "status": "completed",
      "role": "assistant",
      "content": [
        {"type": "output_text", "text": "Hello! How can I help you today?", "annotations": []}
      ]
    }
  ],
  "usage": {
    "input_tokens": 10,
    "output_tokens": 12,
    "total_tokens": 22
  }
}

Autorisation

BearerAuth
AuthorizationBearer <token>

Authentification par clé API. Créez ou gérez vos clés API dans Dashboard > API > API Keys.

Emplacement: header

En-têtes

X-TokenLab-Delivery-Policy?string

Politique de livraison par requête. Remplace les valeurs par défaut de la clé API et de l'espace de travail. Tente automatiquement TokenLab Verified en premier et peut basculer une fois vers Official uniquement avant la sortie, l'acceptation de la requête ou la création de ressource persistante.

Valeurs possibles

  • "auto"
  • "verified"
  • "official"

Corps de la requête

application/json

Réponse

application/json

application/json

application/json