Tham khảo
Ví dụ gọi API
API giống định dạng chính thức của OpenAI và Anthropic. Mã hiện có chỉ cần thay base_url và key, không phải sửa logic khác.
Một key dùng được cho mọi mô hình. Key chỉ được lưu trong trình duyệt của bạn, không tải lên bất kỳ máy chủ nào.
Endpoint
| Phương thức | Đường dẫn | Mô tả |
|---|---|---|
| POST | /v1/messages | Anthropic Messages (định dạng gốc của Claude) |
| POST | /v1/chat/completions | OpenAI Chat Completions |
| POST | /v1/responses | OpenAI Responses (Codex sử dụng) |
| GET | /v1/models | Danh sách mô hình khả dụng với key hiện tại |
Xác thực: định dạng OpenAI dùng Authorization: Bearer sk-...; định dạng Anthropic dùng x-api-key: sk-..., cả hai header đều được nhận diện.
Định dạng OpenAI
Terminal
pip install openaimain.py
from openai import OpenAI
client = OpenAI(
base_url="https://api.tokilabs.xyz/v1",
api_key="sk-khoa-cua-ban",
)
resp = client.chat.completions.create(
model="gpt-6.1-sol",
messages=[{"role": "user", "content": "Giới thiệu bản thân bạn trong một câu"}],
)
print(resp.choices[0].message.content)Terminal
npm install openaiindex.mjs
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.tokilabs.xyz/v1",
apiKey: "sk-khoa-cua-ban",
});
const resp = await client.chat.completions.create({
model: "gpt-6.1-sol",
messages: [{ role: "user", content: "Giới thiệu bản thân bạn trong một câu" }],
});
console.log(resp.choices[0].message.content);Terminal (macOS / Linux / Git Bash)
curl https://api.tokilabs.xyz/v1/chat/completions \
-H "Authorization: Bearer sk-khoa-cua-ban" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6.1-sol",
"stream": true,
"messages": [{"role": "user", "content": "Giới thiệu bản thân bạn trong một câu"}]
}'Định dạng Anthropic
base_url của Anthropic SDK không có
/v1.Terminal
pip install anthropicmain.py
import anthropic
client = anthropic.Anthropic(
base_url="https://api.tokilabs.xyz",
api_key="sk-khoa-cua-ban",
)
msg = client.messages.create(
model="claude-sonnet-5-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Giới thiệu bản thân bạn trong một câu"}],
)
print(msg.content[0].text)Terminal
npm install @anthropic-ai/sdkindex.mjs
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
baseURL: "https://api.tokilabs.xyz",
apiKey: "sk-khoa-cua-ban",
});
const msg = await client.messages.create({
model: "claude-sonnet-5-5",
max_tokens: 1024,
messages: [{ role: "user", content: "Giới thiệu bản thân bạn trong một câu" }],
});
console.log(msg.content[0].text);Terminal (macOS / Linux / Git Bash)
curl https://api.tokilabs.xyz/v1/messages \
-H "x-api-key: sk-khoa-cua-ban" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5-5",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Giới thiệu bản thân bạn trong một câu"}]
}'Đọc từ biến môi trường
Cả hai SDK chính thức đều tự đọc biến môi trường. Sau khi đặt OPENAI_BASE_URL (giá trị là https://api.tokilabs.xyz/v1) và OPENAI_API_KEY, trong mã không cần ghi địa chỉ và key:
Python
from openai import OpenAI
client = OpenAI() # Tự động dùng OPENAI_BASE_URL và OPENAI_API_KEYBiến key mà Anthropic SDK đọc là
ANTHROPIC_API_KEY, còn Claude Code dùng ANTHROPIC_AUTH_TOKEN. Khi dùng Anthropic SDK trong mã, hãy đặt thêm ANTHROPIC_API_KEY.