Langsung ke konten utama
Keluaran terstruktur dan panggilan alat adalah kontrak spesifik rute. TokenLab meneruskan beberapa format API publik, jadi pola produksi yang paling aman adalah menjaga setiap bentuk alat asli penyedia pada rute yang memilikinya dan memvalidasi keluaran model di aplikasi Anda sendiri.

Pilih Rute

KebutuhanRuteGunakan bentuk ini
Respon objek JSON portabel/v1/chat/completionsresponse_format: {"type": "json_object"}
Panggilan fungsi yang kompatibel dengan OpenAI/v1/chat/completionstools: [{ "type": "function", "function": ... }]
Alat Respon OpenAI/v1/responsesBidang tools, tool_choice, dan text
Penggunaan alat atau pemikiran asli Claude/v1/messagesSkema alat Pesan Anthropic
Deklarasi fungsi Gemini atau alat bawaan/v1beta/models/:model:generateContenttools dan bagian konten asli Gemini
Jangan kirim alat bawaan asli penyedia melalui rute yang berbeda dan berharap TokenLab akan menerjemahkannya secara diam-diam.

Mode JSON

Untuk respon terstruktur yang portabel, mulai dengan mode JSON Chat Completions:
{
  "model": "gpt-5.4",
  "messages": [
    {
      "role": "user",
      "content": "Kembalikan objek JSON dengan kota dan cuaca."
    }
  ],
  "response_format": { "type": "json_object" }
}
Validasi bersama yang stabil untuk Chat Completions menerima text dan json_object. json_schema, strict, dan penegakan skema spesifik penyedia mungkin ada untuk beberapa rute hulu atau jalur konversi, tetapi mereka bukan janji umum di setiap rute dan model TokenLab. Verifikasi mereka terhadap model yang dipilih sebelum mengandalkannya. Selalu analisis dan validasi JSON yang dikembalikan di server Anda. Mode JSON meningkatkan bentuk, tetapi tidak menggantikan validasi skema tingkat aplikasi.

Loop Panggilan Alat

TokenLab tidak mengeksekusi fungsi Anda. Aplikasi Anda memiliki loop:
  1. Kirim pesan ditambah definisi alat.
  2. Baca respon model untuk tool_calls, function_call, tool_use Anthropic, atau bagian panggilan fungsi Gemini.
  3. Eksekusi alat di backend Anda sendiri.
  4. Tambahkan hasil alat dalam format yang diperlukan oleh rute yang sama.
  5. Lanjutkan percakapan sampai model mengembalikan jawaban akhir.
Pertahankan rute yang sama sepanjang loop alat. Mencampur Chat Completions, Responses, Messages, dan format Gemini dalam satu percakapan biasanya menciptakan bug status dan skema yang halus.

Contoh Chat Completions

curl https://api.tokenlab.sh/v1/chat/completions \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.4",
    "messages": [
      {
        "role": "user",
        "content": "Ekstrak nama dan email sebagai JSON. Jika perlu, cari pelanggan."
      }
    ],
    "response_format": { "type": "json_object" },
    "tools": [
      {
        "type": "function",
        "function": {
          "name": "lookup_customer",
          "description": "Cari pelanggan berdasarkan email",
          "parameters": {
            "type": "object",
            "properties": {
              "email": { "type": "string" }
            },
            "required": ["email"]
          }
        }
      }
    ]
  }'

Desain Skema

  • Pertahankan skema kecil dan eksplisit. Skema bersarang besar menambah token dan mengurangi keandalan.
  • Utamakan bidang yang diperlukan untuk nilai yang tidak dapat dilanjutkan produk Anda tanpa itu.
  • Gunakan enum untuk set tertutup yang bergantung pada UI atau backend Anda.
  • Sertakan contoh dalam prompt ketika model kesulitan dengan bentuk.
  • Perlakukan kesalahan bidang yang tidak didukung sebagai umpan balik kontrak. Hapus bidang tersebut atau gunakan rute asli yang mendokumentasikannya.

Daftar Periksa Produksi

  • Catat rute, model, nama alat, dan bentuk skema yang telah disanitasi dalam log.
  • Validasi argumen alat sebelum mengeksekusi efek samping apa pun.
  • Terapkan pemeriksaan izin Anda sendiri sebelum eksekusi alat.
  • Buat eksekusi alat idempotent ketika klien mencoba ulang dapat mengulangi panggilan alat yang sama.
  • Jangan catat rahasia yang dikembalikan oleh alat ke dalam pesan yang terlihat oleh model.

Referensi API

TopikReferensi
API Multi-FormatAPI Multi-Format
Buat Chat CompletionBuat Chat Completion
Buat ResponBuat Respon
Buat PesanBuat Pesan
Hasilkan Konten GeminiHasilkan Konten Gemini