所有 API 请求需要在 Header 中携带 API Key 进行认证:
Authorization: Bearer fud_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
您可以在 设置 → API Key 管理 中创建和管理您的 API Key。每个用户只能创建一个 Key。
POST /api/v1/chat/completions
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| character_id | integer | * | 角色 ID(显示 ID,如 10123,对应界面上的角色编号) |
| line_id | integer | * | 故事线编号(从 1 开始,对应界面上的 #1, #2...) |
| messages | array | * | 消息历史,格式同 OpenAI |
| model | string | - | 模型名称,默认 gemini-2.5-pro |
| stream | boolean | - | 是否流式输出,默认 false |
| user_name | string | - | 用户名称,用于 变量替换 |
| max_tokens | integer | - | 最大输出 token 数,默认 4096 |
{
"character_id": 10123,
"line_id": 1,
"messages": [
{"role": "user", "content": "你好,今天过得怎么样?"}
],
"model": "gemini-2.5-pro",
"stream": false,
"user_name": "小明",
"max_tokens": 2048
}
{
"success": true,
"message": {
"role": "assistant",
"content": "你好呀!今天心情不错~"
},
"usage": {
"prompt_tokens": 150,
"completion_tokens": 30,
"total_tokens": 180,
"cost": 50
}
}
当 stream: true 时,响应为 SSE (Server-Sent Events) 格式:
data: {"choices": [{"delta": {"content": "你好"}}]}
data: {"choices": [{"delta": {"content": "呀!"}}]}
data: {"choices": [{"delta": {"content": "今天"}}]}
...
data: [DONE]
GET /api/v1/user/info
{
"success": true,
"user": {
"id": 1,
"username": "example_user",
"points": 10000,
"balance_paid": 5000,
"balance_free": 5000,
"user_group": "default"
}
}
| HTTP 状态码 | 说明 |
|---|---|
| 401 | API Key 缺失或无效 |
| 402 | 点数不足 |
| 403 | 用户被封禁 / 角色不可访问 / 模型无权限 |
| 404 | 角色或故事线不存在 |
| 500 | 服务器内部错误 / AI 调用失败 |
import requests
API_KEY = "fud_your_api_key_here"
BASE_URL = "https://your-domain.com"
response = requests.post(
f"{BASE_URL}/api/v1/chat/completions",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"character_id": 10123, # 角色显示 ID
"line_id": 1, # 故事线编号 #1
"messages": [
{"role": "user", "content": "你好!"}
],
"model": "gemini-2.5-pro"
}
)
data = response.json()
print(data["message"]["content"])
const API_KEY = "fud_your_api_key_here";
const response = await fetch("/api/v1/chat/completions", {
method: "POST",
headers: {
"Authorization": `Bearer ${API_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
character_id: 10123, // 角色显示 ID
line_id: 1, // 故事线编号 #1
messages: [
{ role: "user", content: "你好!" }
],
model: "gemini-2.5-pro"
})
});
const data = await response.json();
console.log(data.message.content);
curl -X POST "https://your-domain.com/api/v1/chat/completions" \
-H "Authorization: Bearer fud_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"character_id": 10123,
"line_id": 1,
"messages": [{"role": "user", "content": "你好!"}],
"model": "gemini-2.5-pro"
}'