自定义 provider 是通过名称、Base URL 和 API key 配置的 OpenAI Chat Completions 兼容服务。通信协议由 provider 类型决定,而非模型名称。
历史上仅配置主机地址时生成 /models 和 /chat/completions,,且曾将非 JSON 的 200 响应接受为有效凭证响应。当前解析器会为仅含主机的自定义 Base URL 添加 /v1,凭证验证和模型列表流程要求响应为 JSON。
| 配置值 | 解析后的 API Base |
|---|---|
https://host | https://host/v1 |
https://host/ | https://host/v1 |
https://host/v1 | https://host/v1 |
https://host/compatible-mode/v1 | 不变 |
存储值仍保留用户输入。模型列表、凭证验证、启用模型注册和推理使用解析后的值。
GET {base}/models 用于验证凭证并列出模型。验证成功的响应必须为 JSON。模型记录存储 api=openai-completions 和解析后的 Base URL。运行时推理使用 POST {base}/chat/completions.
认证拒绝、余额错误、限流、传输失败、非 JSON 成功页面、格式错误的模型响应结构以及空模型列表,仍作为可区分的可观测结果。错误文本不得包含 API key 或响应正文。
现有自定义 provider 和已启用模型记录在读取时使用相同解析器处理,因此无需配置迁移或重新创建。内置 provider 协议保留当前解析规则。
https://nan.meta-api.vip 的自定义 provider 请求 https://nan.meta-api.vip/v1/models.openai-completions 以及解析后的 Base URL。/v1。通过共享 provider Base URL 解析器、凭证验证器、通用 OpenAI 兼容模型获取器、列表规范化器和启用模型注册表实现。针对性 provider 测试覆盖仅主机地址解析、显式路径保留、旧版启用记录和非 JSON 成功响应。打包 App 将 Yuanheng 解析为 https://nan.meta-api.vip/v1,并在默认 profile 中获取了 10 个远程模型。