Hướng dẫn cốt lõi
Định dạng API
Chọn Chat Completions, Responses, Messages hoặc Gemini
Một khóa TokenLab dùng được với bốn định dạng API. Giữ định dạng ứng dụng đang dùng và kiểm tra tokenlab.accepted_request_formats trên trang mô hình hoặc qua GET /v1/models/{model}. Không phải mô hình nào cũng hỗ trợ cả bốn định dạng.
Chat Completions
POST /v1/chat/completions · openai_chat_completions
Phù hợp với ứng dụng chat tương thích OpenAI, lịch sử tin nhắn, streaming và gọi hàm được mô hình hỗ trợ. Các trường riêng của định dạng khác không được bảo đảm hỗ trợ.
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["TOKENLAB_API_KEY"],
base_url="https://api.tokenlab.sh/v1",
)
response = client.chat.completions.create(
model="gpt-5.6-luna",
messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)Responses
POST /v1/responses · openai_responses
Dùng khi accepted_request_formats chứa openai_responses. Định dạng này hỗ trợ tạo, lấy, rút gọn, xóa, streaming, tạo và tiếp tục qua WebSocket, cùng phản hồi nền trên mô hình phù hợp. Xóa phản hồi đã lưu không hủy phản hồi đang chạy.
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["TOKENLAB_API_KEY"],
base_url="https://api.tokenlab.sh/v1",
)
response = client.responses.create(
model="gpt-5.6-terra",
input="Explain why the sky is blue in two sentences.",
)
print(response.output_text)Anthropic Messages
POST /v1/messages · anthropic_messages
Trong SDK Anthropic, đặt base URL là máy chủ TokenLab, không thêm /v1. Giữ lệnh gọi công cụ Claude, khối thinking và trường bộ nhớ đệm prompt trong định dạng Messages.
import os
from anthropic import Anthropic
client = Anthropic(
api_key=os.environ["TOKENLAB_API_KEY"],
base_url="https://api.tokenlab.sh",
)
message = client.messages.create(
model="claude-sonnet-5",
max_tokens=512,
messages=[{"role": "user", "content": "Hello!"}],
)
print(message.content[0].text)Gemini
POST /v1beta/models/:model:generateContent · gemini_generate_content
Phù hợp với ứng dụng dùng contents, parts, tệp, bộ nhớ đệm hoặc công cụ Gemini. Chấp nhận tên ProtoJSON lowerCamelCase và tên snake_case gốc; không gửi cả hai cách viết của cùng một trường trong một yêu cầu.
curl "https://api.tokenlab.sh/v1beta/models/gemini-3.5-flash:generateContent" \
-H "Authorization: Bearer $TOKENLAB_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{"parts": [{"text": "Hello!"}]}]
}'Giữ nguyên định dạng hội thoại
Mỗi định dạng biểu diễn trạng thái hội thoại và kết quả công cụ khác nhau. Dùng một định dạng cho cả hội thoại; chuyển đổi và xác thực lịch sử trong ứng dụng trước khi di chuyển.
Trường không xác định
Việc chuyển tiếp một trường không bảo đảm mô hình hỗ trợ trường đó. Chỉ dựa vào tính năng được công bố cho mô hình đã chọn và xử lý lỗi trường không được hỗ trợ.