一个解决AI接口限制的开源工具
在AI开发过程中,我们常常遇到这些问题:
- API免费调用次数有限
- 需要管理多个不同平台的API和密钥
- 想要充分利用各平台的免费额度
为此,我开发了Apex AI Proxy这个小工具,希望能为大家提供一些帮助。
Apex AI Proxy是什么?
Apex AI Proxy是一个开源的个人AI网关,运行在Cloudflare Workers上。它能够将多个AI服务提供商整合在统一的OpenAI兼容API后面,帮助开发者更有效地利用各平台资源。
主要特点
- 免费使用:可以完全运行在Cloudflare Workers免费计划上
- 智能分发请求:在多个提供商之间分配请求,减轻单一服务压力
- 整合免费资源:帮助开发者利用不同AI提供商的免费层级
- 多密钥管理:支持注册同一服务提供商的多个API密钥
- 兼容OpenAI客户端:与使用OpenAI API格式的库无缝对接
强大配置示例
为同一模型配置多个供应商
当某个服务商限流或出错时,请求会自动转到其他可用服务商:
// 为GPT模型配置多个供应商,实现负载均衡
const modelProviderConfig = {
'DeepSeek-R1': {
providers: [
{
provider: 'aliyuncs',
model: 'deepseek-r1',
},
{
provider: 'deepinfra',
model: 'deepseek-ai/DeepSeek-R1',
},
{
provider: 'azure',
base_url: 'https://:name.services.ai.azure.com/models',
api_key: 'sk-xxxx',
model: 'DeepSeek-R1',
},
// 火山 有免费额度
{
provider: 'volces',
model: 'deepseek-r1-250120',
},
{
provider: 'deepseek',
model: 'deepseek-reasoner',
},
// 天翼云免费2周
{
provider: 'ctyun/DeepSeek-R1-昇腾版',
base_url: 'https://wishub-x1.ctyun.cn/v1',
api_key: 'sk-xxx',
model: '4bd107bff85941239e27b1509eccfe98',
},
{
provider: 'ctyun/DeepSeek-R1-英伟达版',
base_url: 'https://wishub-x1.ctyun.cn/v1',
api_key: 'sk-xxx',
model: '7ba7726dad4c4ea4ab7f39c7741aea68',
},
],
}
}
同一供应商多个API密钥
突破单个API密钥的速率限制,平衡使用多个账号的配额:
const providerConfig = {
groq: {
// 可以配置走 CF AI Gateway, 日志可审查
base_url: 'https://gateway.ai.cloudflare.com/v1/:id/:name/groq',
// 多 groq 帐号 突破速率限制
api_keys: [
'gsk-xxxxx1',
'gsk-xxxxx2',
'gsk-xxxxx3',
'gsk-xxxxx4',
'gsk-xxxxx5',
]
},
}
均衡利用免费额度
最大化利用各平台的免费额度,节省成本:
// 充分利用各平台免费额度的配置示例
const modelProviderConfig = {
'qwen-max': {
providers: [
{
// 国内阿里云
provider: 'aliyuncs',
model: 'qwen-max',
},
{
// 阿里云国际站
provider: 'alibabacloud',
model: 'qwen-max',
},
],
},
}
TPS限制均衡处理
处理不同供应商的TPS(每秒事务处理数)限制:
// 处理高并发场景,避免触发TPS限制的配置
const providerConfig = {
aliyuncs: {
base_url: 'https://dashscope.aliyuncs.com/compatible-mode/v1',
api_keys: ['sk-xxx','sk-xxx2'],
},
alibabacloud: {
base_url: 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1',
api_keys: ['sk-xxxx','sk-xxxx1'],
},
volces: {
base_url: 'https://ark.cn-beijing.volces.com/api/v3',
api_keys: ['xxxx','xxxx1','xxxx2'],
},
}
使用示例
只需简单几行代码,即可通过统一接口调用多家服务商模型:
from openai import OpenAI
client = OpenAI(
base_url="https://your-proxy.workers.dev/v1",
api_key="your-configured-api-key"
)
# 使用配置过的模型
response = client.chat.completions.create(
model="DeepSeek-R1", # 自动路由到配置的提供商
messages=[{"role": "user", "content": "这个工具有什么用途?"}]
)
开源项目,欢迎参与
这是一个完全开源的项目,如果您觉得有用,欢迎访问我们的GitHub仓库:
- 项目地址:github.com/loadchange/…
- 如果这个工具对您有所帮助,请给项目点个⭐Star支持一下!
- 欢迎提交Issue或Pull Request,一起改进这个工具