项目简介

NewAPI 是一款多 AI 渠道聚合转发管理系统,兼容 OpenAI 标准接口格式,支持中转 OpenAI、Claude、通义千问、文心一言、Gemini 等大模型,提供密钥管理、额度管控、渠道负载、流式响应、用户分账等能力。

基础地址: http://127.0.0.1:3000

接口鉴权方式

所有接口必须携带 Authorization 请求头鉴权,格式兼容 OpenAI。

复制
Authorization: Bearer sk-xxxxxxxxxxxxxxxxxxxx

• 用户密钥:sk- 开头,仅可调用对话类接口

• 管理员密钥:可访问全部管理接口

统一错误返回格式

复制
{
  "error": {
    "code": 10001,
    "message": "密钥不存在或已禁用",
    "type": "invalid_api_key"
  }
}
错误码 说明
10001密钥无效
10002额度不足
10003模型不存在
10004渠道请求失败
40300无管理员权限

用户登录

POST /api/user/login

请求体

复制
{
  "username": "admin",
  "password": "123456"
}

成功返回

复制
{
  "code": 200,
  "data": {
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
    "user_id": 1,
    "role": "admin"
  }
}

获取个人信息

GET /api/user/info

请求头携带登录token鉴权

复制
{
  "code": 200,
  "data": {
    "id": 1,
    "username": "admin",
    "quota": 999999,
    "used_quota": 1200,
    "role": "admin",
    "create_time": "2026-01-01 12:00:00"
  }
}

创建调用密钥

POST /api/key/create
复制
// 请求体
{
  "name": "客户端密钥",
  "quota": 100000,
  "models": ["gpt-3.5-turbo", "gpt-4"]
}

// 返回
{
  "code": 200,
  "data": {
    "key": "sk-xxxxxxxxxxxxxxxxxxxx",
    "id": 10
  }
}

密钥列表

GET /api/key/list
复制
{
  "code": 200,
  "data": [
    {
      "id": 10,
      "name": "客户端密钥",
      "key": "sk-xxx",
      "quota": 100000,
      "used": 0,
      "status": 1
    }
  ]
}

流式对话接口

POST /v1/chat/completions

完全兼容 OpenAI 请求格式,支持 stream 流式输出

请求示例

复制
curl http://127.0.0.1:3000/v1/chat/completions \
-H "Authorization: Bearer sk-xxxx" \
-H "Content-Type: application/json" \
-d '{
  "model": "gpt-3.5-turbo",
  "stream": true,
  "messages": [
    {"role": "user", "content": "你好"}
  ]
}'

流式返回片段

复制
data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","choices":[{"delta":{"content":"你"},"index":0}]}\n\ndata: [DONE]

获取可用模型列表

GET /v1/models
复制
{
  "object": "list",
  "data": [
    {"id": "gpt-3.5-turbo", "object": "model"},
    {"id": "gpt-4", "object": "model"},
    {"id": "claude-3-haiku", "object": "model"}
  ]
}

Token 统计

POST /api/token/count
复制
// 请求
{"messages": [{"role":"user","content":"测试文本"}]}

// 返回
{"code":200,"data":{"tokens":8}}

管理员:用户列表

GET /api/admin/users

仅管理员Token可访问

复制
{
  "code": 200,
  "data": {
    "list": [
      {"id":1,"username":"admin","quota":999999,"role":"admin"}
    ],
    "total":1
  }
}

管理员:新增渠道

POST /api/admin/channel/add
复制
{
  "name": "OpenAI官方",
  "type": "openai",
  "api_key": "sk-origin-xxx",
  "base_url": "https://api.openai.com/v1",
  "models": ["gpt-3.5-turbo","gpt-4"]
}

管理员:系统统计

GET /api/admin/stat
复制
{
  "code": 200,
  "data": {
    "user_count": 5,
    "channel_count": 3,
    "today_request": 1280,
    "today_token": 256000
  }
}