Skip to Content
运营排障全局 AI 模型与价格

全局 AI Provider、模型与价格

用途

集中维护所有用户共用的模型连接、能力版本和整数积分价格。

使用前准备

仅管理员可以维护全局 AI 配置。准备供应商服务地址、API Key、供应商模型 ID,以及模型支持的分辨率、时长、生成数量和 Token 上限。密钥只提交给服务端,不要写入文档、截图或浏览器日志。

操作步骤

配图占位:管理后台的供应商、模型和价格修订标签页。

  1. 打开 /admin/ai-providers,从项目内置 Provider 预设中选择固定类型。新建时会自动带入推荐服务地址、API 模式和网关路由;编辑旧配置时可点击“应用推荐配置”,该操作不会填写或覆盖 API Key。Provider 可按名称、类型和启用状态筛选;删除操作会停用并软删除 Provider,使其从新任务配置中隐藏。
  2. 保存密钥后执行连接测试;测试只返回脱敏步骤,不产生用户积分费用。
  3. 创建稳定模型键并按 Provider、启用状态筛选模型。打开价格修订后,展开历史行查看完整档位;新草稿会继承当前发布修订的供应商模型 ID、能力和价格。
  4. 在结构化表单中填写能力选项和单次最大用量。表单按模型类型限制可用协议、指标和计价维度;Token 固定按 100 万计费。供应商成本选择币种后直接填写金额,界面支持最多 6 位小数,服务端保存为整数微单位。
  5. 检查能力覆盖、LLM 上下文和最大输入/输出 Token 后发布修订。
  6. 确认 Provider 与模型已启用,再让用户选择为个人、项目或节点模型。

旧配置迁移分两阶段执行:先运行 npm run migrate:global-model-catalog -- --phase=draft --source-user-id=<管理员用户ID>,只从指定管理员生成全局供应商和模型草稿,不读取或迁移个人密钥,也不覆盖已有供应商配置。后台发布模型价格后,运行 npm run export:model-prices 将当前有效修订固化到 prisma/model-prices.json;可手动运行 npm run seed:model-prices -- --source-user-id=<管理员用户ID> 校验并幂等导入,也可由 Docker 的 release/all 自动执行。自动执行时优先使用有效的 VVICAT_ADMIN_USER_ID,未配置或对应账号失效则选择最早创建的管理员。价格无变化时不会创建新修订。导出和导入均不处理密钥、连接地址、启停状态或用户数据,也不会重新创建管理员已删除的供应商。

个人设置中的 API 配置已收敛为模型设置:Provider 卡片、密钥、同步和自定义模型入口不再提供。用户仍可保存个人默认模型、流程并发和其他非 Provider 偏好。

结果与状态

草稿可以继续编辑;发布后的修订不可修改。新任务保存发布修订和价格快照,因此后续发布新价格不会改变已提交任务。运行时按模型关联的 Provider 记录读取 Base URL、网关路由和凭据,而不是按 Provider 类型字符串猜测连接;轮换连接配置后会影响尚未开始的任务。

积分字段使用有符号 64 位整数,API 使用规范十进制字符串。管理页面按正常币种金额展示供应商成本,并显示积分售价折成美元后相对供应商原价的倍率;初始积分价和参考汇率只用于填充默认值,管理员可以修改。服务端仍以整数微单位保存成本,例如 USD 1000000 表示 1 美元。积分价格必须为正数,成本允许为 0;每个计价能力组合必须恰好匹配一个档位。

权限和边界

  • 普通用户不能读取密钥或修改 Provider、模型能力和价格。
  • Provider 类型创建后不可修改;历史引用存在时只能停用或软删除。
  • 保存空密钥表示保留原值;清除密钥必须使用独立确认操作,并会停用 Provider。
  • 停用只阻止新任务,已经提交的任务继续使用提交时保存的模型修订。
  • 供应商服务地址会拦截本机、私网、链路本地地址和带用户名密码的 URL;运行前会重新校验 DNS。若本地代理返回 198.18.0.0/15 Fake-IP,系统会用公共 DNS 复核真实公网地址;OpenAI 兼容请求固定使用已校验地址并禁止自动跟随重定向。

常见问题

为什么模型不能发布?

检查是否缺少能力组合价格、存在重复档位、价格或单位不是正整数,或者 LLM 的上下文窗口和最大输入/输出 Token 不完整。

为什么用户看不到已经创建的模型?

Provider 和模型必须同时启用,模型必须存在已发布且价格覆盖完整的当前修订。

轮换密钥会影响历史任务吗?

历史账务快照不会改变,但尚未向供应商提交的任务会读取当前 Provider 连接,可能受密钥轮换或清除影响。

相关文档

Last updated on