为不同的 LLM 模型提供相同的代理 OpenAI API 接口,并且支持部署到任何 Edge Runtime 环境。
支持的模型
- OpenAI
- Anthropic
- Google Vertex Anthropic
- Google Gemini
- DeepSeek
- Groq
- Moonshot
- 零一万物
- Cerebras
- Azure OpenAI
- Cohere
- Aliyun Bailian
- Ollama
- Cloudflare Workers AI
- Coze
- 豆包
环境变量
-
API_KEY
: 代理 API Key,要求调用代理 API 时必须设置 -
CORS_ORIGIN
: 允许的 CORS 域名,例如https://example.com
-
OpenAI: 支持 OpenAI 模型,例如
gpt-4o-mini
OPENAI_API_KEY
: OpenAI API Key
-
VertexAI Anthropic: 支持 Google Vertex AI 上的 Anthropic 模型,例如
claude-3-5-sonnet@20240620
VERTEX_ANTROPIC_GOOGLE_SA_CLIENT_EMAIL
: Google Cloud Service Account EmailVERTEX_ANTROPIC_GOOGLE_SA_PRIVATE_KEY
: Google Cloud Service Account Private KeyVERTEX_ANTROPIC_REGION
: Google Vertex AI Anthropic RegionVERTEX_ANTROPIC_PROJECTID
: Google Vertex AI Anthropic Project ID
-
Anthropic: 支持 Anthropic 模型,例如
claude-3-5-sonnet-20240620
ANTROPIC_API_KEY
: Anthropic API Key
-
Google Gemini: 支持 Google Gemini 模型,例如
gemini-1.5-flash
GOOGLE_GEN_AI_API_KEY
: Google Gemini API Key
-
DeepSeek: 支持 DeepSeek 模型,例如
deepseek-chat
DEEPSEEK_API_KEY
: DeepSeek API Key
-
Moonshot: 支持 Moonshot 模型,例如
moonshot-v1-8k
MOONSHOT_API_KEY
: Moonshot API Key
-
零一万物: 支持零一万物模型,例如
yi-large
LINGYIWANWU_API_KEY
: 零一万物 API Key
-
Groq: 支持 Groq 模型,例如
llama3-8b-8192
GROQ_API_KEY
: Groq API Key
-
Cerebras: 支持 Cerebras 模型,例如
llama-3-8b
CEREBRAS_API_KEY
: Cerebras API Key
-
Azure OpenAI: 支持 Azure OpenAI 模型,例如
gpt-4o-mini
AZURE_OPENAI_API_KEY
: Azure OpenAI API KeyAZURE_OPENAI_ENDPOINT
: Azure OpenAI EndpointAZURE_API_VERSION
: Azure OpenAI API VersionAZURE_DEPLOYMENT_MODELS
: Azure OpenAI Deployment Models, 例如gpt-4o-mini:gpt-4o-mini-dev,gpt-35-turbo:gpt-35-dev
,表示gpt-4o-mini
和gpt-35-turbo
两个模型,分别对应gpt-4o-mini-dev
和gpt-35-dev
两个部署。
-
Cohere: 支持 Cohere 模型,例如
command-r
COHERE_API_KEY
: Cohere API Key
-
Aliyun Bailian: 支持阿里云百炼模型,例如
qwen-max
ALIYUN_BAILIAN_API_KEY
: 阿里云百炼 API KeyALIYUN_BAILIAN_MODELS
: 自定义支持的阿里云百炼模型列表,例如qwen-max,qwen-7b-chat
,默认为qwen-max
一旦部署成功,就可以通过 OpenAI 的 API 接口来调用不同的模型。
例如,调用 OpenAI 的 API 接口:
curl http://localhost:8787/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_KEY" \
-d '{
"model": "gpt-4o-mini",
"messages": [
{
"role": "user",
"content": "Hello, world!"
}
]
}'
或者调用 Anthropic 的 API 接口:
curl http://localhost:8787/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_KEY" \
-d '{
"model": "claude-3-5-sonnet-20240620",
"messages": [
{
"role": "user",
"content": "Hello, world!"
}
]
}'
并且可以在 OpenAI 的官方 SDK 中使用,例如:
const openai = new OpenAI({
baseURL: 'http://localhost:8787/v1',
apiKey: '$API_KEY',
})
const response = await openai.chat.completions.create({
model: 'gpt-4o-mini',
messages: [{ role: 'user', content: 'Hello, world!' }],
})
console.log(response)
由于一些模型在多个供应商中存在,所以一些模型的名称可能会添加前缀,例如 groq/llama3-8b-8192
,表示 Groq 的 llama3-8b-8192
模型。
通过 API 获取支持的模型列表:
curl http://localhost:8787/v1/models \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json"
我正在使用 Vertex AI 的 Anthropic 模型,但发现许多 LLM 工具不支持直接配置它。这促使我萌生了开发一个 API 代理的想法。通过这个代理,我可以在任何支持 OpenAI API 的工具中无缝使用其他 AI 模型。
虽然已经有一些转卖 LLM token 的商业服务,但它们通常需要通过他们的服务器中转。嗯,没必要让另一个第三方知道我如何使用的。这个代理可以部署到任何 Edge Runtime 环境,例如 Cloudflare Workers,对于个人而言,它提供高达 100k/天的免费请求次数。