{"repo": "apprentice217/ai-router", "files": {"README.md": {"2068f591a9ba2965fd903e341df0c468351e220d": {"t": 1785746572.0467246, "n": 12871, "h": "7d02c0f101b45828", "c": "# AI-Router 🚀\n\n

\n 䌁䞚级 AI 眑关平台 | Enterprise-Level AI Gateway\n

\n\n

\n 统䞀接口调甚倚䞪䞻流 AI 暡型支持智胜路由、自劚故障蜬移、实时监控\n

\n\n

\n \"Python\"/\n \"FastAPI\"/\n \"Vue\"/\n \"Docker\"/\n \"License\"/\n

\n\n---\n\n## 📖 项目简介\n\nAI-Router 是䞀䞪参考 [OpenRouter.ai](https://openrouter.ai/) 讟计的**䌁䞚级 AI 眑关平台**提䟛统䞀的 API 接口来访问倚䞪䞻流 AI 暡型通义千问、智谱AI、DeepSeek、OpenAI 等实现智胜路由、自劚故障蜬移、完善的监控䜓系和 Python SDK 支持。\n\n### 🎯 栞心价倌\n\n| 特性 | 诎明 | 价倌 |\n|------|------|------|\n| 🔌 **即插即甚** | 兌容 OpenAI SDK 栌匏䞀行代码切换暡型 | 零孊习成本 |\n| 🛡 **高可甚讟计** | 智胜重试 + 健康检查 + 自劚 Fallback | 99.9% 可甚性 |\n| 🎯 **智胜路由** | 支持 auto 暡匏成本/速床䌘先 | 成本降䜎 30%+ |\n| 📊 **党铟路监控** | Prometheus + Grafana + TraceId 远螪 | 秒级定䜍问题 |\n| 🚀 **匀发者友奜** | Python SDK + 完敎文档 + 瀺䟋代码 | 5 分钟䞊手 |\n| 💰 **消耗透明** | 实时统计 Token 消耗䞎莹甚 | 成本可控 |\n\n---\n\n## ✹ 功胜特性\n\n### 栞心功胜\n\n- **🀖 倚暡型接入**支持通义千问、智谱AI、DeepSeek 等䞻流倧暡型\n- **💬 圚线对话**支持流匏响应、倚蜮对话、䞊䞋文管理\n- **🔑 API Key 管理**创建、查看、撀销 API Key支持调甚统计\n- **📊 Token 统计**实时统计每次请求的 Token 消耗\n- **🖌 AI 绘囟**支持通义䞇盞、智谱 CogView 等文生囟暡型\n- **💳 圚线充倌**Stripe 支付集成支持䜙额管理\n\n### 高级特性\n\n- **🔀 智胜路由**成本䌘先 / 速床䌘先 / 蜮询策略\n- **♻ 自劚 Fallback**暡型故障自劚切换到倇甚暡型\n- **⏱ 智胜重试**指数退避重试策略\n- **🔒 安党防技**IP 黑名单、请求限流、TraceId 远螪\n- **🔌 插件系统**Web 搜玢、PDF 解析、囟片识别\n- **🗝 BYOK 支持**甚户自垊 API Key盎连暡型\n\n### 监控告譊\n\n- **📈 实时监控**QPS、成功率、错误率、延迟分垃\n- **📉 Prometheus 指标**完敎的䞚务指标富出\n- **📊 Grafana 倧盘**预眮监控仪衚盘\n\n---\n\n## 🛠 技术栈\n\n### 后端技术\n\n| 技术 | 版本 | 诎明 |\n|------|------|------|\n| Python | 3.12+ | 猖皋语蚀 |\n| FastAPI | 0.104+ | 匂步 Web 框架 |\n| SQLAlchemy | 2.0+ | ORM 框架 |\n| Pydantic | 2.0+ | 数据验证 |\n| httpx | 0.25+ | 匂步 HTTP 客户端 |\n| aiomysql | 0.2.0+ | 匂步 MySQL 驱劚 |\n| Redis | 7+ | 猓存 / Session / 分垃匏锁 |\n| LangChain | 0.1+ | AI 暡型集成框架 |\n| Stripe | 10+ | 圚线支付 |\n| Prometheus | 2.48+ | 指标收集 |\n\n### 前端技术\n\n| 技术 | 版本 | 诎明 |\n|------|------|------|\n| Vue | 3.5.17 | 前端框架 |\n| Vite | 7.0.0 | 构建工具 |\n| Ant Design Vue | 4.2.6 | UI 组件库 |\n| Pinia | 3.0.3 | 状态管理 |\n| ECharts | 5.5.0 | 囟衚组件 |\n| Axios | 1.11.0 | HTTP 客户端 |\n| TypeScript | 5.8.0 | 类型安党 |\n\n### 基础讟斜\n\n| 组件 | 诎明 |\n|------|------|\n| Docker + Docker Compose | 容噚化郚眲 |\n| Nginx | 反向代理 / 莟蜜均衡 |\n| Prometheus | 指标存傚 |\n| Grafana | 监控可视化 |\n\n---\n\n## 🏗 系统架构\n\n```\n┌─────────────────────────────────────────────────────────────────┐\n│ 客户端层 │\n│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │\n│ │ Java SDK │ │ 前端应甚 │ │ HTTP API │ │ 其他SDK │ │\n│ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘ │\n└────────┌─────────────┌─────────────┌─────────────┌──────────────┘\n │ │ │ │\n â–Œ â–Œ â–Œ â–Œ\n┌─────────────────────────────────────────────────────────────────┐\n│ API 眑关层 │\n│ ┌─────────────────────────────────────────────────────────┐ │\n│ │ 讀证 & 鉎权层 │ │\n│ │ • API Key 验证 • 权限检查 • 配额控制 │ │\n│ └──────────────────────────┬──────────────────────────────┘ │\n│ │ │\n│ ┌──────────────────────────▌──────────────────────────────┐ │\n│ │ 智胜路由层 │ │\n│ │ • 成本䌘先路由 • 速床䌘先路由 • 健康检查 │ │\n│ │ • 自劚 Fallback • 莟蜜均衡 • 暡型映射 │ │\n│ └──────────────────────────┬──────────────────────────────┘ │\n│ │ │\n│ ┌──────────────────────────▌──────────────────────────────┐ │\n│ │ 暡型调甚层 (Spring AI) │ │\n│ │ • 统䞀接口封装 • 流匏响应 • 智胜重试 │ │\n│ │ • 超时控制 • 响应猓存 • 错误倄理 │ │\n│ └───────┬────────────────┬────────────────┬───────────────┘ │\n└──────────┌────────────────┌────────────────┌────────────────────┘\n │ │ │\n â–Œ â–Œ â–Œ\n ┌──────────┐ ┌──────────┐ ┌──────────┐\n │ 通义千问 │ │ 智谱AI │ │ DeepSeek │ ...曎倚暡型\n └──────────┘ └──────────┘ └──────────┘\n```\n\n---\n\n## 📁 项目结构\n\n```\nai-router/\n├── frontend/ # 前端项目 (Vue.js)\n│ ├── src/\n│ │ ├── api/ # API 接口定义\n│ │ ├── components/ # 公共组件\n│ │ ├── layouts/ # 垃局组件\n│ │ ├── pages/ # 页面\n│ │ │ ├── admin/ # 管理员页面\n│ │ │ └── user/ # 甚户页面\n│ │ ├── router/ # 路由配眮\n│ │ └── stores/ # Pinia 状态管理\n│ ├── Dockerfile # 前端 Docker 配眮\n│ └── package.json\n├── python-backend/ # Python 后端项目\n│ ├── app/\n│ │ ├── adapter/ # 暡型适配噚\n│ │ │ ├── dashscope_adapter.py # 通义千问适配噚\n│ │ │ ├── deepseek_adapter.py # DeepSeek 适配噚\n│ │ │ ├── openai_adapter.py # OpenAI 适配噚\n│ │ │ ├── zhipu_adapter.py # 智谱AI 适配噚\n│ │ │ └── adapter_factory.py # 适配噚工厂\n│ │ ├── api/ # API 路由 (Controllers)\n│ │ │ ├── apikey.py # API Key 管理\n│ │ │ ├── chat.py # 对话接口 (OpenAI 兌容)\n│ │ │ ├── image.py # AI 绘囟接口\n│ │ │ └── ...\n│ │ ├── models/ # 数据暡型\n│ │ │ ├── schemas/ # Pydantic 数据暡型\n│ │ │ └── db/ # 数据库实䜓\n│ │ ├── services/ # 䞚务逻蟑\n│ │ │ ├── chat_service.py # 对话服务\n│ │ │ ├── routing_service.py # 路由服务\n│ │ │ ├── health_service.py # 健康检查服务\n│ │ │ └── billing_service.py # 计莹服务\n│ │ ├── strategy/ # 路由策略\n│ │ ├── middleware/ # äž­é—Žä»¶ (讀证、限流等)\n│ │ ├── task/ # 匂步任务 (健康检查等)\n│ │ └── utils/ # 工具类\n│ ├── Dockerfile # 后端 Docker 配眮\n│ ├── requirements.txt # Python 䟝赖\n│ ├── run.py # 启劚脚本\n│ └── main.py # FastAPI 䞻文件\n├── yu-ai-router-sdk/ # Python SDK\n│ ├── yu_ai_router_sdk/\n│ │ ├── client.py # 客户端\n│ │ ├── models.py # 数据暡型\n│ │ └── config.py # 配眮\n│ ├── examples/ # 瀺䟋代码\n│ └── pyproject.toml # Python 项目配眮\n├── sql/ # SQL 脚本\n│ └── create_table.sql # 建衚语句\n├── grafana/ # Grafana 配眮\n│ ├── provisioning/\n│ │ ├── dashboards/ # 监控仪衚板\n│ │ └── datasources/ # 数据源配眮\n├── docker-compose.yml # Docker Compose 配眮\n├── prometheus.yml # Prometheus 配眮\n└── README.md # 项目文档\n```\n\n---\n\n## 🚀 快速匀始\n\n### 环境芁求\n\n- Python 3.12+\n- Node.js 22+\n- MySQL 8.0+\n- Redis 7.0+\n\n### 本地匀发\n\n#### 1. 克隆项目\n\n```bash\ngit clone https://github.com/your-repo/ai-router.git\ncd ai-router\n```\n\n#### 2. 初始化数据库\n\n```bash\n# 执行 SQL 脚本创建数据库和衚\nmysql -u root -p < sql/create_table.sql\n```\n\n#### 3. 配眮 Python 后端\n\n进入后端目圕并创建虚拟环境\n\n```bash\ncd python-backend\npython -m venv venv\nsource venv/bin/activate # Windows: venv\\Scripts\\activate\npip install -r requirements.txt\n```\n\n配眮环境变量创建 `.env` 文件\n\n```bash\n# 数据库配眮\nDATABASE_URL=mysql+aiomysql://root:123456@localhost:3306/yu_ai_router\nREDIS_URL=redis://localhost:6379\n\n# AI 暡型配眮\nDASHSCOPE_API_KEY=your-qwen-api-key\nDEEPSEEK_API_KEY=your-deepseek-api-key\nZHIPU_API_KEY=your-zhipu-api-key\nOPENAI_API_KEY=your-openai-api-key\n\n# Stripe 配眮\nSTRIPE_API_KEY=your-stripe-api-key\n```\n\n#### 4. 启劚后端服务\n\n```bash\npython run.py\n```\n\n访问 APIhttp://localhost:8123/api\n\n#### 5. 启劚前端\n\n```bash\ncd frontend\nnpm install\nnpm run dev\n```\n\n访问前端页面http://localhost:5173\n\n---\n\n## 🐳 Docker 郚眲\n\n### 䞀键郚眲掚荐\n\n```bash\ndocker-compose up -d\n```\n\n服务访问地址\n\n| 服务 | 地址 |\n|------|------|\n| 前端页面 | http://localhost |\n| 后端 API | http://localhost:8123/api |\n| Prometheus | http://localhost:9090 |\n| Grafana | http://localhost:3000 (admin/admin) |\n\n### 单独构建\n\n```bash\n# 构建后端镜像\ncd python-backend\ndocker build -t ai-router-backend .\n\n# 构建前端镜像\ncd ../frontend\ndocker build -t ai-router-frontend .\n```\n\n---\n\n## 📡 API 䜿甚\n\n### 对话接口兌容 OpenAI 栌匏\n\n```bash\ncurl -X POST \"http://localhost:8123/api/v1/chat/completions\" \\\n -H \"Content-Type: application/json\" \\\n -H \"Authorization: Bearer sk-your-api-key\" \\\n -d '{\n \"model\": \"qwen-plus\",\n \"messages\": [\n {\"role\": \"user\", \"content\": \"䜠奜\"}\n ],\n \"stream\": true\n }'\n```\n\n### 支持的暡型\n\n| 暡型标识 | 提䟛商 | 诎明 |\n|----------|--------|------|\n| `qwen-plus` | 通义千问 | 增区版性胜曎区 |\n| `qwen-turbo` | 通义千问 | 快速版响应曎快 |\n| `qwen-max` | 通义千问 | 旗舰版支持深床思考 |\n| `glm-4.7` | 智谱AI | 高智胜旗舰暡型 |\n| `glm-4.6` | 智谱AI | 超区性胜暡型 |\n| `glm-4.7-flash` | 智谱AI | 免莹暡型 |\n| `deepseek-chat` | DeepSeek | 对话暡型 |\n| `deepseek-reasoner` | DeepSeek | 支持深床思考 |\n| `deepseek-coder` | DeepSeek | 代码暡型 |\n\n### 智胜路由\n\n```bash\n# 䜿甚 auto 暡匏自劚选择最䌘暡型\ncurl -X POST \"http://localhost:8123/api/v1/chat/completions\" \\\n -H \"Authorization: Bearer sk-your-api-key\" \\\n -d '{\n \"model\": \"auto\",\n \"messages\": [{\"role\": \"user\", \"content\": \"䜠奜\"}],\n \"routing_strategy\": \"cost_first\"\n }'\n```\n\n路由策略\n- `cost_first`成本䌘先选择最䟿宜的健康暡型\n- `latency_first`速床䌘先选择响应最快的暡型\n- `round_robin`蜮询所有健康暡型\n\n---\n\n## 📊 Python SDK\n\n### 安装\n\n```bash\npip install yu-ai-router-sdk\n```\n\n或本地安装\n\n```bash\ncd yu-ai-router-sdk\npip install -e .\n```\n\n### 䜿甚瀺䟋\n\n```python\nfrom yu_ai_router_sdk import AIRouter\n\n# 创建客户端\nclient = AIRouter(\n api_key=\"sk-your-api-key\",\n base_url=\"http://localhost:8123/api\"\n)\n\n# 同步调甚\nresponse = client.chat(\"䜠奜\")\nprint(response)\n\n# 指定暡型\nresponse = client.chat(\"䜠奜\", model=\"qwen-plus\")\nprint(response)\n\n# 流匏调甚\nfor chunk in client.chat_stream(\"讲䞀䞪故事\"):\n print(chunk, end=\"\", flush=True)\n\n# 指定路由策略\nresponse = client.chat(\n \"䜠奜\",\n model=\"auto\",\n routing_strategy=\"cost_first\"\n)\nprint(response)\n```\n\n---\n\n## 📊 监控指标\n\n### Prometheus 指标\n\n| 指标名称 | 类型 | 诎明 |\n|----------|------|------|\n| `ai_gateway_requests_total` | Counter | 请求总数 |\n| `ai_gateway_request_duration` | Histogram | 请求延迟分垃 |\n| `ai_gateway_tokens_total` | Counter | Token 消耗总数 |\n| `ai_gateway_model_health` | Gauge | 暡型健康状态 |\n\n### Grafana 仪衚盘\n\n项目提䟛预眮的 Grafana 仪衚盘`grafana-dashboard.json`包含\n\n- 实时 QPS 曲线\n- 各暡型成功率/错误率\n- Token 消耗趋势\n- 平均延迟分垃\n- 暡型健康状态\n\n---\n\n## 🔧 配眮诎明\n\n### 应甚配眮\n\n圚 `python-backend/.env` 文件䞭配眮\n\n```bash\n# 服务噚配眮\nHOST=0.0.0.0\nPORT=8123\n\n# 数据库配眮\nDATABASE_URL=mysql+aiomysql://root:123456@localhost:3306/yu_ai_router\n\n# Redis 配眮\nREDIS_URL=redis://localhost:6379\n\n# AI 暡型 API Key\nDASHSCOPE_API_KEY=your-qwen-api-key\nDEEPSEEK_API_KEY=your-deepseek-api-key\nZHIPU_API_KEY=your-zhipu-api-key\nOPENAI_API_KEY=your-openai-api-key\n\n# 路由策略\nDEFAULT_ROUTING_STRATEGY=cost_first\nFALLBACK_ENABLED=true\nRETRY_TIMES=3\n\n# Stripe 支付\nSTRIPE_API_KEY=your-stripe-api-key\n```\n\n### 环境变量\n\n| 变量名 | 诎明 | 默讀倌 |\n|--------|------|--------|\n| `DATABASE_URL` | 数据库连接 | - |\n| `REDIS_URL` | Redis 地址 | redis://localhost:6379 |\n| `DASHSCOPE_API_KEY` | 通义千问 Key | - |\n| `DEEPSEEK_API_KEY` | DeepSeek Key | - |\n| `ZHIPU_API_KEY` | 智谱 AI Key | - |\n| `OPENAI_API_KEY` | OpenAI Key | - |\n| `DEFAULT_ROUTING_STRATEGY` | 默讀路由策略 | cost_first |\n| `FALLBACK_ENABLED` | 启甚自劚 Fallback | true |\n| `RETRY_TIMES` | 重试次数 | 3 |\n\n---\n\n## 🗃 数据库讟计\n\n### 栞心衚\n\n| 衚名 | 诎明 |\n|------|------|\n| `user` | 甚户衚 |\n| `api_key` | API Key 衚 |\n| `model_provider` | 暡型提䟛者衚 |\n| `model` | 暡型衚 |\n| `request_log` | 请求日志衚 |\n| `plugin_config` | 插件配眮衚 |\n| `user_provider_key` | 甚户自垊密钥衚BYOK |\n\n---\n\n## 🔐 安党特性\n\n- **API Key 讀证**所有 API 请求需携垊有效的 API Key\n- **请求限流**支持 API Key 级别和 IP 级别的限流\n- **IP 黑名单**可配眮 IP 黑名单防止恶意请求\n- **TraceId 远螪**党铟路远螪䟿于问题排查\n- **HTTPS 支持**建议生产环境启甚 HTTPS\n\n---\n\n## 📝 匀发计划\n\n- [x] 基础功胜甚户系统、对话、API Key 管理\n- [x] 倚暡型接入通义千问、智谱AI、DeepSeek、OpenAI\n- [x] 智胜路由䞎 Fallback\n- [x] 请求限流䞎 IP 黑名单\n- [x] Python SDK\n- [x] Prometheus + Grafana 监控\n- [x] Stripe 圚线支付\n- [x] AI 绘囟功胜\n- [x] 插件系统Web 搜玢、PDF 解析\n- [x] BYOK甚户自垊密钥\n- [ ] Function Calling 支持\n- [ ] Go/Node.js SDK\n\n---\n\n## 🀝 莡献指南\n\n欢迎莡献代码请遵埪以䞋步骀\n\n1. Fork 本仓库\n2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)\n3. 提亀曎改 (`git commit -m 'Add some AmazingFeature'`)\n4. 掚送到分支 (`git push origin feature/AmazingFeature`)\n5. 发起 Pull Request\n\n---\n\n## 📄 匀源协议\n\n本项目采甚 MIT 协议匀源诊见 [LICENSE](LICENSE) 文件。\n\n---\n\n## 🙏 臎谢\n\n- [FastAPI](https://fastapi.tiangolo.com/) - 匂步 Web 框架\n- [LangChain](https://www.langchain.com/) - AI 暡型集成框架\n- [OpenRouter](https://openrouter.ai/) - 产品讟计参考\n- [Ant Design Vue](https://antdv.com/) - UI 组件库\n- [Prometheus](https://prometheus.io/) - 监控指标收集\n- [Grafana](https://grafana.com/) - 可视化仪衚板\n\n---\n\n

\n Made with ❀ by AI Router Contributors\n

\n"}, "0e9fd3aa182d290a25ab7d2d8c442d65467aeaba": {"t": 1785765870.811875, "n": 12871, "h": "7d02c0f101b45828", "c": "# AI-Router 🚀\n\n

\n 䌁䞚级 AI 眑关平台 | Enterprise-Level AI Gateway\n

\n\n

\n 统䞀接口调甚倚䞪䞻流 AI 暡型支持智胜路由、自劚故障蜬移、实时监控\n

\n\n

\n \"Python\"/\n \"FastAPI\"/\n \"Vue\"/\n \"Docker\"/\n \"License\"/\n

\n\n---\n\n## 📖 项目简介\n\nAI-Router 是䞀䞪参考 [OpenRouter.ai](https://openrouter.ai/) 讟计的**䌁䞚级 AI 眑关平台**提䟛统䞀的 API 接口来访问倚䞪䞻流 AI 暡型通义千问、智谱AI、DeepSeek、OpenAI 等实现智胜路由、自劚故障蜬移、完善的监控䜓系和 Python SDK 支持。\n\n### 🎯 栞心价倌\n\n| 特性 | 诎明 | 价倌 |\n|------|------|------|\n| 🔌 **即插即甚** | 兌容 OpenAI SDK 栌匏䞀行代码切换暡型 | 零孊习成本 |\n| 🛡 **高可甚讟计** | 智胜重试 + 健康检查 + 自劚 Fallback | 99.9% 可甚性 |\n| 🎯 **智胜路由** | 支持 auto 暡匏成本/速床䌘先 | 成本降䜎 30%+ |\n| 📊 **党铟路监控** | Prometheus + Grafana + TraceId 远螪 | 秒级定䜍问题 |\n| 🚀 **匀发者友奜** | Python SDK + 完敎文档 + 瀺䟋代码 | 5 分钟䞊手 |\n| 💰 **消耗透明** | 实时统计 Token 消耗䞎莹甚 | 成本可控 |\n\n---\n\n## ✹ 功胜特性\n\n### 栞心功胜\n\n- **🀖 倚暡型接入**支持通义千问、智谱AI、DeepSeek 等䞻流倧暡型\n- **💬 圚线对话**支持流匏响应、倚蜮对话、䞊䞋文管理\n- **🔑 API Key 管理**创建、查看、撀销 API Key支持调甚统计\n- **📊 Token 统计**实时统计每次请求的 Token 消耗\n- **🖌 AI 绘囟**支持通义䞇盞、智谱 CogView 等文生囟暡型\n- **💳 圚线充倌**Stripe 支付集成支持䜙额管理\n\n### 高级特性\n\n- **🔀 智胜路由**成本䌘先 / 速床䌘先 / 蜮询策略\n- **♻ 自劚 Fallback**暡型故障自劚切换到倇甚暡型\n- **⏱ 智胜重试**指数退避重试策略\n- **🔒 安党防技**IP 黑名单、请求限流、TraceId 远螪\n- **🔌 插件系统**Web 搜玢、PDF 解析、囟片识别\n- **🗝 BYOK 支持**甚户自垊 API Key盎连暡型\n\n### 监控告譊\n\n- **📈 实时监控**QPS、成功率、错误率、延迟分垃\n- **📉 Prometheus 指标**完敎的䞚务指标富出\n- **📊 Grafana 倧盘**预眮监控仪衚盘\n\n---\n\n## 🛠 技术栈\n\n### 后端技术\n\n| 技术 | 版本 | 诎明 |\n|------|------|------|\n| Python | 3.12+ | 猖皋语蚀 |\n| FastAPI | 0.104+ | 匂步 Web 框架 |\n| SQLAlchemy | 2.0+ | ORM 框架 |\n| Pydantic | 2.0+ | 数据验证 |\n| httpx | 0.25+ | 匂步 HTTP 客户端 |\n| aiomysql | 0.2.0+ | 匂步 MySQL 驱劚 |\n| Redis | 7+ | 猓存 / Session / 分垃匏锁 |\n| LangChain | 0.1+ | AI 暡型集成框架 |\n| Stripe | 10+ | 圚线支付 |\n| Prometheus | 2.48+ | 指标收集 |\n\n### 前端技术\n\n| 技术 | 版本 | 诎明 |\n|------|------|------|\n| Vue | 3.5.17 | 前端框架 |\n| Vite | 7.0.0 | 构建工具 |\n| Ant Design Vue | 4.2.6 | UI 组件库 |\n| Pinia | 3.0.3 | 状态管理 |\n| ECharts | 5.5.0 | 囟衚组件 |\n| Axios | 1.11.0 | HTTP 客户端 |\n| TypeScript | 5.8.0 | 类型安党 |\n\n### 基础讟斜\n\n| 组件 | 诎明 |\n|------|------|\n| Docker + Docker Compose | 容噚化郚眲 |\n| Nginx | 反向代理 / 莟蜜均衡 |\n| Prometheus | 指标存傚 |\n| Grafana | 监控可视化 |\n\n---\n\n## 🏗 系统架构\n\n```\n┌─────────────────────────────────────────────────────────────────┐\n│ 客户端层 │\n│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │\n│ │ Java SDK │ │ 前端应甚 │ │ HTTP API │ │ 其他SDK │ │\n│ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘ │\n└────────┌─────────────┌─────────────┌─────────────┌──────────────┘\n │ │ │ │\n â–Œ â–Œ â–Œ â–Œ\n┌─────────────────────────────────────────────────────────────────┐\n│ API 眑关层 │\n│ ┌─────────────────────────────────────────────────────────┐ │\n│ │ 讀证 & 鉎权层 │ │\n│ │ • API Key 验证 • 权限检查 • 配额控制 │ │\n│ └──────────────────────────┬──────────────────────────────┘ │\n│ │ │\n│ ┌──────────────────────────▌──────────────────────────────┐ │\n│ │ 智胜路由层 │ │\n│ │ • 成本䌘先路由 • 速床䌘先路由 • 健康检查 │ │\n│ │ • 自劚 Fallback • 莟蜜均衡 • 暡型映射 │ │\n│ └──────────────────────────┬──────────────────────────────┘ │\n│ │ │\n│ ┌──────────────────────────▌──────────────────────────────┐ │\n│ │ 暡型调甚层 (Spring AI) │ │\n│ │ • 统䞀接口封装 • 流匏响应 • 智胜重试 │ │\n│ │ • 超时控制 • 响应猓存 • 错误倄理 │ │\n│ └───────┬────────────────┬────────────────┬───────────────┘ │\n└──────────┌────────────────┌────────────────┌────────────────────┘\n │ │ │\n â–Œ â–Œ â–Œ\n ┌──────────┐ ┌──────────┐ ┌──────────┐\n │ 通义千问 │ │ 智谱AI │ │ DeepSeek │ ...曎倚暡型\n └──────────┘ └──────────┘ └──────────┘\n```\n\n---\n\n## 📁 项目结构\n\n```\nai-router/\n├── frontend/ # 前端项目 (Vue.js)\n│ ├── src/\n│ │ ├── api/ # API 接口定义\n│ │ ├── components/ # 公共组件\n│ │ ├── layouts/ # 垃局组件\n│ │ ├── pages/ # 页面\n│ │ │ ├── admin/ # 管理员页面\n│ │ │ └── user/ # 甚户页面\n│ │ ├── router/ # 路由配眮\n│ │ └── stores/ # Pinia 状态管理\n│ ├── Dockerfile # 前端 Docker 配眮\n│ └── package.json\n├── python-backend/ # Python 后端项目\n│ ├── app/\n│ │ ├── adapter/ # 暡型适配噚\n│ │ │ ├── dashscope_adapter.py # 通义千问适配噚\n│ │ │ ├── deepseek_adapter.py # DeepSeek 适配噚\n│ │ │ ├── openai_adapter.py # OpenAI 适配噚\n│ │ │ ├── zhipu_adapter.py # 智谱AI 适配噚\n│ │ │ └── adapter_factory.py # 适配噚工厂\n│ │ ├── api/ # API 路由 (Controllers)\n│ │ │ ├── apikey.py # API Key 管理\n│ │ │ ├── chat.py # 对话接口 (OpenAI 兌容)\n│ │ │ ├── image.py # AI 绘囟接口\n│ │ │ └── ...\n│ │ ├── models/ # 数据暡型\n│ │ │ ├── schemas/ # Pydantic 数据暡型\n│ │ │ └── db/ # 数据库实䜓\n│ │ ├── services/ # 䞚务逻蟑\n│ │ │ ├── chat_service.py # 对话服务\n│ │ │ ├── routing_service.py # 路由服务\n│ │ │ ├── health_service.py # 健康检查服务\n│ │ │ └── billing_service.py # 计莹服务\n│ │ ├── strategy/ # 路由策略\n│ │ ├── middleware/ # äž­é—Žä»¶ (讀证、限流等)\n│ │ ├── task/ # 匂步任务 (健康检查等)\n│ │ └── utils/ # 工具类\n│ ├── Dockerfile # 后端 Docker 配眮\n│ ├── requirements.txt # Python 䟝赖\n│ ├── run.py # 启劚脚本\n│ └── main.py # FastAPI 䞻文件\n├── yu-ai-router-sdk/ # Python SDK\n│ ├── yu_ai_router_sdk/\n│ │ ├── client.py # 客户端\n│ │ ├── models.py # 数据暡型\n│ │ └── config.py # 配眮\n│ ├── examples/ # 瀺䟋代码\n│ └── pyproject.toml # Python 项目配眮\n├── sql/ # SQL 脚本\n│ └── create_table.sql # 建衚语句\n├── grafana/ # Grafana 配眮\n│ ├── provisioning/\n│ │ ├── dashboards/ # 监控仪衚板\n│ │ └── datasources/ # 数据源配眮\n├── docker-compose.yml # Docker Compose 配眮\n├── prometheus.yml # Prometheus 配眮\n└── README.md # 项目文档\n```\n\n---\n\n## 🚀 快速匀始\n\n### 环境芁求\n\n- Python 3.12+\n- Node.js 22+\n- MySQL 8.0+\n- Redis 7.0+\n\n### 本地匀发\n\n#### 1. 克隆项目\n\n```bash\ngit clone https://github.com/your-repo/ai-router.git\ncd ai-router\n```\n\n#### 2. 初始化数据库\n\n```bash\n# 执行 SQL 脚本创建数据库和衚\nmysql -u root -p < sql/create_table.sql\n```\n\n#### 3. 配眮 Python 后端\n\n进入后端目圕并创建虚拟环境\n\n```bash\ncd python-backend\npython -m venv venv\nsource venv/bin/activate # Windows: venv\\Scripts\\activate\npip install -r requirements.txt\n```\n\n配眮环境变量创建 `.env` 文件\n\n```bash\n# 数据库配眮\nDATABASE_URL=mysql+aiomysql://root:123456@localhost:3306/yu_ai_router\nREDIS_URL=redis://localhost:6379\n\n# AI 暡型配眮\nDASHSCOPE_API_KEY=your-qwen-api-key\nDEEPSEEK_API_KEY=your-deepseek-api-key\nZHIPU_API_KEY=your-zhipu-api-key\nOPENAI_API_KEY=your-openai-api-key\n\n# Stripe 配眮\nSTRIPE_API_KEY=your-stripe-api-key\n```\n\n#### 4. 启劚后端服务\n\n```bash\npython run.py\n```\n\n访问 APIhttp://localhost:8123/api\n\n#### 5. 启劚前端\n\n```bash\ncd frontend\nnpm install\nnpm run dev\n```\n\n访问前端页面http://localhost:5173\n\n---\n\n## 🐳 Docker 郚眲\n\n### 䞀键郚眲掚荐\n\n```bash\ndocker-compose up -d\n```\n\n服务访问地址\n\n| 服务 | 地址 |\n|------|------|\n| 前端页面 | http://localhost |\n| 后端 API | http://localhost:8123/api |\n| Prometheus | http://localhost:9090 |\n| Grafana | http://localhost:3000 (admin/admin) |\n\n### 单独构建\n\n```bash\n# 构建后端镜像\ncd python-backend\ndocker build -t ai-router-backend .\n\n# 构建前端镜像\ncd ../frontend\ndocker build -t ai-router-frontend .\n```\n\n---\n\n## 📡 API 䜿甚\n\n### 对话接口兌容 OpenAI 栌匏\n\n```bash\ncurl -X POST \"http://localhost:8123/api/v1/chat/completions\" \\\n -H \"Content-Type: application/json\" \\\n -H \"Authorization: Bearer sk-your-api-key\" \\\n -d '{\n \"model\": \"qwen-plus\",\n \"messages\": [\n {\"role\": \"user\", \"content\": \"䜠奜\"}\n ],\n \"stream\": true\n }'\n```\n\n### 支持的暡型\n\n| 暡型标识 | 提䟛商 | 诎明 |\n|----------|--------|------|\n| `qwen-plus` | 通义千问 | 增区版性胜曎区 |\n| `qwen-turbo` | 通义千问 | 快速版响应曎快 |\n| `qwen-max` | 通义千问 | 旗舰版支持深床思考 |\n| `glm-4.7` | 智谱AI | 高智胜旗舰暡型 |\n| `glm-4.6` | 智谱AI | 超区性胜暡型 |\n| `glm-4.7-flash` | 智谱AI | 免莹暡型 |\n| `deepseek-chat` | DeepSeek | 对话暡型 |\n| `deepseek-reasoner` | DeepSeek | 支持深床思考 |\n| `deepseek-coder` | DeepSeek | 代码暡型 |\n\n### 智胜路由\n\n```bash\n# 䜿甚 auto 暡匏自劚选择最䌘暡型\ncurl -X POST \"http://localhost:8123/api/v1/chat/completions\" \\\n -H \"Authorization: Bearer sk-your-api-key\" \\\n -d '{\n \"model\": \"auto\",\n \"messages\": [{\"role\": \"user\", \"content\": \"䜠奜\"}],\n \"routing_strategy\": \"cost_first\"\n }'\n```\n\n路由策略\n- `cost_first`成本䌘先选择最䟿宜的健康暡型\n- `latency_first`速床䌘先选择响应最快的暡型\n- `round_robin`蜮询所有健康暡型\n\n---\n\n## 📊 Python SDK\n\n### 安装\n\n```bash\npip install yu-ai-router-sdk\n```\n\n或本地安装\n\n```bash\ncd yu-ai-router-sdk\npip install -e .\n```\n\n### 䜿甚瀺䟋\n\n```python\nfrom yu_ai_router_sdk import AIRouter\n\n# 创建客户端\nclient = AIRouter(\n api_key=\"sk-your-api-key\",\n base_url=\"http://localhost:8123/api\"\n)\n\n# 同步调甚\nresponse = client.chat(\"䜠奜\")\nprint(response)\n\n# 指定暡型\nresponse = client.chat(\"䜠奜\", model=\"qwen-plus\")\nprint(response)\n\n# 流匏调甚\nfor chunk in client.chat_stream(\"讲䞀䞪故事\"):\n print(chunk, end=\"\", flush=True)\n\n# 指定路由策略\nresponse = client.chat(\n \"䜠奜\",\n model=\"auto\",\n routing_strategy=\"cost_first\"\n)\nprint(response)\n```\n\n---\n\n## 📊 监控指标\n\n### Prometheus 指标\n\n| 指标名称 | 类型 | 诎明 |\n|----------|------|------|\n| `ai_gateway_requests_total` | Counter | 请求总数 |\n| `ai_gateway_request_duration` | Histogram | 请求延迟分垃 |\n| `ai_gateway_tokens_total` | Counter | Token 消耗总数 |\n| `ai_gateway_model_health` | Gauge | 暡型健康状态 |\n\n### Grafana 仪衚盘\n\n项目提䟛预眮的 Grafana 仪衚盘`grafana-dashboard.json`包含\n\n- 实时 QPS 曲线\n- 各暡型成功率/错误率\n- Token 消耗趋势\n- 平均延迟分垃\n- 暡型健康状态\n\n---\n\n## 🔧 配眮诎明\n\n### 应甚配眮\n\n圚 `python-backend/.env` 文件䞭配眮\n\n```bash\n# 服务噚配眮\nHOST=0.0.0.0\nPORT=8123\n\n# 数据库配眮\nDATABASE_URL=mysql+aiomysql://root:123456@localhost:3306/yu_ai_router\n\n# Redis 配眮\nREDIS_URL=redis://localhost:6379\n\n# AI 暡型 API Key\nDASHSCOPE_API_KEY=your-qwen-api-key\nDEEPSEEK_API_KEY=your-deepseek-api-key\nZHIPU_API_KEY=your-zhipu-api-key\nOPENAI_API_KEY=your-openai-api-key\n\n# 路由策略\nDEFAULT_ROUTING_STRATEGY=cost_first\nFALLBACK_ENABLED=true\nRETRY_TIMES=3\n\n# Stripe 支付\nSTRIPE_API_KEY=your-stripe-api-key\n```\n\n### 环境变量\n\n| 变量名 | 诎明 | 默讀倌 |\n|--------|------|--------|\n| `DATABASE_URL` | 数据库连接 | - |\n| `REDIS_URL` | Redis 地址 | redis://localhost:6379 |\n| `DASHSCOPE_API_KEY` | 通义千问 Key | - |\n| `DEEPSEEK_API_KEY` | DeepSeek Key | - |\n| `ZHIPU_API_KEY` | 智谱 AI Key | - |\n| `OPENAI_API_KEY` | OpenAI Key | - |\n| `DEFAULT_ROUTING_STRATEGY` | 默讀路由策略 | cost_first |\n| `FALLBACK_ENABLED` | 启甚自劚 Fallback | true |\n| `RETRY_TIMES` | 重试次数 | 3 |\n\n---\n\n## 🗃 数据库讟计\n\n### 栞心衚\n\n| 衚名 | 诎明 |\n|------|------|\n| `user` | 甚户衚 |\n| `api_key` | API Key 衚 |\n| `model_provider` | 暡型提䟛者衚 |\n| `model` | 暡型衚 |\n| `request_log` | 请求日志衚 |\n| `plugin_config` | 插件配眮衚 |\n| `user_provider_key` | 甚户自垊密钥衚BYOK |\n\n---\n\n## 🔐 安党特性\n\n- **API Key 讀证**所有 API 请求需携垊有效的 API Key\n- **请求限流**支持 API Key 级别和 IP 级别的限流\n- **IP 黑名单**可配眮 IP 黑名单防止恶意请求\n- **TraceId 远螪**党铟路远螪䟿于问题排查\n- **HTTPS 支持**建议生产环境启甚 HTTPS\n\n---\n\n## 📝 匀发计划\n\n- [x] 基础功胜甚户系统、对话、API Key 管理\n- [x] 倚暡型接入通义千问、智谱AI、DeepSeek、OpenAI\n- [x] 智胜路由䞎 Fallback\n- [x] 请求限流䞎 IP 黑名单\n- [x] Python SDK\n- [x] Prometheus + Grafana 监控\n- [x] Stripe 圚线支付\n- [x] AI 绘囟功胜\n- [x] 插件系统Web 搜玢、PDF 解析\n- [x] BYOK甚户自垊密钥\n- [ ] Function Calling 支持\n- [ ] Go/Node.js SDK\n\n---\n\n## 🀝 莡献指南\n\n欢迎莡献代码请遵埪以䞋步骀\n\n1. Fork 本仓库\n2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)\n3. 提亀曎改 (`git commit -m 'Add some AmazingFeature'`)\n4. 掚送到分支 (`git push origin feature/AmazingFeature`)\n5. 发起 Pull Request\n\n---\n\n## 📄 匀源协议\n\n本项目采甚 MIT 协议匀源诊见 [LICENSE](LICENSE) 文件。\n\n---\n\n## 🙏 臎谢\n\n- [FastAPI](https://fastapi.tiangolo.com/) - 匂步 Web 框架\n- [LangChain](https://www.langchain.com/) - AI 暡型集成框架\n- [OpenRouter](https://openrouter.ai/) - 产品讟计参考\n- [Ant Design Vue](https://antdv.com/) - UI 组件库\n- [Prometheus](https://prometheus.io/) - 监控指标收集\n- [Grafana](https://grafana.com/) - 可视化仪衚板\n\n---\n\n

\n Made with ❀ by AI Router Contributors\n

\n"}}}}