Teks

Buat Respons

Membuat respons menggunakan format OpenAI Responses API

POST
/v1/responses

Gunakan endpoint ini jika accepted_request_formats pada detail model memuat openai_responses. Permintaan dan respons menggunakan format Responses API. Field opsional dan nilai yang didukung bergantung pada model yang dipilih.

Isi Permintaan

modelstringwajib

ID model yang akan digunakan. Lihat Models untuk opsi yang tersedia.

inputstring | array

Input bersifat opsional ketika request menggunakan prompt yang dapat dipakai ulang atau melanjutkan respons tersimpan dengan previous_response_id.

Daftar item input yang membentuk percakapan.

Setiap item dapat berupa:

  • message: Sebuah pesan percakapan dengan role dan content
  • function_call: Permintaan pemanggilan fungsi
  • function_call_output: Output dari pemanggilan fungsi

Untuk input multimodal, message.content dapat berupa string biasa atau array blok konten. Untuk model yang mendukung gambar seperti varian GPT-5.6 Terra, kirim gambar sebagai blok input_image alih-alih menyematkan URL atau string Base64 langsung ke dalam teks biasa.

Contoh blok konten:

  • { "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

Instruksi sistem untuk model (setara dengan pesan sistem).

max_output_tokensinteger

Jumlah maksimum token yang akan dihasilkan.

temperaturenumber

Suhu sampling. Nilai yang didukung dan nilai default bergantung pada model yang dipilih.

toolsarray

Alat yang dapat dipanggil model. Jenis dan kombinasi yang didukung bergantung pada model yang dipilih.

streambooleanbawaan: false

Jika true, mengembalikan aliran events.

previous_response_idstring

ID dari respons sebelumnya untuk melanjutkan percakapan.

storebooleanbawaan: true

Menentukan apakah respons disimpan untuk pengambilan nanti.

backgroundbooleanbawaan: false

Meminta eksekusi asinkron. Dukungan bergantung pada model yang dipilih.

promptobject

Referensi ke templat prompt yang dapat digunakan kembali beserta variabelnya.

metadataobject

Metadata yang dilampirkan pada respons untuk keperluan pelacakan.

textobject

Pengaturan keluaran teks. Dukungan text.format bergantung pada model yang dipilih.

parallel_tool_callsbooleanbawaan: true

Menentukan apakah memperbolehkan beberapa pemanggilan tool secara paralel.

top_pnumber

Parameter nucleus sampling (0-1).

reasoningobject

Opsi penalaran, termasuk effort, bergantung pada model yang dipilih.

Respons

idstring

Identifier unik untuk respons.

objectstring

Selalu response.

created_atinteger

Timestamp Unix saat respons dibuat.

statusstring

Status respons: queued, in_progress, completed, incomplete, failed, atau cancelled. Periksa field ini meskipun permintaan HTTP berhasil.

outputarray

Daftar item output yang dihasilkan oleh model.

usageobject

Statistik penggunaan token.

Endpoint terkait

  • GET /v1/responses/{id} mengambil respons tersimpan dan mendukung include, include_obfuscation, stream, dan starting_after.
  • DELETE /v1/responses/{id} menghapus respons tersimpan. Ini tidak membatalkan pembuatan respons.
  • POST /v1/responses/compact mengembalikan objek response.compaction.
  • Endpoint pembatalan, input-items, dan input-tokens saat ini belum tersedia.

Permintaan

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']);

Contoh Input Visual

Gunakan model yang mendukung gambar dengan menempatkan gambar di dalam message.content sebagai blok input_image. Nilai image_url dapat berupa URL publik atau data URL 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..."
        }
      ]
    }
  ]
}

Respons

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
  }
}

Otorisasi

BearerAuth
AuthorizationBearer <token>

Autentikasi API Key. Buat atau kelola API key di Dashboard > API > API Keys.

Lokasi: header

Header

X-TokenLab-Delivery-Policy?string

Kebijakan Pengiriman per-permintaan. Menggantikan default API key dan Workspace. Secara otomatis mencoba TokenLab Verified terlebih dahulu dan dapat beralih satu kali ke Official saja sebelum output, penerimaan permintaan, atau pembuatan sumber daya persisten.

Nilai yang tersedia

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

Body permintaan

application/json

Respons

application/json

application/json

application/json