平台模型与自定义模型接入
配置文本协议、多模型列表、请求级密钥与允许的模型端点。
两种模型选择
ModelSelection 定义在 src/ai/core/models/contracts.ts:平台模式只提交 mode: platform;自定义模式提交 mode: custom 和当前连接配置。
平台注册表在 src/ai/index.ts,使用 google:fast、google:chat、google:reasoning 与 google:image 等稳定业务别名。供应商真实模型 ID 可以变化,业务服务优先使用别名。
自定义文本协议
支持 google、openai-compatible、anthropic。配置包含 baseUrl、apiKey、modelIds、enabledModelIds 和默认 modelId。
已启用列表必须是配置列表的子集,默认模型必须已启用。旧版只有 modelId 的配置仍按单模型读取;损坏配置不应被静默覆盖。
平台模型在独立 Admin 工作台管理,文本与生图分开配置。保存配置不等于模型请求已经成功,文本连接测试有自己的请求与限流处理。个人 DeepSeek 与 OpenAI 兼容模型在个人中心配置。
密钥与端点策略
文本配置存储键为 offer-ai-models:v1:<userId>;生图配置为 offer-ai-image-models:v1:<userId>。密钥保留在当前浏览器,请求时临时传给服务端,不存数据库、日志和历史记录。
端点必须为允许域名上的公开 HTTPS 地址,拒绝用户名密码、非标准端口、IP、内网域名及重定向。新增服务先检查 AI_PROVIDER_ALLOWED_HOSTS,再补协议适配,不能关闭端点校验。
MiniMax 官方 Anthropic 兼容域名的路径与 Bearer 认证差异集中在 providers/minimax.ts。该特殊处理只匹配官方精确域名。
扩展入口
provider-factory.ts:请求级模型选择。provider-adapters.ts:协议适配。endpoint-policy.ts:地址与 fetch 约束。model-ids.ts、validation.ts:模型列表与边界校验。src/test/ai-settings:协议、端点及凭据隔离测试。
继续阅读扩展与验证。