Files
ai-paas-comparison/qianwen-aiflow
T
2026-06-27 15:34:11 +08:00

162 lines
8.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AI PaaS 商业平台开发需求与设计说明书
## 1. 项目背景与目标
本项目旨在构建一套面向个人开发者及中小企业的 **AI PaaS 商业平台**,提供从 Agent 创建、技能交易到多端接入的全链路 AI 能力服务。
**核心目标:**
1. **能力服务化**:将 Agent、MCP、Skills 等 AI 能力封装为标准 API,支持一键部署与调用。
2. **商业闭环**:实现“订阅 + 按量”混合计费,支持多租户隔离与自动化账单。
3. **生态开放**:提供 Skills 市场与 IMBot 接入,构建开发者与用户的双边市场。
4. **工程化落地**:基于 **Qoder** 开发工具,采用“核心自研 + 开源集成”策略,确保 16 周内完成 MVP 上线。
---
## 2. 整体架构概述
平台采用 **微服务 + 云原生** 架构,严格遵循“核心业务自研,基础设施开源”的原则。
### 2.1 架构分层
| 层级 | 核心组件 | 实施策略 | 关键说明 |
| ------ |------ |------ |------ |
| **接入层** | Web 门户 / CLI / IMBot | **自研** | 统一用户入口,多端适配(微信/钉钉/钉钉) |
| **业务层** | Agent 工作台 / Skills 市场 / 计费中心 | **自研** | 平台核心商业逻辑,涉及资金与权限,必须自研 |
| **中间件层** | API Gateway / LLM Router / 注册中心 | **自研 + 封装** | 流量治理与模型路由需自研策略,底层复用 Kong/Nginx |
| **能力层** | Agent Runtime / RAG / MCP Server | **开源集成** | 复用 LangFlow、Milvus、vLLM 等成熟开源方案 |
| **基础设施** | K8s / 数据库 / 消息队列 | **开源/云原生** | PostgreSQL, Redis, Kafka, Prometheus |
### 2.2 自研与开源边界
- **必须自研(护城河):**
- **混合计费引擎**:支持 Token 消耗、API 调用次数、订阅套餐的实时扣费与熔断。
- **多租户治理**:基于 `tenant_id` 的数据隔离、资源配额(Quota)控制、RBAC 权限模型。
- **LLM 智能路由**:基于成本、延迟、模型能力的动态路由策略及故障自动转移。
- **禁止自研(复用开源):**
- **向量检索**:使用 **Milvus** 或 **ChromaDB**,不自行实现向量索引。
- **模型推理**:使用 **vLLM** 或 **SGLang** 作为推理后端,不自行实现 Attention 算子。
- **工作流引擎**:使用 **Temporal** 或 **LangFlow** 处理 Agent 编排,不自行实现状态机。
---
## 3. 核心模块详细设计
### 3.1 平台底座
- **认证授权**:OAuth 2.0 + JWT。支持 GitHub/微信第三方登录。
- **多租户架构**:
- 数据库:PostgreSQL,采用 `Schema` 隔离或 `Row-Level Security` (RLS)。
- 资源隔离:K8s Namespace 隔离或 Cgroup 资源限制。
- **Dashboard**:
- 用户侧:API Key 管理、用量图表、账单详情、Agent 部署状态。
- 管理侧:用户审核、全局监控、内容安全审计、系统配置。
### 3.2 订阅计费系统
- **计费模型**:
- **Subscription**:月付/年付,包含基础 Token 额度(如 100万 Tokens/月)。
- **Pay-as-you-go**:超出额度后,按 `Price per 1k Tokens` 或 `Price per Request` 计费。
- **支付集成**:
- 国内:支付宝/微信(通过 Ping++ 或 Stripe 中国)。
- 国际:Stripe。
- **实时性**:
- 使用 Redis 缓存当前用量,Kafka 异步消费日志进行持久化与账单生成。
- **熔断机制**:当 `Used > Quota + Buffer` 时,API Gateway 立即拦截请求。
### 3.3 标准化中间件(核心)
- **能力注册中心**:
- 所有 AI 能力(Agent/Skill/MCP)注册为 `Capability` 对象。
- 元数据:`{id, name, version, type, endpoint, pricing_model, schema}`。
- 存储:MongoDB(灵活 Schema)或 PostgreSQL (JSONB)。
- **API Gateway**:
- 基于 **Kong** 或 **APISIX** 二次开发。
- 插件:`jwt-auth`, `rate-limiting`, `ai-billing`, `protocol-transform`。
- **LLM Provider Router**:
- **统一接口**:`POST /v1/chat/completions` (OpenAI 兼容)。
- **路由策略**:
- **Fallback**:主模型超时/5xx -> 自动切换备用模型 -> 记录错误日志。
### 3.4 AI 能力层
- **Agent 编排**:
- 集成 **LangFlow** 或 **Dify** 作为可视化后端,前端自研管理界面。
- 支持 Python/YAML 定义工作流,Docker 容器化执行。
- **MCP 支持**:
- 实现 MCP Server 适配器,将内部 API 暴露为 MCP 资源/工具。
- 支持 SSE/Stdio 传输协议。
- **Skills 市场**:
- 发布流程:Git Repo -> 静态分析 -> 沙箱测试 -> 人工审核 -> 上架。
- 交易:支持免费/付费/订阅,平台抽成 30%。
- **IMBot**:
- 适配器模式:`WeChatAdapter`, `DingTalkAdapter`。
- 消息队列:接收 Webhook -> Kafka -> Agent Runtime -> 回复。
---
## 4. 技术栈选型
| 领域 | 推荐技术 | 选型理由 |
| ------ |------ |------ |
| **后端框架** | **NestJS** (Node) 或 **FastAPI** (Python) | NestJS 适合网关/BFF,FastAPI 适合 AI 服务,生态丰富,Qoder 生成质量高 |
| **前端** | **Next.js** + **Shadcn/UI** | SSR 支持好,组件库美观,开发效率高 |
| **数据库** | **PostgreSQL** + **Redis** | PG 支持 JSONB 和 RLS,Redis 用于缓存/限流/队列 |
| **向量库** | **Milvus** 或 **ChromaDB** | 生产级向量检索,避免自研 |
| **消息队列** | **Kafka** 或 **RabbitMQ** | 解耦计费、日志、IM 消息处理 |
| **推理引擎** | **vLLM** | 高吞吐,PagedAttention,支持连续批处理 |
| **容器编排** | **Kubernetes** | 弹性伸缩,多租户隔离基础 |
| **监控** | **Prometheus** + **Grafana** | 行业标准,Qoder 可生成配置 |
---
## 5. 开发阶段规划
基于 Qoder 辅助开发,预计 **16 周** 完成 MVP:
| 阶段 | 周期 | 核心任务 | Qoder 重点指令 |
| ------ |------ |------ |------ |
| **P0: 骨架** | W1-2 | 项目初始化、DB Schema、Auth 模块、CI/CD | "生成 NestJS 多租户项目结构,包含 TypeORM 配置和 JWT 守卫" |
| **P1: 底座** | W3-6 | 用户中心、API Key 管理、基础 Dashboard | "实现 API Key 的 CRUD 接口,包含权限校验和数据库事务" |
| **P2: 中间件** | W7-10 | API Gateway、LLM Router、计费引擎 | "编写 LLM 路由插件,实现基于 Token 的实时扣费逻辑" |
| **P3: AI 能力** | W11-14 | Agent Runtime、Skills 市场、RAG 集成 | "集成 LangFlow,封装 Agent 执行接口,支持流式输出" |
| **P4: 交付** | W15-16 | 压力测试、安全审计、文档生成、部署 | "生成 K8s Helm Chart,编写 OpenAPI 文档,执行 JMeter 压测脚本" |
---
## 6. 给 Qoder 的具体指令建议
为确保 Qoder 生成的代码符合架构要求,请在 Prompt 中遵循以下规范:
### 6.1 代码规范
- **语言**:后端统一使用 TypeScript (NestJS) 或 Python (FastAPI),禁止混用。
- **类型安全**:必须定义完整的 Interface/Type,禁止使用 `any`。
- **错误处理**:统一使用 `HttpException` 或自定义 `AppException`,禁止裸 `throw`。
- **日志**:使用 `Logger` 服务,关键操作(支付、权限变更)必须记录审计日志。
### 6.2 模块拆分指令
- **不要生成单体文件**:对于计费、路由等复杂模块,要求 Qoder 按 `Controller -> Service -> Repository -> Strategy` 分层。
- **配置外置**:所有密钥、URL、阈值必须从 `ConfigService` 读取,禁止硬编码。
- **接口先行**:先让 Qoder 生成 OpenAPI (Swagger) 定义,确认无误后再实现逻辑。
### 6.3 关键场景 Prompt 示例
**场景:实现 LLM 路由策略**
"请基于 Strategy 模式实现 LLM Provider Router。
**场景:实现计费扣费**
"实现一个基于 Redis + Lua 的原子扣费服务。
### 6.4 验收标准
- **测试覆盖率**:核心模块(计费、路由) > 80%。
- **文档**:每个模块必须有 `README.md` 和 Swagger 文档。
- **安全**:通过 `npm audit` / `pip-audit`,无高危漏洞。
---
**备注**:本文档为 Qoder 开发的上下文基准。在执行具体任务时,请始终引用本架构设计,避免偏离“核心自研、开源集成”的原则。对于未定义的边缘场景,优先选择 **PostgreSQL + Redis + Kafka** 组合,避免引入不必要的新技术栈。