# skyapi **Repository Path**: jockerzo/skyapi ## Basic Information - **Project Name**: skyapi - **Description**: SKY API - AI Gateway Platform - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-04 - **Last Updated**: 2026-05-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SkyAPI - AI 网关管理系统

SkyAPI Logo

新一代大模型网关与 AI 资产管理平台

release docker GoReportCard stars forks

--- ## 📖 项目简介 SkyAPI 是一个功能强大的 **AI 网关与资产管理平台**,聚合多个 AI 提供商,提供统一的 API 接口。通过 SkyAPI,您可以轻松管理多个 AI 服务商(OpenAI、Claude、Gemini、Azure 等),实现智能路由、负载均衡、计费管理等企业级功能。 ### 🌟 核心价值 - **统一入口**:一个 API 接口,调用所有 AI 模型 - **降低成本**:负载均衡 + 渠道轮询,最大化利用资源 - **简化集成**:兼容 OpenAI 格式,开箱即用 - **企业级功能**:完整的用户管理、配额控制、计费系统 --- ## ✨ 主要特性 ### 🤖 AI 模型支持 | 类别 | 支持的模型/平台 | |------|----------------| | **OpenAI 系列** | GPT-4o, GPT-4o-mini, GPT-4 Turbo, GPT-3.5 Turbo, o1/o3 系列 | | **Anthropic 系列** | Claude 3.5 Sonnet, Claude 3 Opus, Claude 3 Haiku | | **Google 系列** | Gemini 2.0, Gemini 1.5 Pro, Gemini 1.5 Flash, Gemini Flash Thinking | | **Azure OpenAI** | Azure GPT-4, Azure GPT-3.5, Azure DALL-E | | **AWS Bedrock** | Claude on Bedrock, Titan, Llama, Mistral | | **国内大模型** | 智谱 GLM, 百度 ERNIE, 阿里通义, 腾讯混元, 讯飞星火 | | **图像生成** | Midjourney, DALL-E 3, Stable Diffusion, FLUX | | **音频处理** | Whisper, TTS, Suno AI 音乐生成 | | **Embedding** | OpenAI Embeddings, Cohere, Jina | | **其他** | Grok, Perplexity, Cohere, Replicate 等 50+ 提供商 | ### ⚖️ 智能路由 - **加权随机**:按配置权重随机选择渠道 - **轮询模式**:均匀分配请求到各渠道 - **自动重试**:请求失败自动切换到备用渠道 - **模型限流**:用户级别模型访问控制 - **渠道亲和性**:优先使用成功率高的渠道 ### 💰 计费与配额 - **按 Token 计费**:精确统计输入/输出 Token - **缓存计费**:支持 OpenAI、Claude、Gemini 等缓存计费 - **阶梯定价**:支持复杂的价格策略配置 - **多支付方式**:Stripe、易支付、Creem 等 - **订阅管理**:日/周/月订阅套餐 ### 🔐 安全认证 | 认证方式 | 说明 | |---------|------| | **Bearer Token** | 标准 API Token 认证 | | **API Key** | X-API-Key 头认证 | | **OAuth 2.0** | Discord、GitHub、Telegram、LinuxDO | | **OIDC** | OpenID Connect 统一认证 | | **WebAuthn** | Passkey / FIDO2 无密码登录 | | **TOTP** | Google Authenticator 等 TOTP 应用 | | **JWT** | 无状态会话认证 | ### 🌏 国际化 - 🇨🇳 简体中文 - 🇬🇧 English - 🇯🇵 日本語 - 🇫🇷 Français - 🇹🇼 繁體中文 ### 🔄 协议转换 - OpenAI Compatible ⇄ Claude Messages - OpenAI Compatible → Google Gemini - Google Gemini → OpenAI Compatible - 思考模式支持 (Reasoning Effort) --- ## 📁 目录结构 ``` skyapi/ ├── README.md # 项目主文档 ├── LICENSE # MIT 许可证 │ ├── backend/ # Go 后端服务 │ ├── main.go # 程序入口 │ ├── go.mod / go.sum # Go 依赖 │ ├── makefile # 构建脚本 │ ├── Dockerfile # 生产镜像 │ ├── Dockerfile.dev # 开发镜像 │ ├── README.md # 后端文档 │ │ │ ├── controller/ # 控制器层 (API 路由处理) │ ├── service/ # 业务逻辑层 │ ├── model/ # 数据模型层 (GORM) │ ├── middleware/ # 中间件 (认证、日志、限流) │ ├── router/ # 路由配置 │ ├── relay/ # 请求转发适配器 │ │ ├── channel/ # 各平台适配器 (50+) │ │ ├── openai/ # OpenAI 格式 │ │ ├── claude/ # Claude 格式 │ │ └── gemini/ # Gemini 格式 │ │ │ ├── dto/ # 数据传输对象 │ ├── constant/ # 常量定义 │ ├── common/ # 公共工具 │ ├── configs/ # 配置模块 │ ├── types/ # 类型定义 │ ├── setting/ # 设置模块 │ ├── oauth/ # OAuth 提供商 │ ├── i18n/ # 国际化 │ ├── logger/ # 日志模块 │ │ │ ├── deploy/ # 部署脚本 │ └── data/ # 数据存储目录 │ ├── frontend/ # React 前端应用 │ └── default/ # 默认主题 │ ├── package.json # 依赖配置 │ ├── rsbuild.config.ts # 构建配置 │ ├── Dockerfile # 前端镜像 │ ├── nginx.conf # Nginx 配置 │ ├── README.md # 前端文档 │ │ │ ├── public/ # 静态资源 │ │ └── logo.png │ │ │ └── src/ # 源代码 │ ├── main.tsx # React 入口 │ │ │ ├── features/ # 功能模块 │ │ ├── auth/ # 认证模块 │ │ ├── chat/ # 聊天模块 │ │ ├── channels/ # 渠道管理 │ │ ├── dashboard/ # 数据看板 │ │ ├── keys/ # Token 管理 │ │ ├── models/ # 模型管理 │ │ ├── pricing/ # 定价管理 │ │ ├── profile/ # 用户资料 │ │ ├── users/ # 用户管理 │ │ ├── wallet/ # 钱包 │ │ └── playground/ # API 测试台 │ │ │ ├── components/ # 公共组件 │ ├── hooks/ # 自定义 Hooks │ ├── routes/ # 路由配置 │ ├── stores/ # Zustand 状态 │ ├── lib/ # 工具库 │ ├── i18n/ # 国际化 │ └── styles/ # 样式文件 │ ├── deploy/ # 容器化部署 │ ├── docker/ # Docker 配置 │ ├── kubernetes/ # K8s 配置 │ └── scripts/ # 部署脚本 │ ├── docker-compose.yml # 一体化部署(推荐) ├── docker-compose.dev.yml # 开发环境 ├── docker-compose.prod.yml # 生产环境 ├── docker-compose.separate.yml # 前后端分离部署 │ └── docs/ # 项目文档 ├── DEVELOPMENT.md # 开发文档 ├── ARCHITECTURE.md # 架构设计 └── KUBERNETES.md # K8s 部署指南 ``` --- ## 🚀 快速开始 ### 方式一:Docker Compose 一体化部署(推荐) ```bash # 克隆项目 git clone https://gitee.com/jockerzo/skyapi.git cd skyapi # 启动服务(前后端一体) docker-compose up -d # 访问 http://localhost:3000 # 默认管理员: root / 123456 ``` ### 方式二:前后端分离部署 ```bash # 1. 启动后端 cd backend docker-compose up -d backend # 2. 启动前端 cd ../frontend/default docker-compose up -d # 或本地开发 cd frontend/default npm install npm run dev ``` ### 方式三:本地开发 ```bash # 后端 cd backend go mod download go run main.go # 前端 (新终端) cd frontend/default npm install npm run dev ``` --- ## 📡 API 接口文档 ### 支持的接口类型 | 接口类型 | 说明 | 示例 | |---------|------|------| | **Chat Completions** | 对话补全 | OpenAI, Claude, Gemini | | **Responses** | OpenAI Responses 格式 | GPT-4o with Responses | | **Embeddings** | 文本向量化 | text-embedding-3, Cohere | | **Images** | 图像生成 | DALL-E 3, Stable Diffusion | | **Audio** | 语音处理 | Whisper, TTS | | **Rerank** | 文档重排序 | Cohere, Jina | | **Realtime** | 实时对话 | GPT-4o Realtime | ### 主要 API 端点 ```bash # 获取模型列表 GET /api/v1/models # 聊天补全 POST /api/v1/chat/completions # 文本嵌入 POST /api/v1/embeddings # 图像生成 POST /api/v1/images/generations # 用户登录 POST /api/v1/user/login # 用户注册 POST /api/v1/user/register ``` ### API 调用示例 ```bash # cURL 示例 curl https://your-skyapi.com/v1/chat/completions \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-4o", "messages": [{"role": "user", "content": "Hello!"}] }' ``` ```python # Python 示例 import openai client = openai.OpenAI( api_key="your-api-key", base_url="https://your-skyapi.com/v1" ) response = client.chat.completions.create( model="gpt-4o", messages=[{"role": "user", "content": "Hello!"}] ) ``` --- ## ⚙️ 环境变量配置 ### 后端环境变量 | 变量名 | 说明 | 默认值 | |--------|------|--------| | `PORT` | 服务端口 | 3000 | | `SQL_DSN` | 数据库连接字符串 | ./data/ | | `REDIS_CONN_STRING` | Redis 连接字符串 | - | | `SESSION_SECRET` | 会话密钥 | 自动生成 | | `CRYPTO_SECRET` | 加密密钥(Redis 必须) | - | | `DEBUG` | 调试模式 | false | | `MEMORY_CACHE_ENABLED` | 内存缓存 | true | | `SYNC_FREQUENCY` | 配置同步频率(秒) | 60 | | `STREAMING_TIMEOUT` | 流式超时(秒) | 300 | ### 前端环境变量 | 变量名 | 说明 | 默认值 | |--------|------|--------| | `VITE_REACT_APP_SERVER_URL` | 后端 API 地址 | http://localhost:3000 | --- ## 🏗️ 技术栈 ### 后端 | 类别 | 技术选型 | |------|---------| | **语言** | Go 1.22+ | | **框架** | Gin Web Framework | | **ORM** | GORM | | **数据库** | SQLite / MySQL / PostgreSQL | | **缓存** | Redis + 内存缓存 | | **认证** | JWT, WebAuthn, OAuth | ### 前端 | 类别 | 技术选型 | |------|---------| | **框架** | React 19 | | **语言** | TypeScript | | **构建** | Rsbuild | | **路由** | TanStack Router | | **状态** | TanStack Query + Zustand | | **UI** | Radix UI + Tailwind CSS | --- ## 🌐 部署架构 ### 一体化部署 ``` ┌─────────────────────────────────────┐ │ Docker Container │ │ ┌───────────────┬───────────────┐ │ │ │ Frontend │ Backend │ │ │ │ (静态文件) │ (Go) │ │ │ └───────┬───────┴───────┬───────┘ │ │ │ │ │ │ └───────┬───────┘ │ │ ▼ │ │ ┌───────────────┐ │ │ │ SQLite DB │ │ │ └───────────────┘ │ └─────────────────────────────────────┘ ``` ### 前后端分离部署 ``` ┌─────────────┐ │ Nginx │ │ (Frontend) │ │ :8080 │ └──────┬──────┘ │ ┌─────────────────┴─────────────────┐ │ │ ▼ ▼ ┌─────────────┐ ┌─────────────┐ │ Nginx │ │ Backend │ │ (API Proxy) │ │ (Go) │ │ :443 │ │ :3000 │ └─────────────┘ └──────┬──────┘ │ ┌────────────┴────────────┐ ▼ ▼ ┌─────────┐ ┌─────────┐ │ MySQL │ │ Redis │ └─────────┘ └─────────┘ ``` --- ## 🛠️ 开发指南 ### 前置要求 | 组件 | 版本要求 | |------|----------| | Go | 1.22+ | | Node.js | 18+ | | Redis | 7.0+ (可选) | | MySQL | 5.7+ (可选) | | PostgreSQL | 9.6+ (可选) | ### 本地开发 ```bash # 1. 克隆代码 git clone https://gitee.com/jockerzo/skyapi.git cd skyapi # 2. 启动后端 cd backend go mod download go run main.go # 3. 启动前端(新终端) cd frontend/default npm install npm run dev # 4. 访问 http://localhost:3000 ``` ### 构建生产版本 ```bash # 后端构建 cd backend go build -o skyapi main.go # 前端构建 cd frontend/default npm install npm run build ``` ### Docker 构建 ```bash # 构建镜像 docker build -t skyapi/sky-api:latest -f backend/Dockerfile backend/ # 运行容器 docker run -d -p 3000:3000 \ -e SQL_DSN=./data/ \ -v ./data:/app/data \ skyapi/sky-api:latest ``` --- ## 🤝 贡献指南 欢迎各种形式的贡献! ### 贡献方式 - 🐛 报告 Bug - 💡 提出新功能 - 📝 改进文档 - 🔧 提交代码 ### 开发流程 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 创建 Pull Request --- ## 📜 许可证 MIT License - 详见 [LICENSE](LICENSE) 文件 --- ## 🙏 致谢 本项目基于 [NewAPI](https://github.com/QuantumNous/new-api) 开发,感谢原作者的贡献。 --- ## 📞 联系与支持 | 渠道 | 链接 | |------|------| | 🌐 GitHub Issues | https://github.com/skyapi/sky-api/issues | | 💬 GitHub Discussions | https://github.com/skyapi/sky-api/discussions | | 📖 官方文档 | https://docs.skyapi.io | | 🐳 Docker Hub | https://hub.docker.com/r/skyapi/sky-api | ---

如果这个项目对你有帮助,欢迎给我们一个 ⭐️ Star!