diff --git a/qianwen-aiflow b/qianwen-aiflow new file mode 100644 index 0000000..f764ebf --- /dev/null +++ b/qianwen-aiflow @@ -0,0 +1,161 @@ +# 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** 组合,避免引入不必要的新技术栈。 +