llmio

by atopos31

Pending

LLM API Load Balancing Gateway

227stars
17forks
TypeScript
Added 12/27/2025
CLI Toolsclaudeclaude-codecodexgemini-cligogolangnewapiopenai
Installation
# Add to your Claude Code skills
git clone https://github.com/atopos31/llmio
README.md

LLMIO

LLMIO 是一个基于 Go 的 LLM 负载均衡网关,为你的 LLM 客户端 ( claude code / codex / gemini cli / cherry studio / open webui ) 提供统一的 REST API、权重调度、日志记录与现代化管理界面,帮助你在一个服务中整合 OpenAI、Anthropic、Gemini 等不同模型能力。

架构图

LLMIO 架构图

功能特性

  • 统一 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 | 获取模型列表(兼容) | ...