lang: zh slug: openrouter-unified-llm-api-gateway title: ‘OpenRouter:连接 300 多个模型的统一 LLM API 网关’ description: ‘OpenRouter 完整指南:统一的 LLM API 网关,适用于来自 60 多个提供商的 300 多个模型。 在 5 分钟内了解设置、集成、基准测试和生产部署。’ tags: [“guide”, “open-source”, “reference”, “tutorial”] date: 2026-05-19 00:00:00+08:00 lastmod: 2026-05-19 00:00:00+08:00 tech_stack: [] application_domain: Llm Frameworks source_version: ’' licensing_model: Proprietary SaaS license_type: Proprietary file_size: ’' file_md5: ’' download_url: ’' backup_url: ’' github_repo: ’' last_maintained: ‘2026-05-19’ draft: false categories: [’llm-frameworks’] featureImage: /images/articles/fa5fe2a4-openrouter-the-unified-llm-api.png aliases:- /posts/openrouter-unified-llm-api-gateway/ 常见问题解答:

  • 问:“除了提供商 API 成本之外,OpenRouter 还收取多少费用?” a:‘OpenRouter 在直接提供商定价的基础上增加了 5.5% 的平台费用。 通过 BYOK(自带密钥)选项,您可以连接自己的提供商密钥,并按标价向提供商付款,每月前 100 万个请求无需加价,之后将收取 5% 的路由费。
  • q: ‘我需要特殊的 SDK 才能使用 OpenRouter 吗?’ ’ ‘不。 OpenRouter 在 https://openrouter.ai/api/v1 公开了与 OpenAI 兼容的端点,因此您可以通过更改 base_url 和 api_key 来使用标准 OpenAI 客户端。 要在模型之间切换,您只需更改模型参数,例如 anthropic/claude-sonnet-4.5 或 openai/gpt-5。
  • q:“OpenRouter 如何处理提供商中断?” a: ‘如果您将allow_fallbacks设置为true,OpenRouter会自动按照您指定的顺序重试备份提供程序。 例如,一个请求可以透明地从 Anthropic 回退到 OpenAI,再到 Google,如果所有提供者都失败,它会返回一个您的应用程序可以处理的结构化错误。
  • q: ‘通过 OpenRouter 进行路由会增加多少延迟开销?’ a: ‘与直接调用提供商相比,OpenRouter 为每个请求增加了大约 20-25 毫秒。 2026 年 5 月,GPT-5 基准测试从直接 320 毫秒变为通过 OpenRouter 的 340 毫秒,这对于大多数应用程序来说可以忽略不计。
  • q:“我什么时候应该使用像 LiteLLM 这样的自托管替代方案来代替 OpenRouter?” a:“对于每月超过 1000 万个请求的大批量生产,自托管的 LiteLLM 消除了每个请求的标记并且更便宜。 OpenRouter 也不能完全自托管,因此严格的数据驻留要求或深度可观察性需求可能有利于 LiteLLM 或像 Portkey 这样的企业网关。 特征图片:/images/articles/openrouter-unified-d66a3b-1.jpg— ——{{< 资源信息 >}}## 简介:每个开发者都面临的 API 密钥噩梦上个月,我建议的一家初创公司在一周内就在 LLM API 账单上烧掉了 3,400 美元。 罪魁祸首? 他们为 OpenAI、Anthropic、Google、Meta 和 DeepSeek 维护单独的 API 密钥,每个密钥都有自己的计费仪表板、速率限制、错误处理逻辑和 SDK 怪癖。 当他们的主要提供商在产品演示期间达到速率限制时,整个系统崩溃了。 没有后备。 没有警报。 只是愤怒的用户。这种情况在整个行业每天都在重复。 截至 2026 年 5 月,有60 多家活跃的法学硕士提供商提供300 多种模型,具有不同的定价、延迟和功能配置文件。 单独管理这些集成是一项全职工程工作。OpenRouter 通过单个 API 端点解决了这个问题,该端点将您连接到每个主要的 LLM 提供商。 一个 API 密钥。 一个计费仪表板。 一次 SDK 调用可从 GPT-5 切换到 Claude Sonnet 4.5,再到 DeepSeek R1。 它每天路由数百万个请求。在本指南中,您将在 5 分钟内设置 OpenRouter,将其与 Python、Node.js 和 LangChain 集成,查看真实的成本基准,并使用适当的后备链将其部署到生产中。## 什么是 OpenRouter?OpenRouter 是一个统一的 LLM API 网关,可通过单个 OpenAI 兼容端点访问来自 60 多个提供商的 300 多个 AI 模型。 它处理身份验证、负载平衡、自动故障转移和统一计费,因此开发人员可以使用一个 API 密钥和一个代码库调用任何提供商的任何模型。将其视为 LLM API 的“通用适配器”——无需单独与 OpenAI、Anthropic、Google、Meta、Mistral、DeepSeek 和 xAI 集成,您只需编写一个集成即可访问所有这些集成。## OpenRouter 的工作原理### 架构概述OpenRouter 作为您的应用程序和上游 LLM 提供商之间的 代理层 运行:```` 您的应用程序 → OpenRouter Gateway → 提供商(OpenAI / Anthropic / Google / …) ↓ [后备提供商] ↓ [免费级别提供商]
2. **响应标准化** - 以 OpenAI 兼容格式返回结果,无论上游提供商如何
3. **自动回退** - 使用备份模型或提供程序重试失败的请求
4. **统一计费** — 将所有提供商的使用情况汇总到一个信用余额中### OpenRouter 价值管道````
提供商集成层
├── 60+ 提供商端点(OpenAI、Anthropic、Google、Meta、Mistral、xAI、DeepSeek...)
├── 每个提供商的认证管理
├── 评分l```
提供商集成层
├── 60+ 提供商端点(OpenAI、Anthropic、Google、Meta、Mistral、xAI、DeepSeek...)
├── 每个提供商的认证管理
├── 速率限制跟踪和重试逻辑
└── 提供者健康监测

网关核心
├── OpenAI兼容的API格式
├── 请求验证和转换
├── 自动故障转移链
├── 跨区域负载均衡
└── 延迟优化

开发者界面
├── 单一API密钥
├── 通过“model”参数选择模型
├── 使用情况分析仪表板
├── 每个模型的成本跟踪
└── 用于最终用户计费的 OAuth
``具有速率限制的开源模型 - 足以用于测试和原型设计。````
bas
h
# 安全地存储您的 API 密钥
导出 OPENROUTER_API_KEY="sk-or-v1-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
````### 第 2 步:使用 cURL 进行测试(30 秒)````
bas
h
# 基本聊天完成请求
卷曲-s https://openrouter.ai/api/v1/chat/completions \
-H“授权:承载$OPENROUTER_API_KEY”\
-H“内容类型:application/json”\
-d'{
“模型”:“人类/克劳德-sonnet-4.5”,
“消息”:[
{"role": "user", "content": "用 3 句话解释量子计算"}
]
}'
````响应完全遵循
OpenAI 格式,因此现有代码只需很少的更改。### 第 3 步:Python SDK 设置(2 分钟)````
bas
h
# 不需要特殊的 SDK — 只需使用 OpenAI 客户端
pip 安装 openai>=1.30.0
````````蟒蛇
# openroute```
bas
h
# 安全地存储您的 API 密钥
导出 OPENROUTER_API_KEY="sk-or-v1-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
``` api_key=os.environ.get("OPENROUTER_API_KEY"),
)# 通过 OpenRouter 调用 Claude Sonnet 4.5
响应 = client.chat.completions.create(
模型````
bas
h
# 基本聊天完成请求
卷曲-s https://openrouter.ai/api/v1/chat/completions \
-H“授权:承载$OPENROUTER_API_KEY”\
-H“内容类型:application/json”\
-d'{
“模型”:“人类/克劳德-sonnet-4.5”,
“消息”:[
{"role": "user", "content": "用 3 句话解释量子计算"}
]
}'
```
nt
(f"令牌:{response.usage.total_tokens}")
````运行它:````
bas
h
蟒蛇 openrouter_demo.py
````### 步骤 4:JavaScript/TypeScript 设置````
bas
h
npm 安装 openai
``````打字稿
// openrouter-demo.ts
从“openai”导入OpenAI;const 客户端 = 新 OpenAI({
基本URL:“https://openrouter.ai/api/v1”,
apiKey: process.env.OPENROUTER_API_KEY,
});异步函数 main() {
const 响应 = 等待 client.chat.completions.create({
型号:“openai/gpt-5”,
消息```
bas
h
# 不需要特殊的 SDK — 只需使用 OpenAI 客户端
pip 安装 openai>=1.30.0
```
sole
.log(response.choices[0].message.content);
}主要的();
````###第五步:查询Avail```
pytho
n
# openrouter_demo.py
从 openai 导入 OpenAI
导入操作系统

客户端 = OpenAI(
base_url =“https://openrouter.ai/api/v1”,
api_key=os.environ.get("OPENROUTER_API_KEY"),
)

# 通过 OpenRouter 调用 Claude Sonnet 4.5
响应 = client.chat.completions.create(
模型=“人类/克劳德-sonnet-4.5”,
消息=[
{"role": "system", "content": "你是一个有用的编码助手。"},
{"role": "user", "content": "编写一个 Python 函数来展平嵌套列表"}
],
温度=0.7,
最大令牌=500,
)

打印(响应.选择[0].消息.内容)
print(f"使用的模型:{response.model}")
print(f"令牌:{response.usage.total_tokens}")
```
UTER
_API_KEY"),
openai_api_base="https://openrouter.ai/api/v1",
温度=0.7,
)提示 = ChatPromptTemplate.from_messages([
(“系统”,“你是一位专业的Python开发人员。”),
(“人类”,“{输入}”),
])链=提示| 勒姆result = chain.invoke({"input": "编写一个FastAPI中间件进行速率限制"})
打印(结果.内容)
````### LlamaIndex 集成````蟒蛇
# openrouter_llamaindex.py
从 llama_index.llms.openai 导入 OpenAI 作为 LlamaOpenAI
从 llama_index.core 导入设置llm = 骆驼OpenAI(
模型=“meta-llama/llama-4-maverick”,
api_key=os.environ.get("OPENROUTER_API_KEY"),
api_base="https://openrouter.ai/api/v1",
温度````
bas
h
蟒蛇 openrouter_demo.py
``` 通常使用 LlamaIndex — OpenRouter 处理提供者连接
来回重击
npm 安装 openai
```或StoreIndex,文档d````打字稿
// openrouter-demo.ts
从“openai”导入OpenAI;

const 客户端 = 新 OpenAI({
基本URL:“https://openrouter.ai/api/v1”,
apiKey: process.env.OPENROUTER_API_KEY,
});

异步函数 main() {
const 响应 = 等待 client.chat.completions.create({
型号:“openai/gpt-5”,
消息:[
{ role: "user", content: "编写一个 React useDebounce hook" },
],
});

console.log(response.choices[0].message.content);
}

主要的();
```
penRouter
({
apiKey: process.env.OPENROUTER_API_KEY,
});导出异步函数 POST(req: Request) {
const { messages } = wait req.json();常量结果=streamText({
模型:openrouter(“anthropic/claude-sonnet-4.5”),
消息:等待convertToModelMessages(消息),
系统:“你是一个得力助手。”,
});返回结果.toDataStreamResponse();
}
````### Go SDK 集成``走吧
// openrouter_demo.go
包主导入(
“上下文”
“FMMT”
“操作系统”“吉图```
bas
h
# 列出所有 300 多种型号及其定价
卷曲-s https://openrouter.ai/api/v1/models \
-H“授权:承载$OPENROUTER_API_KEY”| \
jq '.data[] | {id:.id,定价:.pricing}' | 头-50
```_API_KEY")),
)resp, err := client.Chat.Completions.New(context.Background(), openai.ChatCompletionNewParams{
型号:openai.String("google/gemini-3-pro"),
消息: openai.F([]openai.ChatCompletionMessageParamUnion{
openai.UserMessage("解释Go并发模式"),
}),
})
如果错误!= nil {
恐慌(错误)
}fmt.Println(resp.Choices[0].Message.Content)```
pytho
n
# openrouter_langchain.py
从 langchain_openai 导入 ChatOpenAI
从 langchain_core.prompts 导入 ChatPromptTemplate

# 创建一个指向OpenRouter的LangChain模型
llm = ChatOpenAI(
model_name="anthropic/claude-sonnet-4.5",
openai_api_key=os.environ.get("OPENROUTER_API_KEY"),
openai_api_base="https://openrouter.ai/api/v1",
温度=0.7,
)

提示 = ChatPromptTemplate.from_messages([
(“系统”,“你是一位专业的Python开发人员。”),
(“人类”,“{输入}”),
])

链=提示| 勒姆

result = chain.invoke({"input": "编写一个FastAPI中间件进行速率限制"})
打印(结果.内容)
``经常使用
````## 基准/实际用例### 成本比较:Direct Provider 与 OpenRouter| Provider | Model | Direct API Cost (per 1M tokens) | OpenRouter Cost | Difference |
|---|---|---|---|---|
| Anthropic | Claude Sonnet 4.5 | $3.00 / $15.00 | $3.17 / $15.83 | +5.5% markup |
| OpenAI | GPT-5 | $1.25 / $10.00 | $1.32 / $10.55 | +5.5% markup |
| Google | Gemini 3 Pro | $0.50 / $2.00 | $0.53 / $2.11 | +5.5% markup |
| Meta | Llama 4 Maverick | Varies by host | Flat per-token rate | Competitive |
| DeepSeek | DeepSeek R1 | Varies by host | Flat per-token rate | Competitive |**5.5% 的平台费用**是 OpenRouter 的唯一加价。 对于```
pytho
n
# openrouter_llamaindex.py
从 llama_index.llms.openai 导入 OpenAI 作为 LlamaOpenAI
从 llama_index.core 导入设置

llm = 骆驼OpenAI(
模型=“meta-llama/llama-4-maverick”,
api_key=os.environ.get("OPENROUTER_API_KEY"),
api_base="https://openrouter.ai/api/v1",
温度=0.3,
)

设置.llm = llm

# 现在正常使用 LlamaIndex — OpenRouter 处理提供者连接
从 llama_index.core 导入 VectorStoreIndex,文档

docs = [Document(text="OpenRouter 简化了多提供商 LLM 访问。")]
索引 = VectorStoreIndex.from_documents(docs)
query_engine = index.as_query_engine()
response = query_engine.query("OpenRouter 是做什么的?")
打印(响应)
```` 储蓄案例研究一家中型 SaaS 公司每月处理 **5000 万代币**,从管理 5 个独立的提供商集成转向 OpenRouter:| Metric | Before OpenRouter | After OpenRouter |
|---|---|---|
| Monthly API costs | $4,200 | $3,180 |
| Engineering maintenance | 12 hrs/week | 1 hr/week |
| Provider outage incidents | 3/month | 0/month |
| Time to switch models | 2-4 days | 30 seconds |
| **Net savings** | — | **~40%** (cost + time) |节省的成本来自三个因素:适用于非关键工作负载的更便宜的托管开源模型、提供商集成的零工程时间以及自动回退,消除与中断相关的收入损失。## 高级用法/生产强化### 自动Fa```打字稿
// 应用程序/api/chat/route.ts
从“@openrouter/ai-sdk-provider”导入{createOpenRouter};
从“ai”导入{convertToModelMessages,streamText};

const openrouter = createOpenRouter({
apiKey: process.env.OPENROUTER_API_KEY,
});

导出异步函数 POST(req: Request) {
const { messages } = wait req.json();

常量结果=streamText({
模型:openrouter(“anthropic/claude-sonnet-4.5”),
消息:等待convertToModelMessages(消息),
系统:“你是一个得力助手。”,
});

返回结果.toDataStreamResponse();
}

] } )

Anthropic 不可用,OpenRouter 会自动使用 OpenAI 重试,然后使用 Google — 所有这些对您的代码都是透明的。### 使用自定义提供商密钥 (BYOK)对于企业设置,请携带您自己的提供商 API 密钥并仅使用 OpenRouter 进行路由:````
bas
h
# 存储您的直接提供商密钥
卷曲-X POST https://openrouter.ai/api/v1/credentials \
-H“授权:承载$OPENROUTER_API_KEY”\
-H“内容类型:application/json”\
-d'{
“提供者”:“openai”,
“key”:“sk-proj-your-direct-openai-key”
}'
````通过
BYOK,您可以向提供商支付费用``go
// openrouter_demo.go
包主

导入(
“上下文”
“FMMT”
“操作系统”

“github.com/openai/openai-go”
“github.com/openai/openai-go/option”
)

函数主() {
客户端 := openai.NewClient(
选项.WithBaseURL("https://openrouter.ai/api/v1"),
option.WithAPIKey(os.Getenv("OPENROUTER_API_KEY")),
)

resp, err := client.Chat.Completions.New(context.Background(), openai.ChatCompletionNewParams{
型号:openai.String("google/gemini-3-pro"),
消息: openai.F([]openai.ChatCompletionMessageParamUnion{
openai.UserMessage("解释Go并发模式"),
}),
})
如果错误!= nil {
恐慌(错误)
}

fmt.Println(resp.Choices[0].Message.Content)
}
```
n
"}],
额外的身体={
“提供商”:{
“排序”:“吞吐量”,
}
}
)
````### 使用 Docker 自托管部署对于需要完全控制的团队,请在您自己的基础设施上部署与 OpenRouter 兼容的网关:```
dockerfil
e
# Dockerfile.openrouter-proxy
FROM节点:20-alpine工作目录/应用程序
复制包*.json ./
运行 npm install express axios复制 。 。 
曝光 3000
CMD [“节点”,“proxy.js”]

yam l

docker-compose.yml #

版本:“3.8” 服务: openrouter-代理: 构建: 上下文: . dockerfile:Dockerfile.openrouter-proxy 端口:

  • “3000:3000” 环境:
  • OPENROUTER_API_KEY=${OPENROUTER_API_KEY}
  • FALLBACK_MODELS=openai/gpt-5,google/gemini-3-pro
  • CACHE_ENABLED=true 重新启动:除非停止
{```
pytho
n
# 让 OpenRouter 自动选择最佳模型
响应 = client.chat.completions.create(
model="openrouter/auto", # 从 58+ 候选模型中自动选择
消息=[
{"role": "user", "content": "编写 Kubernetes 部署 YAML"}
],
# 可选:添加路由首选项
额外的身体={
“提供商”:{
"sort": "价格", # 或 "吞吐量", "延迟"
}
}
)
print(response.model) # 显示实际使用的模型
```
credits
'] - 使用情况['data']['total_usage']}")
print(f"总使用量:${usage['data']['total_usage']}")
````## 与替代方案的比较| Feature | OpenRouter | LiteLLM | Portkey | Cloudflare AI Gateway | ngrok AI Gateway |
|---|---|---|---|---|
---|
| **Models Supported** | 300+ | 100+ | 250+ | Provider-dependent | Cloud + local |
| **Deployment** | Managed SaaS | Self-hosted OSS | Managed + Self-hosted | Managed (Cloudflare) | Managed |
| **Open Source** | No | Yes (MIT) | Partial | No | Partial |
| **Pricing Model** | Pay-per-use + 5.5% fee | Free self-hosted | Free tier; $49+/mo | Included in CF plans | Free-$20/mo |
| **Auto Fallback** | Yes | Yes | Yes | Yes | Yes |
| **BYOK Support** | Yes (1M free/mo) | Yes | Yes | Yes | Yes |
| **A/B Testing** | No | No | Yes | No | No |
| **Caching** | Basic | Yes | Yes | Yes | Yes |
| **Latency Overhead** | ~20-25ms | ~5-10ms | ~10-15ms | ~15-20ms | ~20-30ms |
| **OAuth for End Users** | Yes | No | No | No | No |
| **Free Tier** | Yes (limited models) | Full (self-hosted) | 10K requests | Free tier | $5 credit |
| **Best For** | Multi-model exploration | Engineering control | Production compliance | Edge-heavy apps | Mixed local/cloud |### 何时选择 OpenRouter- **跨模型原型设计** — 您需要快速测试 10 多个模型,无需单独集成
- **启动成本优化** — 免费套餐+即用即付,无最低限额
- **具有最终用户模型选择的应用程序** — OAuth 流程允许用户自带积分
- **快速回退设置** — 自动故障转移,无需基础设施工作### 何时考虑替代方案- **大批量生产**(>10M 请求/月)- LiteLLM 自托管删除了每个请求的标记
- **企业合规性** — Portkey 提供更好的治理、RBAC 和审计跟踪
- **边缘部署** — Cloudflare AI Gateway 与 Workers 集成以实现全球边缘路由## 局限性/诚实评估OpenRouter 并不完美。 以下是提交之前需要了解的内容:1. **每个代币的加价加起来** - 5.5% 的费用看似很小,但规模较大时就变得很重要。 每月花费 10,000 美元的团队需额外支付 550 美元。 对于大容量工作负载,自托管 LiteLLM 或直接集成更便宜。2. **核心网关没有自托管选项** — 与 LiteLLM 不同,您无法完全自托管 OpenRouter 的路由基础设施。 您的流量通过他们的托管服务,这可能会阻碍严格的数据驻留要求。3. **可观察性有限** - 可以进行基本的使用情况跟踪,但延迟百分位数、错误率趋势或每质量成本指标等深度分析需要第三方“python”
# 生产回退配置
响应 = client.chat.completions.create(
模型=“人类/克劳德-sonnet-4.5”,
messages=[{"role": "user", "content": "关键业务分析..."}],
额外的身体={
“提供商”:{
“顺序”:[“人类”,“OpenAI”,“谷歌”],
“allow_fallbacks”:正确,
},
“模型”:[
“人类/克劳德-十四行诗-4.5”,
“openai/gpt-5”,
“谷歌/gemini-3-pro”,
]
}
)
``` 无法通过统一 API 获得。 您需要这些的直接提供商集成。## 常见问题### OpenRouter 和直接使用提供者 API 有什么区别?OpenRouter是一个统一的代理层。 您无需为每个提供商管理单独的 API 密钥、SDK 和计费,而是使用一次集成来访问 300 多个模型。 代价是 **5.5% 的平台费用**,以换取减少的工程开销和内置的后备路由。 直接集成在规模上更便宜,但需要更多的维护。### OpenRouter 是否存储我的提示或响应?OpenRouter 充当直通代理,不会永久存储大多数提供商的请求内容。 然而,数据p```
bas
h
# 存储您的直接提供商密钥
卷曲-X POST https://openrouter.ai/api/v1/credentials \
-H“授权:承载$OPENROUTER_API_KEY”\
-H“内容类型:application/json”\
-d'{
“提供者”:“openai”,
“key”:“sk-proj-your-direct-openai-key”
}'
``h 警告。 OpenRouter 每天处理数百万个生产请求,正常运行时间为 99.9%。 对于关键任务应用程序,配置后备链、实施客户端重试并监控 [OpenRouter 状态页面](https://status.openrouter.ai/)。 具有严格合规性要求的团队可能更喜欢 LiteLLM 等自托管替代方案。### 免费套餐如何运作?免费层提供对选定开源模型的访问(例如```
pytho
n
# 路由到最便宜的可用模型
响应 = client.chat.completions.create(
型号=“开放路由器/自动”,
messages=[{"role": "user", "content": "总结本文"}],
额外的身体={
“提供商”:{
“排序”:“价格”,
"quantizations": ["fp8", "fp16"], # 首选量化模型
}
}
)

# 路由到最快的模型
响应 = client.chat.completions.create(
型号=“开放路由器/自动”,
messages=[{"role": "user", "content": "快速是/否问题"}],
额外的身体={
“提供商”:{
“排序”:“吞吐量”,
}
}
)
``的?仅更改 API 调用中的“model”参数。 OpenRouter 对所有提供商使用相同的 OpenAI 兼容格式:````蟒蛇
# 相同的代码,不同的模型
model = "anthropic/claude-sonnet-4.5" # 或 "openai/gpt-5" 或 "google/gemini-3-pro"
响应 = client.chat.completions.create(
型号=型号,
messages=[{"角色": "用户", "内容": "你好!"}]
)
````### 如果提供商宕机会发生什么?如果您启用“allow_fallbacks: true”,OpenRouter 会自动重试后备提供程序。 您还可以指定备份模型的有序列表。 如果所有提供程序都失败,OpenRouter 将返回一个结构化错误,以便您的应用程序可以正常处理它。## 结论:立即开始使用 OpenRouter 进行构建OpenRouter 删除 bi```
dockerfil
e
# Dockerfile.openrouter-proxy
FROM节点:20-alpine

工作目录/应用程序
复制包*.json ./
运行 npm install express axios

复制。 。 
曝光 3000
CMD [“节点”,“proxy.js”]
“0+ 提供商**”,具有自动回退、统一计费和零基础设施维护。对于初创公司和原型团队来说,**节省 40% 的总成本**(工程```
yam
l
# docker-compose.yml
版本:“3.8”
服务:
openrouter-代理:
构建:
上下文: .
dockerfile:Dockerfile.openrouter-proxy
端口:
- “3000:3000”
环境:
- OPENROUTER_API_KEY=${OPENROUTER_API_KEY}
- FALLBACK_MODELS=openai/gpt-5,google/gemini-3-pro
- CACHE_ENABLED=true
重新启动:除非停止
``` on DigitalOcean

4.加入[dibi8社区Telegram](https://t.me/dibi8en)每周进行LLM工程讨论## 资料来源和进一步阅读- [OpenRouter官方文档](https://openrouter.ai/docs)
- [OpenRouter API 参考](https://openrouter.ai/docs/api)
- [OpenRouter 与 LiteLLM 比较](https://docs.litellm.ai/docs/proxy)
- [Portkey AI网关文档](https://docs.portkey.ai/)
- [Vercel AI SDK OpenRouter 提供商](https://sdk.vercel.ai/providers/openrouter)







## 推荐```
pytho
n
# 以编程方式跟踪使用情况和成本
导入请求

headers = {"Authorization": f"Bearer {os.environ.get('OPENROUTER_API_KEY')}"}

# 获取使用情况统计信息
用法 = requests.get(
“https://openrouter.ai/api/v1/credits”,
标题=标题
).json()

print(f"剩余积分:${usage['data']['total_credits'] - use['data']['total_usage']}")
print(f"总使用量:${usage['data']['total_usage']}")
``}** — 从中国大陆低延迟访问的香港 VPS。 这与托管 dibi8.com 的 IDC 是同一个 IDC——在生产中经过了实际考验。*附属链接 - 它们不会花费您额外的费用,并且有助于保持 dibi8.com 的运行。*## 附属机构披露本文包含 DigitalOcean
 的附属链接。 如果您通过这些链接注册,我们可能会赚取佣金,而无需您支付额外费用。 所有意见和基准均经过独立验证。 产品推荐基于实际技术评估,而不是附属可用性。<!--自动引用-->
## 参考文献和来源- [LiteLLM](https://github.com/BerriAI/litellm)
- [LangChain](https://github.com/langchain-ai/langchain)
- [LlamaIndex](https://github.com/run-llama/llama_index)
- [Vercel AI SDK](https://github.com/vercel/ai)
- [OpenRouter AI SDK 提供商](https://github.com/OpenRouterTeam/ai-sdk-provider)
- [OpenAI Go SDK](https://github.com/openai/openai-go)
- [Portkey AI网关](https://github.com/Portkey-AI/gateway)
````蟒蛇
# 相同的代码,不同的模型
model = "anthropic/claude-sonnet-4.5" # 或 "openai/gpt-5" 或 "google/gemini-3-pro"
响应 = client.chat.completions.create(
型号=型号,
messages=[{"角色": "用户", "内容": "你好!"}]
)

💬 留言讨论