Passer au contenu principal

Documentation Index

Fetch the complete documentation index at: https://docs.tokenlab.sh/llms.txt

Use this file to discover all available pages before exploring further.

Vue d’ensemble

TokenLab fonctionne avec les SDK officiels OpenAI en pointant le client vers https://api.tokenlab.sh/v1. Pour la plupart des nouveaux projets, privilégiez Chat Completions comme chemin compatible OpenAI par défaut. N’utilisez Responses API que lorsque vous avez explicitement besoin d’un comportement spécifique à Responses. Les champs spécifiques à Responses ne sont pas garantis de se comporter de manière identique selon chaque modèle et chemin routé.
Python, JavaScript et Go disposent de SDK OpenAI officiels. PHP fonctionne bien avec des clients communautaires compatibles OpenAI, mais ce n’est pas un SDK OpenAI officiel.
Type : SDK natifChemin principal : compatible OpenAI / Chat CompletionsConfiance de support : Chemin central pris en charge

Installation

pip install openai
N’utilisez POST /v1/responses que lorsque vous avez explicitement besoin du comportement spécifique à Responses. Certains champs réservés à Responses peuvent encore dépendre du modèle sélectionné et du chemin routé.

Configurer le Client

from openai import OpenAI

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

Recommandé : 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)

Avancé : Responses API

N’utilisez ce chemin que lorsque votre outil ou votre flux de travail dépend explicitement de la sémantique de OpenAI Responses.

Streaming avec 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="")

Outils / Appel de fonctions

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 avec 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 est le chemin compatible OpenAI par défaut pour 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)

Dépannage

  • Vérifiez que l’URL de base est exactement https://api.tokenlab.sh/v1
  • Recherchez une interférence de proxy ou des remplacements personnalisés du client HTTP
  • Assurez-vous que votre version du SDK est à jour avant de déboguer le comportement du fournisseur
  • Vérifiez que votre clé API commence par sk-
  • Vérifiez que la clé est active dans le tableau de bord TokenLab
  • Confirmez que le SDK envoie Authorization: Bearer ...
  • responses.create(...) envoie des requêtes vers /v1/responses
  • chat.completions.create(...) envoie des requêtes vers /v1/chat/completions
  • Utilisez Chat Completions par défaut sauf si vous avez explicitement besoin d’un comportement spécifique à Responses