AI Models
**管理后台位置:**System › Admin › License & updates(
/license)以启用该模块。然后前往Services › AI Models:Providers(/ai/providers)、Models(/ai/models)、Profit(/ai/profit)与Audit(/ai/audit)。客户在客户门户中使用AI › API。
功能说明
AI Models是您自身面板上的网关与计费层。您的客户获取API密钥后,即可按照OpenAI兼容或Anthropic兼容格式调用您域名下的1个端点。您可以选择提供哪些模型以及每100万 tokens 的费用。NexCMP会检查密钥、配额限制与钱包余额,将请求转发至您添加的提供商,计量token用量并从客户的预付费钱包中扣费。
**模型来源需由您自行提供。**NexCMP本身不附带任何提供商、模型、默认地址或价格,也不提供模型、API密钥、Token或提供商账户。
请先检查来源条款
许多模型来源限制转售或向第三方转交访问权限。请仅使用您获得授权使用和转售的来源,并遵守其条款及适用于您的法律法规。本页面不构成法律建议。
AI Models是与AI Chat and AI Agent(AI模块,参见AI providers)相互独立的产品。这两个模块互不依赖。
前提条件
| 项目 | 要求 |
|---|---|
| 模块 | 在License & updates、Modules下启用AI Models。默认处于关闭状态。 |
| 提供商 | 一个或多个您有权转售的模型源,每个模型源均具备兼容OpenAI的API(/chat/completions)、兼容Anthropic的API(/messages)或两者兼备。每个模型源都需要base URL和API密钥。 |
| 网络 | 控制面板必须能够通过公网域名经由443端口上的HTTPS访问各提供商。位于内网主机、其他端口或使用明文HTTP的提供商必须列在Allowed internal hosts(设置项ai_endpoint_allow)中。 |
| 客户 | 拥有已验证邮箱地址且钱包有余额的客户账户。 |
| 硬件 | 无。NexCMP仅转发请求:无需GPU,也无需模型文件。 |
准备基础设施
- 从您将使用的各个模型来源获取API密钥,并记下其基础URL(例如
https://api.example.com/v1)。 - 检查来源关于转售的相关条款。
- 如果某个来源运行在您的内部网络中,请确定其地址,例如
http://10.0.0.5:8000/v1。您需要将10.0.0.5:8000列入Allowed internal hosts中。
在NexCMP中连接
1. 开启模块
打开System › Admin › License & updates,找到Module卡片,并开启AI Models。菜单重新加载后将显示Services › AI Models。在此模块关闭期间,客户页面、管理页面和网关均返回404 module_disabled,且不会连接任何提供商。

2. 添加提供商
- 打开AI Models › Providers并选择Add provider。
- 输入简短的slug、name(仅您可见)、type(OpenAI-compatible、Anthropic-compatible或Both)、base URL和API key,以及priority(数值越小越优先尝试)。
- 保存。密钥以加密方式存储,后续仅显示其最后4个字符。仅可在已登录的管理员会话中输入密钥。
仅当网关确实同时支持这两种格式时才使用Both。NexCMP不会在两种格式之间进行转换:由兼容OpenAI的提供商所提供的模型通过/ai/v1/chat/completions访问,而由兼容Anthropic的提供商所提供的模型则通过/ai/v1/messages访问。

3. 测试连接
在提供商上选择Test connection。NexCMP会使用该密钥读取GET <base URL>/models并报告ok,或说明失败原因:auth(密钥错误)、blocked、billing或unreachable。测试频率限制为每分钟6次。
4. 同步模型
选择Sync models。NexCMP会读取提供商的模型列表,添加每个新模型并默认关闭且未定价。提供商不再列出的模型会被标记。在该模块开启期间,系统还会每6小时自动同步一次列表(设置项ai_models_sync_hours)。
5. 设置价格并启用模型
- 打开AI Models › Models。
- 针对您要销售的每个模型,按每1 million tokens设置美元售价:input、cached input与output。
- 可选输入该模型的成本。随后Profit将按天和按模型显示收入与成本的对比;若售价低于成本与最低利润率之和(设置项
ai_min_margin_pct,默认为10),系统将拒绝设置,除非您确认自愿亏本。Set price from cost使用您自选的加价率;不存在默认加价率。 - 开启该模型。未设置售价的模型无法开启。若缓存输入价格保留为零,则按输入价格计费。

6. 路由与故障转移
在模型中,Routes按顺序列出了为其提供服务的提供商。添加备用提供商作为后备,设置优先级顺序,并可选择为每个提供商指定不同的模型名称(发送给提供商的名称可以与您公开展示的名称不同)。当某个提供商返回服务器错误、鉴权或计费错误、模型不存在或触发速率限制时,NexCMP会尝试下一条路由。如果在请求发送后发生读取超时,该请求不会被发送到其他提供商,以免产生二次扣费。
每个提供商的速率限制为每分钟ai_provider_rpm次请求(默认为50)。若某个提供商持续返回鉴权或计费错误,在配置了Telegram的情况下,NexCMP会通过Telegram向管理员发送告警。
7. 开启销售开关
在AI Models页面顶部,销售开关(设置项feature_ai_models)默认处于关闭状态。关闭期间,客户会看到服务尚未开放,公开价格表也会显示其不可用。请确认至少有一个模型已开启、已设置售价并配置了包含密钥的路由,然后将其开启。
客户可用功能
在客户门户中,AI › API:
- Models显示您的模型与价格、base URL以及现成的示例命令。
- API Keys:创建、重命名、轮换、禁用和删除密钥。Secret仅显示一次,系统仅存储其哈希值。单个密钥可配置:允许的模型、到期时间、软预算(告警)与硬预算(通过
402拦截)、每分钟请求数及每分钟tokens数。 - 按模型、密钥和日期查看Usage,支持导出。
- Logs:支持筛选的请求记录(时间、密钥、模型、tokens、成本、状态、延迟)。**不记录提示词与响应内容。**日志默认保留90天(
ai_log_retention_days)。 - Settings:账户预算以及接收预算告警的邮箱地址。
- Playground:与模型对话、并排对比不同模型,并复制对应的代码。

位于您域名下的网关端点:
text
POST /ai/v1/chat/completions OpenAI-compatible
POST /ai/v1/messages Anthropic-compatible (also /ai/v1/messages/count_tokens)
GET /ai/v1/models model list
GET /ai/v1/models/pricing public price list, no key needed钱包与计费
AI用量与所有其他服务一样从同一个预付费钱包中扣除。在请求发送给提供商之前,NexCMP会预冻结该请求可能产生的最高费用;如果余额低于最低限额(ai_min_balance_cents,默认为20美分)或余额不足,请求将被拒绝并返回402 insufficient_balance,且不会调用任何提供商。用量按账户汇总并在每小时后结算为钱包账本明细,每5分钟进行一次汇总扫描;尚未结算的用量已在网关可见的余额中预先扣除。
分销商可以在自己的独立域名上销售AI Models:其加价或折扣基于您的销售价格生效,且系统将从其批发钱包中扣除批发价。每个分销商独立的AI开关(默认开启)可控制谁有权销售。
验证
完成第3步后,Test connection将显示ok及模型数量。
完成第4步后,新模型将列出,处于关闭状态且未定价。
以钱包有余额的客户身份创建一个密钥并调用网关:
bashcurl https://your-domain/ai/v1/chat/completions \ -H "Authorization: Bearer sk-ai-…" -H "Content-Type: application/json" \ -d '{"model":"model-one","messages":[{"role":"user","content":"hello"}]}'200响应会返回模型的回答。Usage会显示该请求,如果输入了成本,Profit也会显示。当钱包余额为零时,相同的调用会返回
402 insufficient_balance。
限制与注意事项
- 该模块未内置任何提供商、模型或价格,也不会从提供商处读取任何价格表。
- 在提供商端运行且按次计费的工具(如网络搜索)会被拒绝,因为它们无法计量。仅会传递一小部分请求参数。
- Token用量取自提供商的回复;如果回复中没有,NexCMP会进行估算并将该记录标记为估算值。
- 来自提供商的错误在到达客户之前会被清理(移除名称、主机、地址以及提供商的模型名称)。客户绝不会看到是哪个提供商处理了请求。
- 客户通过管理面板的域名访问网关,因此该域名的TLS必须正常工作。
- NexCMP不为此模块提供服务等级协议、微调或GPU托管服务。
故障排查
| 症状 | 原因与解决方法 |
|---|---|
所有AI Models页面和网关均返回404 module_disabled | 模块已关闭。请在License & updates的Modules下开启AI Models。 |
添加提供商失败,显示endpoint_host_not_allowed、endpoint_must_be_https或invalid_endpoint_port | 基础 URL 必须使用公网域名且基于 443 端口的 HTTPS。对于内部主机、其他端口或普通 HTTP,请将host:port列入Allowed internal hosts中。 |
blocked_endpoint | 地址为IP,或域名解析到了私有地址。如果符合预期,请将其列在Allowed internal hosts下。 |
Test connection显示auth | 密钥错误或无权限。请重新输入密钥。 |
无法开启模型(no_price) | 请先设置售价。 |
客户收到503 ai_unavailable | 销售开关处于关闭状态,或分销商的AI开关已关闭。 |
客户收到503 upstream_unavailable | 没有带有密钥的已启用路由能以所请求的格式提供该模型。请检查模型的路由和提供商类型。 |
客户收到402 insufficient_balance | 钱包余额低于最低限额或不足以支付请求。请要求客户充值。 |