Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 
 

25 KiB

New-API 数据库表结构文档

本文档记录了 New-API 项目中所有数据库表及其字段的详细说明。


目录

  1. users - 用户表
  2. tokens - 令牌表
  3. channels - 渠道表
  4. logs - 日志表
  5. options - 系统配置表
  6. redemptions - 兑换码表
  7. top_ups - 充值记录表
  8. tasks - 异步任务表
  9. midjourneys - Midjourney任务表
  10. abilities - 渠道能力表
  11. setups - 系统初始化表
  12. two_fas - 双因素认证表
  13. two_fa_backup_codes - 2FA备用码表
  14. checkins - 签到记录表
  15. passkey_credentials - Passkey凭证表
  16. quota_data - 额度数据统计表
  17. subscription_plans - 订阅计划表
  18. subscription_orders - 订阅订单表
  19. user_subscriptions - 用户订阅表
  20. subscription_pre_consume_records - 订阅预消费记录表
  21. custom_oauth_providers - 自定义OAuth提供商表
  22. user_oauth_bindings - 用户OAuth绑定表
  23. vendors - 供应商表
  24. models - 模型元数据表
  25. prefill_groups - 预填充组表
  26. channel_pricings - 渠道定价表
  27. pricing_tags - 定价标签表
  28. 表关系图

1. users - 用户表

存储系统用户信息。

字段名 类型 说明
id int 主键,自增ID
username string 用户名,唯一索引
password string 密码(哈希存储)
display_name string 显示名称
role int 角色:1=普通用户,10=管理员,100=超级管理员
status int 状态:1=启用
email string 邮箱
github_id string GitHub OAuth ID
discord_id string Discord OAuth ID
oidc_id string OIDC OAuth ID
wechat_id string 微信 OAuth ID
telegram_id string Telegram OAuth ID
access_token *string 系统管理访问令牌(32字符,唯一)
quota int 用户配额/额度
used_quota int 已使用的配额
request_count int 请求次数
group string 用户分组(默认 ‘default’)
aff_code string 邀请码(唯一)
aff_count int 邀请人数
aff_quota int 邀请剩余额度
aff_history_quota int 邀请历史总额度
inviter_id int 邀请人ID
linux_do_id string LinuxDO OAuth ID
setting string 用户设置(JSON格式)
remark string 备注
stripe_customer string Stripe客户ID
deleted_at gorm.DeletedAt 软删除时间

2. tokens - 令牌表

存储用户的 API 令牌。

字段名 类型 说明
id int 主键,自增ID
user_id int 用户ID(索引)
key string 令牌密钥(48字符,唯一)
status int 状态:1=启用
name string 令牌名称
created_time int64 创建时间(Unix时间戳)
accessed_time int64 最后访问时间
expired_time int64 过期时间(-1表示永不过期)
remain_quota int 剩余额度
unlimited_quota bool 是否无限额度
model_limits_enabled bool 是否启用模型限制
model_limits string 模型限制列表(逗号分隔)
allow_ips *string 允许的IP列表
used_quota int 已使用额度
group string 令牌分组
cross_group_retry bool 跨分组重试
bound_channel_id int 绑定的渠道ID(指定令牌只能使用该渠道)
deleted_at gorm.DeletedAt 软删除时间

3. channels - 渠道表

存储 API 服务商渠道配置。

字段名 类型 说明
id int 主键,自增ID
type int 渠道类型(OpenAI=1, Azure=2等)
key string API密钥
openai_organization *string OpenAI组织ID
test_model *string 测试模型
status int 状态:1=启用
name string 渠道名称
weight *uint 权重(负载均衡用)
created_time int64 创建时间
test_time int64 最后测试时间
response_time int 响应时间(毫秒)
base_url *string 基础URL
other string 其他信息
balance float64 余额(美元)
balance_updated_time int64 余额更新时间
models string 支持的模型列表
group string 渠道分组
used_quota int64 已使用额度
model_mapping *string 模型映射(JSON)
status_code_mapping *string 状态码映射
priority *int64 优先级
auto_ban *int 是否自动封禁
other_info string 其他信息(JSON)
tag *string 标签
setting *string 渠道额外设置(JSON)
param_override *string 参数覆盖(JSON)
header_override *string 请求头覆盖(JSON)
remark *string 备注
channel_info ChannelInfo 渠道信息(JSON,多Key模式配置)
settings string 其他设置

4. logs - 日志表

记录用户请求日志和系统日志。

字段名 类型 说明
id int 主键,自增ID
user_id int 用户ID(索引)
created_at int64 创建时间(Unix时间戳)
type int 日志类型:0=未知,1=充值,2=消费,3=管理,4=系统,5=错误,6=退款
content string 日志内容
username string 用户名
token_name string 令牌名称
model_name string 模型名称
quota int 消耗额度
prompt_tokens int 提示词Token数
completion_tokens int 完成Token数
use_time int 使用时间
is_stream bool 是否流式请求
channel_id int 渠道ID(索引)
token_id int 令牌ID(索引)
group string 分组
ip string 请求IP
request_id string 请求ID(唯一)
other string 其他信息(JSON)

5. options - 系统配置表

存储系统级配置项。

字段名 类型 说明
key string 配置键(主键)
value string 配置值

6. redemptions - 兑换码表

存储额度兑换码。

字段名 类型 说明
id int 主键,自增ID
user_id int 创建者用户ID
key string 兑换码(32字符,唯一)
status int 状态:1=启用,2=已使用,3=已禁用
name string 兑换码名称
quota int 额度值
created_time int64 创建时间
redeemed_time int64 兑换时间
used_user_id int 使用者用户ID
expired_time int64 过期时间(0=永不过期)
deleted_at gorm.DeletedAt 软删除时间

7. top_ups - 充值记录表

记录用户充值订单。

字段名 类型 说明
id int 主键,自增ID
user_id int 用户ID(索引)
amount int64 充值额度
money float64 支付金额
trade_no string 交易号(唯一,索引)
payment_method string 支付方式
create_time int64 创建时间
complete_time int64 完成时间
status string 状态:pending/success/failed

8. tasks - 异步任务表

存储异步任务(如视频生成等)。

字段名 类型 说明
id int64 主键,自增ID
created_at int64 创建时间(索引)
updated_at int64 更新时间
task_id string 任务ID(对外暴露,索引)
platform string 平台类型(索引)
user_id int 用户ID(索引)
group string 分组
channel_id int 渠道ID(索引)
quota int 消耗额度
action string 任务类型(索引)
status string 任务状态(索引)
fail_reason string 失败原因
submit_time int64 提交时间(索引)
start_time int64 开始时间(索引)
finish_time int64 完成时间(索引)
progress string 进度(索引)
properties json 任务属性
private_data json 私有数据(含Key、计费上下文等)
data json 任务数据

9. midjourneys - Midjourney任务表

存储 Midjourney 图片生成任务。

字段名 类型 说明
id int 主键,自增ID
code int 响应码
user_id int 用户ID(索引)
action string 动作类型(索引)
mj_id string Midjourney ID(索引)
prompt string 提示词
prompt_en string 英文提示词
description string 描述
state string 状态
submit_time int64 提交时间(索引)
start_time int64 开始时间(索引)
finish_time int64 完成时间(索引)
image_url string 图片URL
video_url string 视频URL
video_urls string 多个视频URL
status string 状态(索引)
progress string 进度(索引)
fail_reason string 失败原因
channel_id int 渠道ID
quota int 消耗额度
buttons string 操作按钮(JSON)
properties string 属性(JSON)

10. abilities - 渠道能力表

记录各渠道对不同模型的支持能力。

字段名 类型 说明
group string 分组(主键之一)
model string 模型名称(主键之一)
channel_id int 渠道ID(主键之一,索引)
enabled bool 是否启用
priority *int64 优先级(索引)
weight uint 权重(索引)
tag *string 标签(索引)

11. setups - 系统初始化表

记录系统初始化状态。

字段名 类型 说明
id uint 主键
version string 系统版本号
initialized_at int64 初始化时间

12. two_fas - 双因素认证表

存储用户的双因素认证设置。

字段名 类型 说明
id int 主键,自增ID
user_id int 用户ID(唯一,索引)
secret string TOTP密钥
is_enabled bool 是否启用
failed_attempts int 失败尝试次数
locked_until *time.Time 锁定截止时间
last_used_at *time.Time 最后使用时间
created_at time.Time 创建时间
updated_at time.Time 更新时间
deleted_at gorm.DeletedAt 软删除时间

13. two_fa_backup_codes - 2FA备用码表

存储双因素认证的备用恢复码。

字段名 类型 说明
id int 主键,自增ID
user_id int 用户ID(索引)
code_hash string 备用码哈希
is_used bool 是否已使用
used_at *time.Time 使用时间
created_at time.Time 创建时间
deleted_at gorm.DeletedAt 软删除时间

14. checkins - 签到记录表

记录用户每日签到。

字段名 类型 说明
id int 主键,自增ID
user_id int 用户ID(联合唯一索引)
checkin_date string 签到日期 YYYY-MM-DD(联合唯一索引)
quota_awarded int 奖励额度
created_at int64 创建时间

15. passkey_credentials - Passkey凭证表

存储用户的 Passkey/WebAuthn 凭证。

字段名 类型 说明
id int 主键,自增ID
user_id int 用户ID(唯一索引)
credential_id string 凭证ID(base64,唯一)
public_key string 公钥(base64)
attestation_type string 证明类型
aaguid string AAGUID(base64)
sign_count uint32 签名计数
clone_warning bool 克隆警告
user_present bool 用户在场标志
user_verified bool 用户已验证标志
backup_eligible bool 备份资格
backup_state bool 备份状态
transports string 传输方式(JSON)
attachment string 附件类型
last_used_at *time.Time 最后使用时间
created_at time.Time 创建时间
updated_at time.Time 更新时间
deleted_at gorm.DeletedAt 软删除时间

16. quota_data - 额度数据统计表

用于统计分析用户的额度使用情况。

字段名 类型 说明
id int 主键,自增ID
user_id int 用户ID(索引)
username string 用户名
model_name string 模型名称
created_at int64 创建时间(Unix时间戳)
token_used int Token使用量
count int 请求次数
quota int 消耗额度

17. subscription_plans - 订阅计划表

存储可购买的订阅套餐。

字段名 类型 说明
id int 主键,自增ID
title string 套餐标题
subtitle string 副标题
price_amount float64 价格金额
currency string 货币(默认USD)
duration_unit string 时长单位:year/month/day/hour/custom
duration_value int 时长数值
custom_seconds int64 自定义秒数
enabled bool 是否启用
sort_order int 排序顺序
stripe_price_id string Stripe价格ID
creem_product_id string Creem产品ID
max_purchase_per_user int 每用户最大购买次数
upgrade_group string 升级到的用户组
total_amount int64 总额度
quota_reset_period string 额度重置周期
quota_reset_custom_seconds int64 自定义重置秒数
created_at int64 创建时间
updated_at int64 更新时间

18. subscription_orders - 订阅订单表

记录订阅购买订单。

字段名 类型 说明
id int 主键,自增ID
user_id int 用户ID(索引)
plan_id int 计划ID(索引)
money float64 支付金额
trade_no string 交易号(唯一,索引)
payment_method string 支付方式
status string 状态
create_time int64 创建时间
complete_time int64 完成时间
provider_payload string 支付提供商数据

19. user_subscriptions - 用户订阅表

记录用户购买的订阅。

字段名 类型 说明
id int 主键,自增ID
user_id int 用户ID(索引)
plan_id int 计划ID(索引)
amount_total int64 总额度
amount_used int64 已使用额度
start_time int64 开始时间
end_time int64 结束时间(索引)
status string 状态
source string 来源:order/admin
last_reset_time int64 上次重置时间
next_reset_time int64 下次重置时间(索引)
upgrade_group string 升级到的分组
prev_user_group string 之前用户分组
created_at int64 创建时间
updated_at int64 更新时间

20. subscription_pre_consume_records - 订阅预消费记录表

记录订阅的预消费额度,用于流式请求的额度控制。

字段名 类型 说明
id int 主键,自增ID
request_id string 请求ID(唯一索引)
user_id int 用户ID(索引)
user_subscription_id int 用户订阅ID(索引)
pre_consumed int64 预消费额度
status string 状态:consumed/refunded
created_at int64 创建时间
updated_at int64 更新时间(索引)

21. custom_oauth_providers - 自定义OAuth提供商表

存储自定义的 OAuth 登录提供商配置。

字段名 类型 说明
id int 主键,自增ID
name string 显示名称
slug string URL标识符(唯一)
icon string 图标名称
enabled bool 是否启用
client_id string OAuth客户端ID
client_secret string OAuth客户端密钥
authorization_endpoint string 授权URL
token_endpoint string Token交换URL
user_info_endpoint string 用户信息URL
scopes string OAuth权限范围
user_id_field string 用户ID字段路径
username_field string 用户名字段路径
display_name_field string 显示名称字段路径
email_field string 邮箱字段路径
well_known string OIDC发现端点
auth_style int 认证样式
access_policy string 访问控制策略(JSON)
access_denied_message string 访问拒绝消息
created_at time.Time 创建时间
updated_at time.Time 更新时间

22. user_oauth_bindings - 用户OAuth绑定表

记录用户与第三方 OAuth 账号的绑定关系。

字段名 类型 说明
id int 主键,自增ID
user_id int 用户ID(索引)
provider_id int 提供商ID(索引)
provider_user_id string 提供商用户ID(索引)
created_at time.Time 创建时间
updated_at time.Time 更新时间
deleted_at gorm.DeletedAt 软删除时间

23. vendors - 供应商表

存储 AI 模型供应商信息。

字段名 类型 说明
id int 主键,自增ID
name string 供应商名称
description string 描述
icon string 图标
status int 状态:1=启用,0=禁用
created_time int64 创建时间
updated_time int64 更新时间
deleted_at gorm.DeletedAt 软删除时间

24. models - 模型元数据表

存储 AI 模型的元数据信息(注意:不存储价格,价格在 channel_pricings 表或全局配置中)。

字段名 类型 说明
id int 主键,自增ID
model_name string 模型名称
description string 描述
icon string 图标
tags string 标签
type int 模型类型:1=Chat, 2=Image, 3=Audio, 4=Video, 5=Embedding, 6=Rerank, 7=Vision, 8=Other
vendor_id int 供应商ID
endpoints string 支持的端点(JSON)
status int 状态:1=启用,0=禁用
sync_official int 是否同步官方
name_rule int 名称匹配规则:0=精确匹配,1=前缀匹配,2=包含匹配,3=后缀匹配
created_time int64 创建时间
updated_time int64 更新时间
deleted_at gorm.DeletedAt 软删除时间

25. prefill_groups - 预填充组表

存储预设的提示词/内容组。

字段名 类型 说明
id int 主键,自增ID
name string 组名称(唯一,索引)
type string 组类型(索引)
items json 组项目列表
description string 描述
created_time int64 创建时间
updated_time int64 更新时间
deleted_at gorm.DeletedAt 软删除时间

26. channel_pricings - 渠道定价表

存储各渠道的模型定价配置。

字段名 类型 说明
id int 主键,自增ID
model_name string 模型名称(联合唯一索引)
channel_id int 渠道ID(联合唯一索引,索引)
quota_type int 计费类型:0=按Token,1=按次
model_ratio float64 模型倍率
completion_ratio float64 完成倍率
model_price float64 模型价格
tag_ids string 关联的定价标签ID列表(逗号分隔)
created_time int64 创建时间(Unix时间戳)
updated_time int64 更新时间(Unix时间戳)
deleted_at gorm.DeletedAt 软删除时间

27. pricing_tags - 定价标签表

存储定价分类标签。

字段名 类型 说明
id int 主键,自增ID
name string 标签名称(唯一)
color string 颜色(默认#1890ff)
description string 描述
sort_order int 排序顺序
created_time int64 创建时间
deleted_at gorm.DeletedAt 软删除时间

表关系图

核心关系

┌─────────────┐       ┌─────────────┐
│   users     │───1:N─│   tokens    │
└─────────────┘       └─────────────┘
       │
       │ 1:N
       ▼
┌─────────────┐       ┌─────────────┐
│    logs     │       │   top_ups   │
└─────────────┘       └─────────────┘

┌─────────────┐       ┌─────────────┐
│  channels   │───1:N─│  abilities  │
└─────────────┘       └─────────────┘
       │
       │ 1:N
       ▼
┌──────────────────┐
│ channel_pricings │
└──────────────────┘

订阅系统关系

┌───────────────────┐
│ subscription_plans│
└─────────┬─────────┘
          │
    ┌─────┴─────┐
    │ 1:N       │ 1:N
    ▼           ▼
┌───────────────┐  ┌──────────────────┐
│subscription_  │  │ user_subscriptions│
│   orders      │  └───────────────────┘
└───────────────┘           │
                            │ 1:N
                            ▼
                   ┌──────────────────────────┐
                   │ subscription_pre_consume │
                   │         _records         │
                   └──────────────────────────┘

OAuth 系统关系

┌────────────────────────┐
│ custom_oauth_providers │
└───────────┬────────────┘
            │ 1:N
            ▼
┌───────────────────────┐     ┌─────────────┐
│ user_oauth_bindings   │─────│   users     │
└───────────────────────┘     └─────────────┘

模型元数据关系

┌─────────────┐       ┌─────────────┐
│   vendors   │───1:N─│   models    │
└─────────────┘       └─────────────┘

完整关系列表

主表 从表 关系 说明
users tokens 1:N 一个用户可有多个令牌
users logs 1:N 一个用户可有多条日志
users top_ups 1:N 一个用户可有多条充值记录
users redemptions 1:N 一个用户创建的兑换码
users tasks 1:N 一个用户可有多个任务
users midjourneys 1:N 一个用户可有多个MJ任务
users checkins 1:N 一个用户可有多条签到记录
users two_fas 1:1 一个用户可有一个2FA设置
users passkey_credentials 1:1 一个用户可有一个Passkey
users user_subscriptions 1:N 一个用户可有多个订阅
users user_oauth_bindings 1:N 一个用户可绑定多个OAuth
channels abilities 1:N 一个渠道可有多个能力记录
channels channel_pricings 1:N 一个渠道可有多个模型定价
channels tokens 1:N 一个渠道可被多个令牌绑定(可选,通过 bound_channel_id)
subscription_plans subscription_orders 1:N 一个计划可有多个订单
subscription_plans user_subscriptions 1:N 一个计划可有多个用户订阅
custom_oauth_providers user_oauth_bindings 1:N 一个提供商可有多个绑定
vendors models 1:N 一个供应商可有多个模型
pricing_tags channel_pricings N:M 定价标签与渠道定价多对多(通过 tag_ids)