Show HN:Miser —— 成本优化的 AI 网关
Miser 是一个基于 Rust 的开源 AI 网关,通过 OpenRouter 将 OpenAI 兼容请求路由到最便宜的可用模型。它支持启发式、本地 LLM、云端 LLM 及混合分类模式,保持无状态设计并透传流式响应。README 还提供了本地运行、评估、API 密钥管理和部署说明。
Show HN 上发布的 Miser 是一个基于 Rust 的开源 AI 网关,目标是通过 OpenRouter 将 OpenAI 兼容请求路由到当前可用的最便宜且能满足要求的模型,从而降低 LLM 调用成本。项目采用无状态架构,能够保留请求中未知的 OpenAI 字段,转发流式响应,并通过 x-miser-* 响应头暴露路由决策元数据。
网关的核心是分类器,支持四种模式:heuristic 使用零成本的本地结构化与正则表达式分类;local_llm 调用兼容 OpenAI 的 Ollama 或本地端点;cloud_llm 使用云端分类器;hybrid 则先使用低延迟启发式结果,仅在不确定时进行有界度的本地/云端模型回退。默认的 hybrid 模式偏保守:当启发式结果置信度高时直接采纳,可选模型调用只针对模糊请求,并具有独立截止时间。
本地运行只需复制环境文件并设置 OPENROUTER_API_KEY,然后通过 cargo run 启动网关。项目提供了 OpenCode 配置示例,将 baseURL 指向 http://127.0.0.1:8787/v1,模型选择 miser/auto。对外暴露的端点包括 POST /v1/chat/completions、GET /v1/models 和两个健康检查端点 /health/live 与 /health/ready。
评估方面,项目维护了版本化的语料库 evals/cases.jsonl,通过 cargo run -p miser-evals -- --mode heuristic 运行评估,报告精确、相邻层级准确率以及混淆矩阵。官方 VPS 基准测试于 2026-08-09 在 2 vCPU、7.8 GiB 内存、无 GPU 的机器上进行,Rust 启发式策略在 25 个测试用例上达到 92.0% 的精确准确率和 92.0% 的相邻准确率,欠路由率为 0.0%,未出现失败案例。
API 密钥管理方面,项目提供管理员端点用于创建、列出和删除用户密钥:通过 POST /admin/keys 创建,GET /admin/keys 列出,DELETE /admin/keys/{key_id} 删除。每个请求都会使用恒定时间哈希比较验证密钥,原始密钥仅在创建时返回一次。配置 OpenAI 兼容客户端时,只需将 baseURL 改为 https://miser.rajeev.me/v1 并填入生成的 miser_ 开头的密钥即可。
部署上,仓库包含生成非 root 镜像的 Dockerfile,并提供了加固版 systemd 单元 deploy/miser.service。建议将 config/miser.toml 和权限为 600 的包含 OPENROUTER_API_KEY 的环境文件复制到服务器。项目还保留了最初用 Bun/TypeScript 编写的原型(prototypes/typescript),供对比和迁移参考。开发流程使用 cargo fmt、check、test 和 clippy 保证代码质量;项目以 MIT 许可证发布。