Langsung ke konten utama

Ringkasan

TokenLab bekerja dengan SDK resmi OpenAI dengan mengarahkan klien ke https://api.tokenlab.sh/v1. Untuk sebagian besar proyek baru, lebih baik menggunakan Chat Completions sebagai jalur default yang kompatibel dengan OpenAI. Gunakan Responses API hanya ketika Anda secara eksplisit membutuhkan perilaku khusus Responses. Field khusus Responses tidak dijamin berperilaku identik di setiap model dan jalur yang dirutekan.
Python, JavaScript, dan Go memiliki SDK resmi OpenAI. PHP bekerja dengan baik dengan klien komunitas yang kompatibel dengan OpenAI, namun itu bukan SDK resmi OpenAI.
Tipe: Native SDKJalur Utama: kompatibel OpenAI / Chat CompletionsTingkat Dukungan: Jalur inti didukung

Instalasi

pip install openai
npm install openai
go get github.com/openai/openai-go/v3
Gunakan POST /v1/responses hanya ketika Anda secara eksplisit membutuhkan perilaku khusus Responses. Beberapa field yang hanya untuk Responses masih dapat bergantung pada model yang dipilih dan jalur yang dirutekan.

Konfigurasikan Klien

from openai import OpenAI

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

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

import (
    openai "github.com/openai/openai-go/v3"
    "github.com/openai/openai-go/v3/option"
)

func main() {
    client := openai.NewClient(
        option.WithAPIKey("sk-your-tokenlab-key"),
        option.WithBaseURL("https://api.tokenlab.sh/v1"),
    )

    _ = client
}

Rekomendasi: Chat Completions

response = client.chat.completions.create(
    model="gpt-5.4",
    messages=[{"role": "user", "content": "Explain what TokenLab does in one sentence."}]
)

print(response.choices[0].message.content)
const response = await client.chat.completions.create({
  model: 'gpt-5.4',
  messages: [{ role: 'user', content: 'Explain what TokenLab does in one sentence.' }],
});

console.log(response.choices[0].message.content);
curl https://api.tokenlab.sh/v1/chat/completions \
  -H "Authorization: Bearer sk-your-tokenlab-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.4",
    "messages": [
      {"role": "user", "content": "Explain what TokenLab does in one sentence."}
    ]
  }'

Lanjutan: Responses API

Gunakan jalur ini hanya ketika alat atau alur kerja Anda secara eksplisit bergantung pada semantik OpenAI Responses.

Streaming dengan Responses

stream = client.responses.create(
    model="gpt-5.4",
    input="Write a short poem about coding.",
    stream=True,
)

for event in stream:
    if event.type == "response.output_text.delta":
        print(event.delta, end="")
const stream = await client.responses.create({
  model: 'gpt-5.4',
  input: 'Write a short poem about coding.',
  stream: true,
});

for await (const event of stream) {
  if (event.type === 'response.output_text.delta') {
    process.stdout.write(event.delta);
  }
}

Alat / Pemanggilan fungsi

response = client.responses.create(
    model="gpt-5.4",
    input="What's the weather in Tokyo?",
    tools=[{
        "type": "function",
        "name": "get_weather",
        "description": "Get weather for a location",
        "parameters": {
            "type": "object",
            "properties": {
                "location": {"type": "string"}
            },
            "required": ["location"]
        }
    }]
)

for item in response.output:
    if item.type == "function_call":
        print(item.name)
        print(item.arguments)

Vision dengan Responses

response = client.responses.create(
    model="gpt-4o",
    input=[{
        "role": "user",
        "content": [
            {"type": "input_text", "text": "What's in this image?"},
            {"type": "input_image", "image_url": "https://example.com/image.jpg"}
        ]
    }]
)

print(response.output_text)

Embeddings

response = client.embeddings.create(
    model="text-embedding-3-small",
    input="Hello world"
)

print(response.data[0].embedding[:5])

Chat Completions

Chat Completions adalah jalur default yang kompatibel dengan OpenAI untuk TokenLab:
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Hello!"}
    ]
)

print(response.choices[0].message.content)

Pemecahan Masalah

  • Pastikan base URL persis https://api.tokenlab.sh/v1
  • Periksa gangguan proxy atau penggantian klien HTTP kustom
  • Pastikan versi SDK Anda terbaru sebelum men-debug perilaku provider
  • Periksa bahwa API key Anda diawali dengan sk-
  • Verifikasi bahwa kunci aktif di dashboard TokenLab
  • Konfirmasi SDK mengirim Authorization: Bearer ...
  • responses.create(...) mengirim permintaan ke /v1/responses
  • chat.completions.create(...) mengirim permintaan ke /v1/chat/completions
  • Gunakan Chat Completions secara default kecuali Anda secara eksplisit membutuhkan perilaku khusus Responses