Skip to content

Repository files navigation

⚡ zero-api

个人自用的大模型 API 中转站 — 轻量、美观、全功能

Build Version Docker Hub

zero-api 是一个基于 Go 的个人大模型 API 中转服务,集 API 中转MITM 代理 于一体,支持多渠道多模型管理、使用统计与费用预估,开箱即用。


功能特性

🔀 API 中转

  • 兼容 OpenAI /v1/chat/completions、Anthropic /v1/messages、OpenAI Responses /v1/responses 接口
  • 自动按模型名路由到对应上游渠道
  • 上游支持 OpenAI 兼容AnthropicGoogle GeminiOpenAI Responses 四种协议适配
  • 请求/响应格式自动转换(下游协议 × 上游协议 全组合,协议一致时原样透传)
  • 功能类接口透传:/v1/embeddings/v1/images/*/v1/audio/*/v1/moderations/v1/batches

🛡️ MITM 代理

  • 集成 ModelProxy 的代理拦截功能
  • 自动生成根 CA 证书,支持 HTTPS 流量劫持
  • 智能识别 LLM 推理请求,仅拦截 AI 流量
  • 非拦截域名直接透传,不影响正常上网

📊 渠道 & 模型管理

  • 管理多个上游渠道(API Key、Base URL)
  • 从上游自动拉取模型列表
  • 为每个模型设置定价(输入/输出 $/1M tokens)
  • 启用/禁用模型

📈 使用统计

  • 记录每次请求的 Token 用量
  • 自动按定价计算费用
  • 按日/按模型/按渠道聚合统计
  • 最近请求明细查看

🎨 管理面板

  • Vue 3 + Naive UI 现代化暗色主题
  • 仪表盘总览
  • 渠道 / 模型 / 代理 / 统计 全功能页面
  • 前端内嵌在 Go 二进制中,单文件部署

快速开始

Docker Compose(推荐)

方式一:直接拉取镜像(无需克隆源码)

# 1. 创建配置目录并下载默认配置
mkdir -p zero-api && cd zero-api
mkdir -p data certs configs
curl -o configs/config.yaml https://raw.githubusercontent.com/NevermindZZT/zero-api/main/configs/config.yaml

# 2. 创建 docker-compose.yml
cat > docker-compose.yml << 'EOF'
services:
  zero-api:
    image: nevermindzzt/zero-api:latest
    container_name: zero-api
    restart: unless-stopped
    ports:
      - "8080:8080"
      - "8520:8520"
    volumes:
      - ./data:/app/data
      - ./certs:/app/certs
      - ./configs:/app/configs:ro
    # 允许容器内的 CLIProxyAPI 使用宿主机上的出站代理
    extra_hosts:
      - "host.docker.internal:host-gateway"
    environment:
      - TZ=Asia/Shanghai
EOF

# 3. 启动
docker compose up -d

# 4. 访问管理面板
# http://localhost:8080

方式二:克隆源码本地构建

# 1. 克隆项目
git clone <your-repo-url> zero-api
cd zero-api

# 2. 构建并启动镜像
docker compose -f docker-compose.yml -f docker-compose.build.yml up -d --build

# 3. 访问管理面板
# http://localhost:8080

版本升级:拉取最新镜像后重新创建容器即可

docker compose pull
docker compose up -d

手动启动

# 1. 构建(Linux/macOS)
go build -o zero-api ./cmd/server/
# Windows
go build -o zero-api.exe ./cmd/server/

# 2. 运行
./zero-api        # Linux/macOS
.\zero-api.exe    # Windows

# 3. 可选:指定配置文件
ZERO_API_CONFIG=/path/to/config.yaml ./zero-api

前端开发

cd web
npm install
npm run dev    # 开发模式(需要后端在 8080 端口运行)
npm run build  # 构建后复制到 cmd/server/web/dist/

配置

默认配置文件 configs/config.yaml

server:
  host: "0.0.0.0"
  port: 8080

proxy:
  enabled: true
  host: "0.0.0.0"
  port: 8520
  intercept_domains:
    - "api.openai.com"
    - "api.anthropic.com"
    - "openrouter.ai"
    - "generativelanguage.googleapis.com"
  smart_intercept_domains: []

database:
  path: "data/zero-api.db"

log_level: "info"

可通过环境变量 ZERO_API_CONFIG 指定配置文件路径。


🔐 默认登录

访问管理面板 http://localhost:8080,使用以下凭据登录:

字段 默认值
用户名 admin
密码 admin123

⚠️ 首次使用请务必修改密码! 在配置文件 configs/config.yaml 中修改 auth.password 字段后重启服务:

auth:
  enabled: true
  username: admin
  password: "你的新密码"
  secret: "改为随机字符串"

API 认证

所有 API 请求需在 Header 中携带 Bearer Token:

Authorization: Bearer <token>

通过登录接口获取 Token:

curl -X POST http://localhost:8080/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"username":"admin","password":"admin123"}'

代理认证

配置系统 HTTP 代理时,如果启用了认证,需在代理设置中输入用户名和密码:

  • 代理地址: your-server:8520
  • 勾选"代理需要密码"
  • 用户名/密码: 与 API 登录凭据相同

使用场景

场景 1:API 中转

客户端配置 zero-api 为 OpenAI API 端点:

Base URL: http://your-server:8080/v1
API Key: (可选,用于透传到上游)

在管理面板中添加渠道并同步模型,设定价后即可使用。

场景 2:MITM 代理

  1. 将浏览器/系统 HTTP 代理设为 your-server:8520
  2. 在管理面板 代理设置 中下载根 CA 证书
  3. 安装 CA 证书到系统受信任根证书颁发机构
  4. 之后访问 AI 提供商的请求会自动被拦截并路由到指定渠道

项目结构

zero-api/
├── cmd/server/          # Go 入口(含 embed 前端)
├── internal/
│   ├── adapter/         # 协议适配器(OpenAI/Anthropic/Gemini)
│   ├── config/          # 配置管理
│   ├── handler/         # HTTP 处理器
│   ├── middleware/      # 中间件(CORS)
│   ├── proxy/           # MITM 代理(证书/路由/服务器)
│   ├── store/           # SQLite 数据层
│   └── upstream/        # 上游模型同步
├── web/                 # Vue 3 前端
├── configs/             # 默认配置文件
├── certs/               # 运行时生成的证书
├── data/                # SQLite 数据库
├── Dockerfile
├── docker-compose.yml
└── Makefile

技术栈

技术
后端语言 Go 1.22+
HTTP 框架 Gin
数据库 SQLite (modernc.org/sqlite) 纯 Go 实现
前端框架 Vue 3 + TypeScript
UI 组件库 Naive UI
证书管理 Go crypto/x509 标准库
容器化 Docker + Docker Compose

许可证

MIT

About

个人大模型 api 中转站

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages