Skip to content

modelgate/modelgate

Repository files navigation

ModelGate Logo

一个企业级大模型 API 网关与管理平台


Go Version Vue Version License

ModelGate 是一个功能完整的企业级大模型 API 网关,提供统一的接口来管理和转发到多个大模型服务(OpenAI、Anthropic、DeepSeek、智谱等)。支持用户管理、API 密钥管理、计费系统、请求记录等完整功能。


项目简介

ModelGate 采用前后端分离架构,由以下两部分组成:

  • 后端服务 (/) - 基于 Go 语言开发,包含 API 转发服务和管理后台服务
  • Web 管理后台 (/web) - 基于 Vue 3 + TypeScript + NaiveUI 开发的现代化管理界面

核心功能

  • 多模型支持 - 支持 OpenAI、Anthropic、智谱 (Zhipu AI) 等多个大模型提供商
  • 接口转发 - 提供统一的 API 接口,智能转发到不同的大模型服务
  • 用户管理 - 完整的用户注册、登录、认证授权系统
  • API 密钥管理 - 用户 API 密钥的创建、管理和权限控制
  • 供应商管理 - 管理不同的大模型供应商及其配置
  • 模型管理 - 管理不同供应商的 AI 模型配置和定价
  • 计费系统 - 基于 Token 使用量的计费和账户流水管理
  • 请求记录 - 完整的 API 请求历史记录和查询
  • 流式响应 - 支持流式和非流式响应模式
  • 速率限制 - 内置请求速率限制功能
  • Redis 缓存 - 支持 Redis 缓存提升性能

项目截图

项目截图

技术栈

后端

技术 说明
Go 1.26 开发语言
Gin REST API 框架
Connect RPC gRPC-Web 框架
GORM 数据库 ORM
JWT 认证授权
samber/do 依赖注入
Viper 配置管理
Logrus 日志
Redis 缓存
Cobra 命令行工具
Protocol Buffers 接口定义

前端

技术 说明
Vue 3.5+ 前端框架
TypeScript 5.8+ 类型系统
Vite 6.3+ 构建工具
Naive UI 2.41+ UI 组件库
UnoCSS 原子化 CSS
Pinia 3.0+ 状态管理
Vue Router 4.5+ 路由管理
Vue I18n 11.1+ 国际化
ConnectRPC gRPC-Web 客户端
ECharts 5.6+ 图表库

快速开始

环境要求

后端:

  • Go 1.26+
  • MySQL 5.7+
  • Redis 6.0+
  • (可选) Docker

前端:

  • Node.js 18.20.0+
  • pnpm 8.7.0+

后端服务

1. 安装依赖

# 克隆仓库
git clone https://github.com/modelgate/modelgate.git
cd modelgate

# 安装 Go 依赖
go mod download

# 安装工具
go install github.com/bufbuild/buf/cmd/[email protected]
go install google.golang.org/protobuf/cmd/[email protected]
go install connectrpc.com/connect/cmd/[email protected]
npm install -g @bufbuild/[email protected]

# 生成 Protobuf 代码
buf generate

2. 配置

复制并编辑环境变量:

cp .env.example .env

编辑 .envconfigs/config.toml

[apiServer]
port = 8088

[adminServer]
port = 8080

[database]
type = "mysql"
host = "127.0.0.1"
port = 3306
name = "modelgate"
user = "your_user"
password = "your_password"

[redis]
host = "localhost"
port = 6379

3. 数据库迁移

go run cmd/main.go migrate

4. 启动服务

# 启动 API 转发服务 (端口 8088)
go run cmd/main.go api

# 启动管理后台服务 (端口 8080)
go run cmd/main.go admin

# 同时启动两个服务
go run cmd/main.go all

前端项目

1. 安装依赖

cd web
pnpm install

2. 配置

编辑 web/.env,设置后端服务地址:

VITE_PUBLIC_GRPC_SERVICE_URL="http://localhost:8080/api"

3. 启动开发服务器

pnpm dev

访问 http://localhost:9527

4. 构建生产版本

pnpm build

Docker 部署

使用 Docker Compose

# 启动所有服务
docker-compose -f deployments/docker-compose.yaml up -d

手动构建

# 构建镜像
docker build -t modelgate:latest .

# 运行容器
docker run -d \
  -p 8088:8088 \
  -p 8080:8080 \
  -e MG_KEY_SECRET=your_key_secret \
  -e MG_DATABASE_HOST=your_db_host \
  -e MG_DATABASE_PASSWORD=your_db_password \
  -e MG_DATABASE_USER=your_db_user \
  -e MG_DATABASE_NAME=your_db_name \
  -e MG_DATABASE_PORT=your_db_port \
  -e MG_REDIS_HOST=your_redis_host \
  -e MG_REDIS_PASSWORD=your_redis_password \
  modelgate:latest

访问地址

  • API 转发服务: http://localhost:8088
  • 管理后台服务: http://localhost:8080
  • 默认账号:admin
  • 默认密码:123456

开发指南

后端开发

开发热重载

使用 gowatch

gowatch

Protobuf 开发

# 更新 Protobuf 定义后重新生成代码
buf generate

# 验证 Protobuf 文件
buf lint

运行测试

go test ./...
go test -cover ./...

前端开发

cd web

# 代码检查
pnpm lint

# 类型检查
pnpm typecheck

# Git 提交 (遵循 Conventional Commits)
pnpm commit:zh

命令行接口

# 查看帮助
go run cmd/main.go --help

# 启动 API 转发服务
go run cmd/main.go api

# 启动管理后台
go run cmd/main.go admin

# 同时启动两个服务
go run cmd/main.go all

# 数据库迁移
go run cmd/main.go migrate

服务端口

服务 端口 说明
API 转发服务 8088 OpenAI 兼容的 API 接口
管理后台服务 8080 gRPC-Web 管理接口
Web 前端 9527 管理后台界面

浏览器支持

推荐使用最新版 Chrome 浏览器进行开发。

Chrome Edge Firefox Safari
last 2 versions last 2 versions last 2 versions last 2 versions

许可证

MIT License - 详见 LICENSE 文件


微信群

贡献

欢迎提交 Issue 和 Pull Request!


联系方式

如有问题或建议,请提交 Issue。


Made with ❤️ by ModelGate Team

About

ModelGate 是一个大模型 API 网关,提供统一的接口来管理和转发到多个大模型服务(OpenAI、Anthropic、DeepSeek、智谱等)。支持用户管理、API 密钥管理、计费系统、请求记录等完整功能。

Resources

License

Stars

16 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors