llmio
by atopos31
LLM API Load Balancing Gateway
# Add to your Claude Code skills
git clone https://github.com/atopos31/llmioLLMIO
LLMIO 是一个基于 Go 的 LLM 负载均衡网关,为你的 LLM 客户端 ( claude code / codex / gemini cli / cherry studio / open webui ) 提供统一的 REST API、权重调度、日志记录与现代化管理界面,帮助你在一个服务中整合 OpenAI、Anthropic、Gemini 等不同模型能力。
架构图
功能特性
- 统一 API:兼容 OpenAI Chat Completions、OpenAI Responses 、Gemini Native 与 Anthropic Messages 格式,支持透传流式与非流式响应。
- 权重调度:
balancers/提供两种调度策略(根据权重大小随机/根据权重高低优先),可按工具调用、结构化输出、多模态能力做智能分发。 - 可视化管理后台:Web UI(React + TypeScript + Tailwind + Vite)覆盖提供商、模型、关联、日志与指标。
- 速率与失败处理:内建速率限制兜底与提供商连通性检测,保证故障隔离。
- 本地持久化:通过纯 Go 实现的 SQLite (
db/llmio.db) 保存配置和调用记录,开箱即用。
部署
Docker Compose (推荐)
services:
llmio:
image: atopos31/llmio:latest
ports:
- 7070:7070
volumes:
- ./db:/app/db
environment:
- GIN_MODE=release
- TOKEN=<YOUR_TOKEN>
- TZ=Asia/Shanghai
docker compose up -d
Docker
docker run -d \
--name llmio \
-p 7070:7070 \
-v $(pwd)/db:/app/db \
-e GIN_MODE=release \
-e TOKEN=<YOUR_TOKEN> \
-e TZ=Asia/Shanghai \
atopos31/llmio:latest
本地运行
前往 releases 下载对应操作系统及cpu架构的压缩包(版本大于0.5.13),这里以 linux amd64 为例。
wget https://github.com/atopos31/llmio/releases/download/v0.5.13/llmio_0.5.13_linux_amd64.tar.gz
解压
tar -xzf ./llmio_0.5.13_linux_amd64.tar.gz
启动
GIN_MODE=release TOKEN=<YOUR_TOKEN> ./llmio
运行后会自动在当前目录下创建 ./db/llmio.db 作为 sqlite 持久化数据文件。
环境变量
| 变量 | 说明 | 默认值 | 备注 |
|------|------|--------|------|
| TOKEN | 控制台登录与 /openai /anthropic /gemini /v1 等 API 鉴权凭证 | 无 | 公网访问必填 |
| GIN_MODE | 控制 Gin 运行模式 | debug | 线上请设置为 release 获得最佳性能 |
| LLMIO_SERVER_PORT | 服务监听端口 | 7070 | 服务监听端口 |
| TZ | 时区设置,用于日志与任务调度 | 宿主机默认值 | 建议在容器环境中显式指定,如 Asia/Shanghai |
| DB_VACUUM | 启动时执行 SQLite VACUUM 回收空间 | 不执行 | 设置为 true 启用,用于优化数据库存储 |
开发
克隆项目
git clone https://github.com/atopos31/llmio.git
cd llmio
编译前端(需要 pnpm 环境)
make webui
运行后端(需要 go 版本 > 1.25.0)
TOKEN=<YOUR_TOKEN> make run
访问入口webui:http://localhost:7070/
API 端点
LLMIO 提供多供应商兼容的 REST API,支持以下端点:
| 供应商 | 端点路径 | 方法 | 功能 | 认证方式 |
|--------|----------|------|------|----------|
| OpenAI | /openai/v1/models | GET | 获取可用模型列表 | Bearer Token |
| OpenAI | /openai/v1/chat/completions | POST | 创建聊天完成 | Bearer Token |
| OpenAI | /openai/v1/responses | POST | 创建响应 | Bearer Token |
| Anthropic | /anthropic/v1/models | GET | 获取可用模型列表 | x-api-key |
| Anthropic | /anthropic/v1/messages | POST | 创建消息 | x-api-key |
| Anthropic | /anthropic/v1/messages/count_tokens | POST | 计算Token数量 | x-api-key |
| Gemini | /gemini/v1beta/models | GET | 获取可用模型列表 | x-goog-api-key |
| Gemini | /gemini/v1beta/models/{model}:generateContent | POST | 生成内容 | x-goog-api-key |
| Gemini | /gemini/v1beta/models/{model}:streamGenerateContent | POST | 流式生成内容 | x-goog-api-key |
| 通用 | /v1/models | GET | 获取模型列表(兼容) | ...