API 密钥管理与自动调度机制
为了确保在高频使用场景下的稳定性和响应速度,UNIChat 建立了一套智能的 API 调度系统。你只需配置好密钥,剩下的交给 UNIChat。
1. 填写 API Key 与基础配置
在添加模型服务商时,你需要提供认证凭证:
API Key:你的核心认证密钥。
在线服务:填入从 OpenAI、Claude 或 DeepSeek 等官网获取的 sk-... 密钥。
本地服务:如果你连接的是本地运行的 Ollama 或 LM Studio 等无鉴权服务,此项可随意填写(例如 sk-123456 或 local)。
多 Key 支持:UNIChat 允许你为同一个服务商添加多个 API Key,这是实现高可用性的基础。
2. 智能负载均衡 (Load Balancing)
当你为某个模型配置了多个 API Key 时,UNIChat 会自动激活负载均衡模式:
随机轮询策略:系统不会固定使用某一个 Key,而是通过算法在多个可用 Key 之间进行随机轮询(Random Polling)。
优势:这能有效分散单一 Key 的流量压力,降低触发服务商单 Key 频率限制(Rate Limit)的风险,提升并发处理能力。
3. 故障转移与 429 自动退避 (Failover)
在 AI 绘图或高频对话中,最常见的问题是服务商返回 429 Too Many Requests 错误。UNIChat 对此有完善的保护机制:
静默重试:当某个 Key 触发限额(Rate Limit)或响应超时的错误时,UNIChat 不会中断你的对话。
自动跳过:系统会自动识别失效的 Key,并立即寻找当前队列中其他可用的 Key 进行请求。
退避保护:对于已触发限额的 Key,系统会对其进行临时的“冷却”处理,等其恢复后再重新加入轮询池。这一切都是在后台完全自动完成的。
4. 高级速率控制 (TPM/RPM 管理)
对于有精确控制需求的进阶用户,我们在“高级设置”中提供了手动限速选项:
核心指标:
TPM (Tokens Per Minute):每分钟允许消耗的最大 Token 数。
RPM (Requests Per Minute):每分钟允许发起的最大请求次数。
每日限制:防止账户额度被意外跑满。
智能切换逻辑:即便你不手动填写,UNIChat 也会根据调用结果的反馈(如 Header 中的速率信息)动态调整切换频率。
建议:如果你希望保证多 Key 轮询的绝对精确性(例如你有多个等级不同的账号),可以在此处填入官方给定的限额值,UNIChat 将以此为基准进行最优化调度。
在 UNIChat 中,API 管理的原则是 “极简配置,高能运行”。对于绝大多数用户,你只需要把收集到的 API Key 填进去,系统就会自动为你构建一个永不宕机、自动扩容的私有 API 集群。
未来展望
在开发和调试的时候我就发现,不同的服务商有不同的API路由策略,当返回429或者其他错误的时候,报错信息也不尽相同。所以说,最理想的调度方式是根据不同的API提供商预设来切换调度策略。在实际的代码中,目前使用的是通用的调度策略,但是我已经预留好了类,只需要继承和重写即可添加新的调度策略。日后也会添加更多的调度策略。如果你想要贡献自己的调度策略,欢迎提交issue。(≧∇≦)