เอกสารอ้างอิง API
Sanki API รองรับทั้งรูปแบบโปรโตคอล OpenAI และ Anthropic เลือกวิธีการผสานรวมที่เหมาะกับความต้องการของคุณ
เริ่มต้นอย่างรวดเร็ว
เริ่มต้นกับ Sanki API ในเพียงสามขั้นตอน:
URL ฐาน
Sanki มีวิธีการเข้าถึงโปรโตคอลสองแบบ เลือก URL ฐานและวิธีการตรวจสอบสิทธิ์ที่ตรงกับไคลเอนต์ของคุณ:
https://api.sanki.ink/v1SDK ที่เหมาะสม: openai (Python/Node/Go)
วิธีการตรวจสอบสิทธิ์: Authorization: Bearer <key>
จุดปลายทางหลัก: /v1/chat/completions
https://api.sanki.ink/v1SDK ที่เหมาะสม: @anthropic-ai/sdk / Claude Code
วิธีการตรวจสอบสิทธิ์: x-api-key: <key>
จุดปลายทางหลัก: /v1/messages
ตารางอ้างอิง URL ฐานตามไคลเอนต์
ไคลเอนต์แต่ละตัวจัดการ base_url แตกต่างกัน: บางตัวใช้เป็นคำนำหน้าแบบสมบูรณ์ ในขณะที่บางตัวเติม /v1 โดยอัตโนมัติ การใช้การตั้งค่าที่ไม่ถูกต้องอาจทำให้เกิดข้อผิดพลาดคำนำหน้าซ้ำ เช่น /v1/v1/messages
| ไคลเอนต์ | URL ฐานที่ต้องใช้ | หมายเหตุ |
|---|---|---|
| OpenAI Python/Node SDK | https://api.sanki.ink/v1 | SDK ถือว่า base_url เป็นคำนำหน้าแบบสมบูรณ์ ต้องมี /v1 |
| Anthropic Python/Node SDK | https://api.sanki.ink/v1 | เช่นเดียวกับข้างต้น ต้องมี /v1 |
| Claude Code (ANTHROPIC_BASE_URL) | https://api.sanki.ink/v1 | ไม่มี /v1; Claude Code เติม /v1/messages โดยอัตโนมัติ |
| Hermes Agent (custom_providers) | https://api.sanki.ink | ไม่มี /v1; Hermes เติม /v1/messages โดยอัตโนมัติ |
| curl | https://api.sanki.ink/v1/chat/completions | URL เต็มรวม /v1 และจุดปลายทางเฉพาะ |
ลองใช้ในหนึ่งนาที
curl -X POST "https://api.sanki.ink/v1/chat/completions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MiniMax-M3",
"messages": [
{"role": "user", "content": "Hello, Sanki!"}
]
}'curl -X POST "https://api.sanki.ink/v1/messages" \
-H "x-api-key: YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-pro",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello, Sanki!"}
]
}'การตรวจสอบสิทธิ์
ใช้ส่วนหัวการตรวจสอบสิทธิ์ที่แตกต่างกันขึ้นอยู่กับโปรโตคอล สร้างและจัดการ API Key ของคุณในหน้า API Keys
ข้อกำหนดรูปแบบ API Key
ปัจจุบันแพลตฟอร์มใช้ API Key ที่มีคำนำหน้า sk- ความยาว 64 ตัวอักษร (คำนำหน้า sk- + สตริงสุ่ม base62 61 ตัวอักษร):
sk-yt1zAiMnFWCH3OwAfwXZEMGRnIgLq1mxkxxUSlDaHgq3jOGTlSJUc6TPUuMzo
└sk─── 61 char base62 (A-Z a-z 0-9) ───────────────────────┘⚠ ประกาศด้านความปลอดภัย: คีย์แบบเต็มจะแสดงเพียงครั้งเดียวเมื่อสร้างและไม่สามารถดูอีกครั้งได้หลังจากปิดแผงควบคุม กรุณาคัดลอกหรือดาวน์โหลดไฟล์สำรอง .txt ทันที รายการแสดงเฉพาะคำนำหน้า 12 ตัวอักษรแรก (เช่น sk-yt1zAiMnF) เพื่อการระบุตัวตน ไม่ใช่เพื่อการตรวจสอบสิทธิ์
⛔ คีย์เก่าเลิกใช้งานแล้ว: คีย์รูปแบบเก่า sk-sanki-* (35 ตัวอักษร) ทั้งหมดถูกเพิกถอนแล้ว กรุณาสร้างคีย์ใหม่ที่มีคำนำหน้า sk-
การตรวจสอบสิทธิ์โปรโตคอล OpenAI
Authorization: Bearer YOUR_API_KEYใช้กับ /v1/chat/completions, /v1/models และจุดปลายทางที่เข้ากันได้กับ OpenAI อื่นๆ
การตรวจสอบสิทธิ์โปรโตคอล Anthropic
x-api-key: YOUR_API_KEY
anthropic-version: 2023-06-01Chat Completions (OpenAI)
จุดปลายทาง Chat Completions ที่เข้ากันได้กับ OpenAI มาตรฐาน เมื่อกำหนดรายการข้อความการสนทนา โมเดลจะส่งคืนการตอบกลับ
/v1/chat/completionsพารามิเตอร์คำขอ
| พารามิเตอร์ | ประเภท | จำเป็น | คำอธิบาย |
|---|---|---|---|
| model | string | ใช่ | ID โมเดล เช่น gpt-4o, claude-sonnet-4-6, gemini-2.5-pro |
| messages | array | ใช่ | รายการข้อความ แต่ละรายการประกอบด้วย role (system/user/assistant/tool) และ content |
| temperature | number | ไม่ใช่ | อุณหภูมิการสุ่ม 0-2 ค่าเริ่มต้น 1 ค่าที่สูงขึ้นให้ผลลัพธ์ที่สุ่มมากขึ้น |
| top_p | number | ไม่ใช่ | พารามิเตอร์การสุ่มนิวเคลียส 0-1 ค่าเริ่มต้น 1 |
| max_tokens | integer | ไม่ใช่ | จำนวนโทเค็นสูงสุดที่จะสร้าง |
| stream | boolean | ไม่ใช่ | เปิดใช้งานการตอบกลับแบบสตรีมมิ่ง SSE ค่าเริ่มต้น false |
| tools | array | ไม่ใช่ | รายการคำจำกัดความเครื่องมือการเรียกฟังก์ชัน |
ตัวอย่างคำขอ
curl -X POST "https://api.sanki.ink/v1/chat/completions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MiniMax-M3",
"messages": [
{"role": "system", "content": "你是专业的 AI 助手"},
{"role": "user", "content": "解释量子计算"}
],
"temperature": 0.7,
"max_tokens": 1024
}'from openai import OpenAI
client = OpenAI(
base_url="https://api.sanki.ink/v1",
api_key="YOUR_API_KEY"
)
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "user", "content": "Hello!"}
]
)
print(response.choices[0].message.content)รูปแบบการตอบกลับ
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1700000000,
"model": "MiniMax-M3",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello! How can I help you today?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 10,
"completion_tokens": 9,
"total_tokens": 19
}
}Messages (Anthropic)
จุดปลายทางที่เข้ากันได้กับ Anthropic Messages API รองรับการผสานรวมโดยตรงกับเครื่องมือเช่น Claude Code ผ่าน /v1/messages
/v1/messagesพารามิเตอร์คำขอ
| พารามิเตอร์ | ประเภท | จำเป็น | คำอธิบาย |
|---|---|---|---|
| model | string | ใช่ | ID โมเดล เช่น gpt-4o, claude-sonnet-4-6, gemini-2.5-pro |
| messages | array | ใช่ | รายการข้อความ แต่ละรายการประกอบด้วย role (user/assistant) และ content |
| max_tokens | integer | ใช่ | จำนวนโทเค็นสูงสุดที่จะสร้าง |
| system | string | array | ไม่ใช่ | พรอมต์ระบบ เป็นสตริงหรืออาร์เรย์ของบล็อกเนื้อหา |
| temperature | number | ไม่ใช่ | อุณหภูมิการสุ่ม 0-1 ค่าเริ่มต้น 1 |
| top_p | number | ไม่ใช่ | พารามิเตอร์การสุ่มนิวเคลียส 0-1 ค่าเริ่มต้น 1 |
| tools | array | ไม่ใช่ | รายการคำจำกัดความเครื่องมือการเรียกฟังก์ชัน |
ตัวอย่างคำขอ
curl -X POST "https://api.sanki.ink/v1/messages" \
-H "x-api-key: YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-pro",
"max_tokens": 1024,
"system": "你是专业的 AI 助手",
"messages": [
{"role": "user", "content": "解释量子计算"}
]
}'from anthropic import Anthropic
client = Anthropic(
base_url="https://api.sanki.ink/v1",
api_key="YOUR_API_KEY"
)
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
system="你是专业的 AI 助手",
messages=[
{"role": "user", "content": "Hello!"}
]
)
print(response.content[0].text)รูปแบบการตอบกลับ
{
"id": "msg_abc123",
"type": "message",
"role": "assistant",
"model": "deepseek-v4-pro",
"content": [
{
"type": "text",
"text": "Hello! How can I help you today?"
}
],
"usage": {
"input_tokens": 10,
"output_tokens": 9
}
}Responses API
OpenAI Responses API 兼容端点,支持字符串和数组两种 input 格式。
/v1/responsesตัวอย่างคำขอ
curl -X POST "https://api.sanki.ink/v1/responses" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"input": "解释量子计算的基本原理",
"max_output_tokens": 1024
}'การสร้างรูปภาพ
支持 DALL·E、Wan 等图片生成模型,返回生成图片的 URL。
/v1/images/generationsตัวอย่างคำขอ
curl -X POST "https://api.sanki.ink/v1/images/generations" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedream-4-0-250828",
"prompt": "a cat sitting on a cloud",
"n": 1,
"size": "1024x1024"
}'รูปแบบการตอบกลับ
{
"created": 1720000000,
"data": [
{
"url": "https://...",
"revised_prompt": "A detailed illustration of..."
}
]
}การสร้างวิดีโอ
支持 Kling、Wan 等视频生成模型。视频生成是异步任务,提交后返回 task_id,通过查询接口获取结果。
/v1/videos/generationsตัวอย่างคำขอ
curl -X POST "https://api.sanki.ink/v1/videos/generations" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kling-v1",
"prompt": "a sunset over the ocean with waves",
"duration": 5,
"size": "1920x1080"
}'{
"task_id": "task_abc123",
"status": "processing",
"message": "Video generation started"
}/v1/videos/:task_id查询视频任务状态和结果。
curl "https://api.sanki.ink/v1/videos/task_abc123" \
-H "Authorization: Bearer YOUR_API_KEY"{
"task_id": "task_abc123",
"status": "completed",
"video_url": "https://...",
"duration": 5,
"size": "1920x1080"
}สตรีมมิ่ง (SSE)
ทั้งสองโปรโตคอลรองรับการสตรีม Server-Sent Events (SSE) เปิดใช้งานโดยการตั้งค่าพารามิเตอร์ที่เกี่ยวข้อง:
การสตรีม OpenAI
ตั้งค่า stream: true เพื่อรับเหตุการณ์ SSE ที่มีคำนำหน้า data:
curl -X POST "https://api.sanki.ink/v1/chat/completions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MiniMax-M3",
"messages": [{"role": "user", "content": "讲个故事"}],
"stream": true
}'data: {"choices":[{"delta":{"content":"前"}}]}
data: {"choices":[{"delta":{},"finish_reason":"stop"}]}
data: [DONE]
โมเดล
/v1/modelsแสดงรายการโมเดลที่มีอยู่ทั้งหมดและข้อมูล ต้องมีส่วนหัวการตรวจสอบสิทธิ์
curl "https://api.sanki.ink/v1/models" \
-H "Authorization: Bearer YOUR_API_KEY"รหัสข้อผิดพลาด
| พารามิเตอร์ | ประเภท | จำเป็น | คำอธิบาย |
|---|---|---|---|
| 400 | Bad Request | ไม่ใช่ | คำขอไม่ถูกต้อง — ขาดฟิลด์ที่จำเป็นหรือรูปแบบไม่ถูกต้อง |
| 401 | Unauthorized | ไม่ใช่ | ไม่ได้รับอนุญาต — API Key ไม่ถูกต้องหรือหมดอายุ |
| 402 | Payment Required | ไม่ใช่ | ต้องชำระเงิน — ยอดเงินไม่เพียงพอ กรุณาเติมเงินแล้วลองอีกครั้ง |
| 403 | Forbidden | ไม่ใช่ | ถูกปฏิเสธ — ไม่มีสิทธิ์เข้าถึงทรัพยากรนี้ |
| 404 | Not Found | ไม่ใช่ | ไม่พบ — ทรัพยากรไม่มีอยู่ |
| 429 | Too Many Requests | ไม่ใช่ | คำขอมากเกินไป — เกินขีดจำกัดอัตรา กรุณาลองอีกครั้งภายหลัง |
| 500 | Internal Server Error | ไม่ใช่ | ข้อผิดพลาดเซิร์ฟเวอร์ภายใน — กรุณาลองอีกครั้งภายหลังหรือติดต่อฝ่ายสนับสนุน |
| 503 | Service Unavailable | ไม่ใช่ | บริการไม่พร้อมใช้งาน — โมเดลต้นทางอาจทำงานหนักเกินไป |
ตัวอย่างการตอบกลับข้อผิดพลาด
{
"error": {
"type": "insufficient_quota",
"message": "余额不足,当前余额 ¥0.50,本次调用需要 ¥0.15",
"code": 402
}
}ขีดจำกัดอัตรา
เพื่อรับประกันความเสถียรของแพลตฟอร์ม Sanki API บังคับใช้ขีดจำกัดอัตรา รหัสสถานะ 429 จะถูกส่งกลับเมื่อเกินขีดจำกัด
RPM = คำขอต่อนาที TPM = โทเค็นต่อนาที อัปเกรดแผนของคุณเพื่อขีดจำกัดที่สูงขึ้น
SDK
Sanki API เข้ากันได้อย่างสมบูรณ์กับ SDK อย่างเป็นทางการของ OpenAI / Anthropic เพียงเปลี่ยน base_url เพื่อเริ่มต้น
Python (OpenAI SDK)
pip install openaifrom openai import OpenAI
client = OpenAI(
base_url="https://api.sanki.ink/v1",
api_key="YOUR_API_KEY"
)
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)Node.js (OpenAI SDK)
npm install openaiimport OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'https://api.sanki.ink/v1',
apiKey: 'YOUR_API_KEY',
});
const response = await client.chat.completions.create({
model: 'gpt-4o',
messages: [{ role: 'user', content: 'Hello!' }],
});
console.log(response.choices[0].message.content);Python (Anthropic SDK)
pip install anthropicfrom anthropic import Anthropic
client = Anthropic(
base_url="https://api.sanki.ink/v1",
api_key="YOUR_API_KEY"
)
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello!"}]
)
print(response.content[0].text)การกำหนดค่า Claude Code
ในการใช้ Sanki กับ Claude Code ให้ตั้งค่าตัวแปรสภาพแวดล้อมให้ชี้ไปที่ Sanki API:
export ANTHROPIC_BASE_URL="https://api.sanki.ink/v1"
export ANTHROPIC_API_KEY="YOUR_SANKI_API_KEY"บันทึกการเปลี่ยนแปลง
- 新增图片生成 API (/v1/images/generations)
- 新增视频生成 API (/v1/videos/generations)
- 新增 Responses API (/v1/responses)
- 新增计量规则体系(8 维 token + 图片/视频)
- 销售价设置:支持按维度独立加价
- 计量计价全链路优化
- 生产环境深度优化
- 断路器机制完善
- 协议框架零转换原则落地
- 新增 Gemini 协议入口
- อัปเกรด API Key เป็น 64 ตัวอักษร (sk- + base62 61 ตัวอักษร)
- แก้ไขปัญหาการต่อ /v1 ซ้ำใน base_url เพิ่มตารางอ้างอิงไคลเอนต์
- แผง API Key ในศูนย์ผู้ใช้: สลับแสดง/ซ่อน คัดลอกหลายครั้ง ดาวน์โหลดไฟล์สำรอง .txt
- คีย์รูปแบบเก่า sk-sanki-* 35 ตัวอักษรถูกเพิกถอนทั้งหมด
- เพิ่มจุดปลายทางขาเข้า Anthropic Messages API /v1/messages
- รองรับการผสานรวม Claude Code โดยตรง
- อัปเดตเอกสาร API หลายโปรโตคอล
- เปิดตัว API เกตเวย์แบบรวมศูนย์ใหม่
- รองรับโปรโตคอลที่เข้ากันได้กับ OpenAI
- เพิ่มลานโมเดลและการจัดอันดับ
- ปรับปรุงการรองรับ i18n สามภาษา
- เปิดตัวแพลตฟอร์มอย่างเป็นทางการ
- จุดปลายทาง Chat Completions พื้นฐาน
- การจัดการ API Key และสถิติการใช้งาน
ยังมีคำถาม? เยี่ยมชมคอนโซลเพื่อรับ API Key ของคุณ หรือสำรวจลานโมเดลเพื่อดูโมเดลที่มีให้บริการ
