Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

Yu-AI-Router 🚀

企业级 AI 网关平台 | Enterprise-Level AI Gateway

统一接口调用多个主流 AI 模型,支持智能路由、自动故障转移、实时监控

Spring Boot Spring AI Vue JDK License


📖 项目简介

Yu-AI-Router 是一个参考 OpenRouter.ai 设计的企业级 AI 网关平台,提供统一的 API 接口来访问多个主流 AI 模型(通义千问、智谱AI、DeepSeek 等),实现智能路由、自动故障转移、完善的监控体系和 Java SDK 支持。

🎯 核心价值

特性说明价值
🔌 即插即用兼容 OpenAI SDK 格式,一行代码切换模型零学习成本
🛡️ 高可用设计智能重试 + 健康检查 + 自动 Fallback99.9% 可用性
🎯 智能路由支持 auto 模式(成本/速度优先)成本降低 30%+
📊 全链路监控Prometheus + Grafana + TraceId 追踪秒级定位问题
🚀 开发者友好Java SDK + 完整文档 + 示例代码5 分钟上手
💰 消耗透明实时统计 Token 消耗与费用成本可控

✨ 功能特性

核心功能

  • 🤖 多模型接入:支持通义千问、智谱AI、DeepSeek 等主流大模型
  • 💬 在线对话:支持流式响应、多轮对话、上下文管理
  • 🔑 API Key 管理:创建、查看、撤销 API Key,支持调用统计
  • 📊 Token 统计:实时统计每次请求的 Token 消耗
  • 🖼️ AI 绘图:支持通义万相、智谱 CogView 等文生图模型
  • 💳 在线充值:Stripe 支付集成,支持余额管理

高级特性

  • 🔀 智能路由:成本优先 / 速度优先 / 轮询策略
  • ♻️ 自动 Fallback:模型故障自动切换到备用模型
  • ⏱️ 智能重试:指数退避重试策略
  • 🔒 安全防护:IP 黑名单、请求限流、TraceId 追踪
  • 🔌 插件系统:Web 搜索、PDF 解析、图片识别
  • 🗝️ BYOK 支持:用户自带 API Key,直连模型

监控告警

  • 📈 实时监控:QPS、成功率、错误率、延迟分布
  • 📉 Prometheus 指标:完整的业务指标导出
  • 📊 Grafana 大盘:预置监控仪表盘

🛠️ 技术栈

后端技术

技术版本说明
Spring Boot3.5.9核心框架
Spring AI1.1.2AI 模型集成框架
Spring WebFlux-流式响应支持
MyBatis-Flex1.11.1ORM 框架
MySQL8.0+主数据库
Redis + Redisson7+缓存 / Session / 分布式锁
Resilience4j2.2.0熔断器 / 限流
Micrometer-监控指标收集
Knife4j4.4.0API 文档
Stripe31.2.0在线支付

前端技术

技术版本说明
Vue3.5.17前端框架
Vite7.0.0构建工具
Ant Design Vue4.2.6UI 组件库
Pinia3.0.3状态管理
ECharts5.5.0图表组件
Axios1.11.0HTTP 客户端
TypeScript5.8.0类型安全

基础设施

组件说明
Docker + Docker Compose容器化部署
Nginx反向代理 / 负载均衡
Prometheus指标存储
Grafana监控可视化

🏗️ 系统架构

┌─────────────────────────────────────────────────────────────────┐
│                        客户端层                                  │
│   ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────┐        │
│   │ Java SDK │  │ 前端应用  │  │ HTTP API │  │  其他SDK  │        │
│   └────┬─────┘  └────┬─────┘  └────┬─────┘  └────┬─────┘        │
└────────┼─────────────┼─────────────┼─────────────┼──────────────┘
         │             │             │             │
         ▼             ▼             ▼             ▼
┌─────────────────────────────────────────────────────────────────┐
│                     API 网关层                                   │
│  ┌─────────────────────────────────────────────────────────┐    │
│  │                   认证 & 鉴权层                           │    │
│  │     • API Key 验证    • 权限检查    • 配额控制              │   │
│  └──────────────────────────┬──────────────────────────────┘    │
│                              │                                  │
│  ┌──────────────────────────▼──────────────────────────────┐    │
│  │                    智能路由层                             │    │
│  │  • 成本优先路由    • 速度优先路由    • 健康检查              │    │
│  │  • 自动 Fallback   • 负载均衡      • 模型映射              │    │
│  └──────────────────────────┬──────────────────────────────┘    │
│                              │                                  │
│  ┌──────────────────────────▼──────────────────────────────┐    │
│  │                   模型调用层 (Spring AI)                  │    │
│  │  • 统一接口封装    • 流式响应    • 智能重试                 │    │
│  │  • 超时控制        • 响应缓存    • 错误处理                 │    │
│  └───────┬────────────────┬────────────────┬───────────────┘    │
└──────────┼────────────────┼────────────────┼────────────────────┘
           │                │                │
           ▼                ▼                ▼
    ┌──────────┐     ┌──────────┐     ┌──────────┐
    │ 通义千问  │     │  智谱AI   │     │ DeepSeek │  ...更多模型
    └──────────┘     └──────────┘     └──────────┘

📁 项目结构

yu-ai-router/
├── frontend/                        # 前端项目
│   ├── src/
│   │   ├── api/                     # API 接口定义
│   │   ├── components/              # 公共组件
│   │   ├── layouts/                 # 布局组件
│   │   ├── pages/                   # 页面
│   │   │   ├── admin/               # 管理员页面
│   │   │   └── user/                # 用户页面
│   │   ├── router/                  # 路由配置
│   │   └── stores/                  # Pinia 状态管理
│   ├── Dockerfile                   # 前端 Docker 配置
│   └── package.json
├── sql/                             # SQL 脚本
│   └── create_table.sql             # 建表语句
├── src/main/java/com/yupi/airouter/
│   ├── adapter/                     # 模型适配器
│   │   ├── DashscopeAdapter.java    # 通义千问适配器
│   │   ├── DeepSeekAdapter.java     # DeepSeek 适配器
│   │   └── ZhipuAIAdapter.java      # 智谱AI 适配器
│   ├── annotation/                  # 自定义注解
│   ├── aop/                         # AOP 切面
│   ├── config/                      # 配置类
│   ├── controller/                  # 控制器
│   │   ├── ChatController.java      # 对话接口 (OpenAI 兼容)
│   │   ├── ImageController.java     # AI 绘图接口
│   │   └── ...
│   ├── filter/                      # 过滤器
│   ├── mapper/                      # MyBatis Mapper
│   ├── metrics/                     # 监控指标
│   ├── model/                       # 数据模型
│   │   ├── dto/                     # 数据传输对象
│   │   ├── entity/                  # 实体类
│   │   ├── enums/                   # 枚举
│   │   └── vo/                      # 视图对象
│   ├── plugin/                      # 插件系统
│   ├── service/                     # 业务逻辑
│   ├── strategy/                    # 路由策略
│   └── utils/                       # 工具类
├── yu-ai-router-sdk/                # Java SDK
├── docker-compose.yml               # Docker Compose 配置
├── Dockerfile                       # 后端 Docker 配置
├── grafana-dashboard.json           # Grafana 监控大盘
├── prometheus.yml                   # Prometheus 配置
└── pom.xml                          # Maven 配置

🚀 快速开始

环境要求

  • JDK 21+
  • Node.js 22+
  • MySQL 8.0+
  • Redis 7.0+

本地开发

1. 克隆项目

git clone https://github.com/your-repo/yu-ai-router.git
cd yu-ai-router

2. 初始化数据库

# 执行 SQL 脚本创建数据库和表
mysql -u root -p < sql/create_table.sql

3. 配置 AI 模型密钥

修改 src/main/resources/application-local.yml

# 通义千问配置
spring:
  ai:
    dashscope:
      api-key: your-qwen-api-key

# DeepSeek 配置
    deepseek:
      api-key: your-deepseek-api-key

# 智谱AI 配置
    zhipuai:
      api-key: your-zhipu-api-key

4. 启动后端服务

./mvnw spring-boot:run

访问接口文档:http://localhost:8123/api/doc.html

5. 启动前端

cd frontend
npm install
npm run dev

访问前端页面:http://localhost:5173


🐳 Docker 部署

一键部署(推荐)

docker-compose up -d

服务访问地址:

服务地址
前端页面http://localhost
后端 APIhttp://localhost:8123/api
接口文档http://localhost:8123/api/doc.html
Prometheushttp://localhost:9090
Grafanahttp://localhost:3000 (admin/admin)

单独构建

# 构建后端镜像
docker build -t yu-ai-backend .

# 构建前端镜像
cd frontend
docker build -t yu-ai-frontend .

📡 API 使用

对话接口(兼容 OpenAI 格式)

curl -X POST "http://localhost:8123/api/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-your-api-key" \
  -d '{
    "model": "qwen-plus",
    "messages": [
      {"role": "user", "content": "你好"}
    ],
    "stream": true
  }'

支持的模型

模型标识提供商说明
qwen-plus通义千问增强版,性能更强
qwen-turbo通义千问快速版,响应更快
qwen-max通义千问旗舰版,支持深度思考
glm-4.7智谱AI高智能旗舰模型
glm-4.6智谱AI超强性能模型
glm-4.7-flash智谱AI免费模型
deepseek-chatDeepSeek对话模型
deepseek-reasonerDeepSeek支持深度思考
deepseek-coderDeepSeek代码模型

智能路由

# 使用 auto 模式,自动选择最优模型
curl -X POST "http://localhost:8123/api/v1/chat/completions" \
  -H "Authorization: Bearer sk-your-api-key" \
  -d '{
    "model": "auto",
    "messages": [{"role": "user", "content": "你好"}],
    "routing_strategy": "cost_first"
  }'

路由策略:

  • cost_first:成本优先,选择最便宜的健康模型
  • latency_first:速度优先,选择响应最快的模型
  • round_robin:轮询所有健康模型

📦 Java SDK

安装

<dependency>
    <groupId>com.yupi</groupId>
    <artifactId>yu-ai-router-sdk</artifactId>
    <version>1.0.0</version>
</dependency>

使用示例

// 创建客户端
YuAIClient client = YuAIClient.builder()
    .apiKey("sk-your-api-key")
    .baseUrl("http://localhost:8123/api")
    .build();

// 同步调用
String response = client.chat("你好");
System.out.println(response);

// 指定模型
String response = client.chat("你好", "qwen-plus");

// 流式调用
client.chatStream("讲一个故事", new StreamCallback() {
    @Override
    public void onMessage(String content) {
        System.out.print(content);
    }
    
    @Override
    public void onComplete() {
        System.out.println("\n完成");
    }
});

📊 监控指标

Prometheus 指标

指标名称类型说明
ai_gateway_requests_totalCounter请求总数
ai_gateway_request_durationHistogram请求延迟分布
ai_gateway_tokens_totalCounterToken 消耗总数
ai_gateway_model_healthGauge模型健康状态

Grafana 仪表盘

项目提供预置的 Grafana 仪表盘(grafana-dashboard.json),包含:

  • 实时 QPS 曲线
  • 各模型成功率/错误率
  • Token 消耗趋势
  • 平均延迟分布
  • 模型健康状态

🔧 配置说明

应用配置

# application.yml
server:
  port: 8123
  servlet:
    context-path: /api

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/yu_ai_router
    username: root
    password: 123456
  
  data:
    redis:
      host: localhost
      port: 6379

# AI 模型配置
ai:
  routing:
    default-strategy: cost_first  # 默认路由策略
    fallback-enabled: true        # 启用自动 Fallback
    retry-times: 3                # 重试次数
    retry-interval: 1000          # 重试间隔(毫秒)

环境变量

变量名说明默认值
SPRING_PROFILES_ACTIVE激活配置local
SPRING_DATASOURCE_URL数据库连接-
SPRING_DATA_REDIS_HOSTRedis 地址localhost
AI_DASHSCOPE_API_KEY通义千问 Key-
AI_DEEPSEEK_API_KEYDeepSeek Key-
AI_ZHIPU_API_KEY智谱 AI Key-

🗃️ 数据库设计

核心表

表名说明
user用户表
api_keyAPI Key 表
model_provider模型提供者表
model模型表
request_log请求日志表
plugin_config插件配置表
user_provider_key用户自带密钥表(BYOK)

🔐 安全特性

  • API Key 认证:所有 API 请求需携带有效的 API Key
  • 请求限流:支持 API Key 级别和 IP 级别的限流
  • IP 黑名单:可配置 IP 黑名单,防止恶意请求
  • TraceId 追踪:全链路追踪,便于问题排查
  • HTTPS 支持:建议生产环境启用 HTTPS

📝 开发计划

  • 基础功能(用户系统、对话、API Key 管理)
  • 多模型接入(通义千问、智谱AI、DeepSeek)
  • 智能路由与 Fallback
  • 请求限流与 IP 黑名单
  • Java SDK
  • Prometheus + Grafana 监控
  • Stripe 在线支付
  • AI 绘图功能
  • 插件系统(Web 搜索、PDF 解析)
  • BYOK(用户自带密钥)
  • Function Calling 支持
  • Go/Python SDK

🤝 贡献指南

欢迎贡献代码!请遵循以下步骤:

  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 文件。


🙏 致谢


Made with ❤️ by 编程导航学习圈

关于 About

2026 年编程导航 AI 编程实战新项目,基于 Spring Boot 3.5 + Spring AI + Vue 3 的企业级 AI 网关平台,支持多模型统一接入、智能路由策略、自动故障转移、分布式限流防护、Stripe 在线支付与可观测性监控等核心功能。覆盖 Spring AI 多模型适配、SSE 流式响应、Redisson 分布式限流、Prometheus + Grafana 监控、Java SDK 开发、插件系统架构等技术,提供 Java / Go / Python 三种后端版本,给你的简历增加竞争力。

语言 Languages

Java36.8%
Go24.0%
Python23.2%
Vue12.5%
TypeScript2.9%
Dockerfile0.3%
Shell0.2%
HTML0.0%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
43
Total Commits
峰值: 21次/周
Less
More

核心贡献者 Contributors