Tham khảo API
API theo định dạng OpenAI tại https://ai.geraikita.com/v1 và định dạng Anthropic tại https://ai.geraikita.com. Mọi body request và phản hồi đều là JSON (UTF-8).
| Endpoint | Chức năng |
|---|---|
| POST /v1/chat/completions | Chat định dạng OpenAI (stream & non-stream) |
| POST /v1/messages | Messages định dạng Anthropic (stream & non-stream) |
| POST /v1/messages/count_tokens | Đếm token prompt định dạng Anthropic — miễn phí |
| GET /v1/models | Danh sách model có thể dùng |
| POST /v1/images/generations | Tạo ảnh từ prompt văn bản, tính phí theo ảnh — xem Tạo hình ảnh |
/v1/responses, /v1/embeddings) chưa được hỗ trợ.Chat completions (OpenAI)
https://ai.geraikita.com/v1/chat/completionsTạo câu trả lời từ danh sách tin nhắn. Header: Authorization: Bearer gk-… và Content-Type: application/json.
Body request
| Tham số | Kiểu | Mô tả |
|---|---|---|
model | string | Bắt buộc. Id model đúng như trong danh sách model, không có prefix. |
messages | array | Bắt buộc. Mảng tin nhắn theo thứ tự; mỗi tin nhắn gồm role và content. Tối thiểu một tin nhắn. |
stream | boolean | true để nhận câu trả lời từng phần qua Server-Sent Events. |
max_tokens | integer | Số token tối đa của câu trả lời. Nếu số dư không đủ cho giá trị yêu cầu, máy chủ có thể tự động giảm xuống. |
temperature, top_p, stop | — | Chuyển nguyên trạng tới model. Mức hỗ trợ và khoảng giá trị tùy theo model. |
tools, tool_choice | array / object | Gọi hàm (tool calling) định dạng OpenAI, chuyển tới các model có hỗ trợ. |
Ví dụ request
curl https://ai.geraikita.com/v1/chat/completions \
-H "Authorization: Bearer gk-xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5",
"messages": [{"role": "user", "content": "Xin chào!"}]
}'Ví dụ phản hồi
{
"id": "chatcmpl-…",
"object": "chat.completion",
"model": "claude-sonnet-5",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "…" },
"finish_reason": "stop"
}
],
"usage": { "prompt_tokens": 12, "completion_tokens": 9, "total_tokens": 21 }
}Đối tượng usage chứa số token làm cơ sở tính phí — xem Giá & thanh toán.
Messages (Anthropic)
https://ai.geraikita.com/v1/messagesEndpoint Anthropic gốc cho SDK Anthropic và Claude Code CLI. Base URL trong client = https://ai.geraikita.com (không có /v1).
Header
| Header | Giá trị | Mô tả |
|---|---|---|
| x-api-key | gk-… | API key gk- của bạn (Authorization: Bearer cũng được chấp nhận). |
| anthropic-version | 2023-06-01 | Phiên bản API Anthropic; SDK tự động gửi. |
| content-type | application/json | — |
Body request
| Tham số | Kiểu | Mô tả |
|---|---|---|
model | string | Bắt buộc. Id model đúng như trong danh sách model, không có prefix. |
messages | array | Bắt buộc. Mảng tin nhắn định dạng Anthropic, tối thiểu một tin nhắn. |
max_tokens | integer | Số token tối đa của câu trả lời (bắt buộc ở định dạng Anthropic). |
system | string / array | Chỉ dẫn hệ thống (tùy chọn). |
stream | boolean | true để nhận câu trả lời từng phần qua Server-Sent Events. |
Ví dụ request
curl https://ai.geraikita.com/v1/messages \
-H "x-api-key: gk-xxxxxxxx" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-5",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Xin chào!"}]
}'Cần đếm token trước khi gửi? POST https://ai.geraikita.com/v1/messages/count_tokens nhận cùng body và không tính phí.
Danh sách model
https://ai.geraikita.com/v1/modelsTrả về danh sách id model có thể gửi trong trường model. Khi gọi bằng key bị giới hạn bởi allowlist, chỉ các model được phép mới hiển thị. Với header x-api-key hoặc anthropic-version, phản hồi theo định dạng Anthropic.
curl https://ai.geraikita.com/v1/models \
-H "Authorization: Bearer gk-xxxxxxxx"Streaming (SSE)
Với "stream": true, câu trả lời được gửi dưới dạng text/event-stream. Máy chủ gửi header ngay, sau đó gửi dòng chú thích keepalive : ka mỗi 10 giây trong lúc chờ, để kết nối không bị coi là đã chết. Đặt timeout tổng của ứng dụng tối thiểu 300 giây.
data: {"choices":[{"index":0,"delta":{"content":"Ha"}}]}
: ka
data: {"choices":[{"index":0,"delta":{"content":"lo!"}}]}
data: [DONE]- Định dạng OpenAI: mỗi phần là một dòng
data:chứa JSON cóchoices[].delta, kết thúc bằngdata: [DONE]. - Định dạng Anthropic: các event
message_start,content_block_delta, …,message_stopgiống API Anthropic. - Bỏ qua các dòng bắt đầu bằng dấu hai chấm (
:) — đó là keepalive, không phải dữ liệu. Hướng dẫn cho từng công cụ có ở Cài đặt công cụ agentic.