diff --git a/shusheng-aiflow b/shusheng-aiflow new file mode 100644 index 0000000..6b20547 --- /dev/null +++ b/shusheng-aiflow @@ -0,0 +1,384 @@ +# AI PaaS 平台项目规格说明书(专为 Qoder 设计) + +**文档版本:** 1.0 +**适用工具:** Qoder (Quest Mode / Agent Mode) +**目标:** 指导 Qoder 生成代码、设计架构、管理任务,完成 AI PaaS 平台开发 +**策略:** 核心自研 + 外围开源 + +--- + +## 1. 项目概述 (Project Overview) + +**项目名称:** AI PaaS Platform (AIPaaS) +**目标:** 构建一个面向个人用户的 AI 能力服务平台,支持 Agent 创建、MCP 接入、Skills 市场、IM Bot 机器人、CLI 工具及 AI 产品交易。 +**核心差异化:** 能力注册中心、LLM 智能路由、统一计费系统、可视化 Agent 编排。 +**开发模式:** 混合模式(核心逻辑自研,基础设施开源)。 + +--- + +## 2. 开发策略 (Development Strategy) + +### 2.1 自研 vs 开源决策表 + +| 模块 | 策略 | 说明 | Qoder 行动指令 | +|------|------|------|----------------| +| **用户认证** | 70% 开源 + 30% 自研 | 使用 Keycloak,自研租户隔离适配器 | `Configure Keycloak, Build Tenant Adapter` | +| **API Gateway** | 80% 开源 + 20% 自研 | 使用 Kong,自研能力路由与计费插件 | `Setup Kong, Create Custom Plugins` | +| **数据库** | 100% 开源 | PostgreSQL + Redis + Milvus | `Initialize DB Schema, Configure Milvus` | +| **能力注册中心** | 100% 自研 | 核心模块,管理 Agent/MCP/Skill 元数据 | `Build Capability Registry Service` | +| **LLM Provider Router** | 100% 自研 | 核心模块,多模型路由、故障转移、计费 | `Build LLM Router Service` | +| **计费系统** | 100% 自研 | 订阅 + 按量混合计费,对接支付网关 | `Build Billing Service` | +| **Agent 编排引擎** | 100% 自研 | 可视化工作流,类似 LangFlow | `Build Frontend Editor + Backend Executor` | +| **Skills 市场** | 100% 自研 | 发布、审核、交易、分成逻辑 | `Build Skill Marketplace API` | +| **IM Bot 网关** | 100% 自研 | 多平台适配(微信/QQ/钉钉)+ 统一路由 | `Build IM Gateway with Adapters` | +| **知识库 (RAG)** | 开源 + 自研 | Milvus 向量库 + 自研检索逻辑 | `Setup Milvus, Build RAG Service` | +| **基础设施** | 100% 开源 | Docker, K8s, Nginx, Kafka, Prometheus | `Generate Docker Compose, K8s Helm Charts` | + +### 2.2 Qoder 工作流建议 + +1. **阶段一 (架构设计):** 使用 **Qoder Quest Mode**。输入本规格书,生成项目骨架、目录结构、配置文件。 +2. **阶段二 (核心开发):** 使用 **Qoder Agent Mode**。逐模块开发(如先开发认证,再开发注册中心)。 +3. **阶段三 (知识沉淀):** 使用 **Qoder Repo Wiki**。自动生成架构图、API 文档、依赖关系图,并定期更新。 +4. **阶段四 (测试验证):** 使用 **Qoder Code Review** 和 **Test Generation**。确保代码质量。 + +--- + +## 3. 技术栈 (Tech Stack) + +### 3.1 后端服务 +* **核心服务:** Go (1.21+) (高性能,适合网关、Router、注册中心) +* **业务服务:** Python (3.10+) (FastAPI) (适合 Agent 编排、Skills 市场、数据处理) +* **API Gateway:** Kong (3.x) (Lua 插件,高性能) +* **消息队列:** Kafka (高吞吐用量日志) + Redis Stream (轻量任务) +* **任务队列:** Celery (Python) (异步审核、结算) + +### 3.2 前端与工具 +* **Dashboard:** React 18 + TypeScript + Ant Design 5 +* **CLI:** Python (Click 库) +* **开发工具:** Qoder (IDE 插件 / CLI) + +### 3.3 基础设施 +* **数据库:** PostgreSQL 15 (业务数据), Redis 7 (缓存/限流), Milvus 2.4 (向量) +* **认证:** Keycloak 24 (OAuth2.0/OIDC) +* **容器:** Docker + Kubernetes (K8s) +* **存储:** MinIO (S3 兼容,对象存储) +* **监控:** Prometheus + Grafana + ELK Stack +* **CI/CD:** GitHub Actions + +--- + +## 4. 系统架构 (System Architecture) + +### 4.1 逻辑架构图 (文本描述) +``` +[Web Dashboard] [Mobile App] [CLI] + │ + ▼ +[API Gateway (Kong)] ←── [Custom Plugins (Auth, RateLimit, UsageCheck)] + │ + ├─ [Auth Service (Keycloak + Tenant Adapter)] + ├─ [LLM Router (Self-Research)] ←── [LLM Providers (DeepSeek, Qwen, etc.)] + ├─ [Capability Registry (Self-Research)] ←── [Agent/MCP/Skill Services] + ├─ [Billing Service (Self-Research)] ←── [Payment Gateways (Alipay, Stripe)] + ├─ [Usage Tracker (Redis + Kafka)] + └─ [Admin Console (React)] +``` + +### 4.2 多租户隔离策略 +* **数据库:** Shared-schema 模式,所有表增加 `tenant_id` 字段。 +* **ORM:** 自动注入 `tenant_id` 过滤器(MyBatis Plus / GORM)。 +* **认证:** Keycloak Realm 隔离(每个租户独立 Realm)或 单 Realm + 租户标签(推荐单 Realm 降低复杂度,通过 API 层过滤)。 +* **资源:** 独立 Redis Key 命名空间 (`tenant:{id}:usage`)。 + +--- + +## 5. 模块规格说明书 (Module Specifications) + +### 5.1 用户认证与授权 (Auth Service) + +**功能:** +1. OAuth2.0 登录 (微信、QQ、Google) +2. JWT Token 生成 (HS256) +3. API Key 管理系统 (按 tenant 隔离) +4. RBAC 权限 (Admin, User, Developer) + +**Qoder 指令:** +* `Configure Keycloak with OAuth2.0 providers (WeChat, QQ).` +* `Build a Go-based Tenant Adapter for Keycloak to manage tenant isolation.` +* `Implement JWT middleware for API Gateway validation.` +* `Create API Key generation endpoint (POST /api/keys) with revoke support.` + +### 5.2 API Gateway (Kong) + +**功能:** +1. JWT 认证插件 +2. API Key 认证插件 +3. 限流插件 (基于 tenant 的 QPS 限制) +4. 熔断插件 +5. 自定义插件:能力路由 (Capability Router)、用量检查 (Usage Check) + +**Qoder 指令:** +* `Generate Kong configuration file (kong.yml) with services for LLM Router and Capability Registry.` +* `Create a custom Kong plugin in Go for Usage Check (query Redis before routing).` +* `Create a custom Kong plugin for Capability Routing (route based on capability_id header).` + +### 5.3 能力注册中心 (Capability Registry) - **核心自研** + +**功能:** +1. 能力注册 (POST /v1/capabilities/register) +2. 能力查询 (GET /v1/capabilities?tag=travel) +3. 元数据存储 (PostgreSQL) +4. 缓存 (Redis, 5 分钟 TTL) +5. 健康检查 (定期心跳) +6. 版本管理 (语义化版本 v1.0.0) + +**数据模型 (PostgreSQL):** +```sql +CREATE TABLE capabilities ( + id UUID PRIMARY KEY, + tenant_id UUID NOT NULL, + capability_id VARCHAR(100) UNIQUE NOT NULL, -- Agent ID / Skill ID + name VARCHAR(255) NOT NULL, + type VARCHAR(50) NOT NULL, -- 'agent', 'mcp', 'skill', 'bot' + version VARCHAR(20) NOT NULL, + description TEXT, + tags JSONB, + api_endpoint VARCHAR(500), + protocol VARCHAR(20) DEFAULT 'rest', + dependencies JSONB, + status VARCHAR(20) DEFAULT 'active', + created_at TIMESTAMP DEFAULT NOW(), + updated_at TIMESTAMP DEFAULT NOW(), + INDEX idx_tenant_type (tenant_id, type), + INDEX idx_capability_id (capability_id) +); +``` + +**Qoder 指令:** +* `Generate Go service for Capability Registry with CRUD API.` +* `Implement Redis caching layer for capability metadata.` +* `Create API endpoints: POST /v1/capabilities/register, GET /v1/capabilities, DELETE /v1/capabilities/{id}.` +* `Implement semantic versioning validation for registration.` + +### 5.4 LLM Provider Router - **核心自研** + +**功能:** +1. 多模型适配器 (DeepSeek, Qwen, Doubao, Baidu, Yuanbao, Zhipu, Ollama) +2. OpenAI 兼容接口 (POST /v1/chat/completions) +3. 路由策略 (成本优先、性能优先、智能路由) +4. 故障转移 (自动切换备用模型) +5. 用量追踪 (记录输入/输出 Token) + +**Qoder 指令:** +* `Define LLM Provider Interface in Go (ChatCompletion, Stream, HealthCheck).` +* `Implement Adapters for DeepSeek, Qwen, Ollama (follow OpenAI format conversion).` +* `Build Router Service with Strategy Pattern for model selection.` +* `Implement Circuit Breaker for failover using Redis.` +* `Add Usage Tracking hook before calling model adapter (record to Kafka).` + +### 5.5 计费系统 (Billing System) - **核心自研** + +**功能:** +1. 订阅管理 (Free, Pro, Business, Enterprise) +2. Token 配额管理 (月配额、剩余量) +3. 混合计费 (订阅 + 超出部分按量) +4. 支付集成 (支付宝、微信支付、Stripe) +5. 账单生成 (月度) + +**数据模型 (PostgreSQL):** +```sql +CREATE TABLE subscriptions ( + id UUID PRIMARY KEY, + user_id UUID NOT NULL, + tenant_id UUID NOT NULL, + plan_type VARCHAR(20) NOT NULL, -- 'free', 'pro', 'business' + tokens_quota INT, + start_date DATE, + end_date DATE, + status VARCHAR(20) -- 'active', 'expired', 'cancelled' +); + +CREATE TABLE usage_records ( + id UUID PRIMARY KEY, + tenant_id UUID NOT NULL, + capability_id VARCHAR(100), + model_id VARCHAR(50), + input_tokens INT, + output_tokens INT, + cost DECIMAL(10, 4), + timestamp TIMESTAMP +); +``` + +**Qoder 指令:** +* `Generate Billing Service with subscription management API.` +* `Implement Usage Tracker middleware (check quota before allowing API call).` +* `Create Stripe/Alipay webhook handlers for payment confirmation.` +* `Build monthly billing report generator (run via Celery task).` + +### 5.6 Agent 编排引擎 (Agent Engine) + +**功能:** +1. 可视化工作流编辑器 (React) +2. 工作流定义 (JSON/YAML) +3. 执行引擎 (支持异步、重试、断点) +4. 节点类型:LLM 调用、条件分支、循环、工具调用 + +**Qoder 指令:** +* `Create React frontend component for Workflow Editor (drag-and-drop).` +* `Define JSON schema for Workflow Definition (nodes, edges).` +* `Build Go backend executor for workflow definition (parse JSON, execute nodes).` +* `Implement state persistence for long-running workflows (store in PostgreSQL).` + +### 5.7 Skills 市场 (Skills Market) + +**功能:** +1. Skill 发布 (代码包 + 元数据) +2. 安全扫描 (静态分析) +3. 审核流程 (自动 + 人工) +4. 交易 (购买、分成) +5. 版本管理 (v1.0, v1.1) + +**Qoder 指令:** +* `Build Skill Upload Service with code validation (static analysis).` +* `Implement Skill Marketplace API (Publish, Buy, Rate).` +* `Create Admin Dashboard for Skill Review (Approve/Reject).` +* `Implement Revenue Sharing logic (Platform 30%, Developer 70%).` + +### 5.8 IM Bot 网关 (IM Bot Gateway) + +**功能:** +1. 平台适配器 (WeChat, QQ, DingTalk) +2. 统一消息格式 (内部标准化) +3. 会话管理 (跨平台状态) +4. 消息路由 (到对应 Agent) + +**Qoder 指令:** +* `Create Adapter Interface for IM Platforms (WeChatAdapter, QQAdapter).` +* `Implement Message Router to translate platform format to internal format.` +* `Build Session Manager for user conversation state (Redis).` +* `Integrate with LLM Router for AI response generation.` + +--- + +## 6. API 规格 (API Specifications) + +### 6.1 通用头 (Common Headers) +``` +Authorization: Bearer +X-Tenant-ID: +X-User-ID: +Content-Type: application/json +``` + +### 6.2 关键端点 + +| 方法 | 路径 | 描述 | 模块 | +|------|------|------|------| +| `POST` | `/v1/auth/login` | 用户登录 (OAuth2.0) | Auth | +| `POST` | `/v1/auth/keys` | 生成 API Key | Auth | +| `POST` | `/v1/capabilities/register` | 注册能力 (Agent/MCP) | Registry | +| `GET` | `/v1/capabilities/{id}` | 查询能力详情 | Registry | +| `POST` | `/v1/chat/completions` | LLM 统一入口 (Router) | LLM Router | +| `GET` | `/v1/usage/stats` | 用量统计 | Usage Tracker | +| `POST` | `/v1/agents` | 创建 Agent (工作流) | Agent Engine | +| `GET` | `/v1/skills` | 浏览 Skill | Skills Market | +| `POST` | `/v1/skills/{id}/purchase` | 购买 Skill | Billing | +| `POST` | `/v1/im/connect` | IM 机器人连接 | IM Bot | + +--- + +## 7. 开发路线图 (Development Roadmap) + +### 阶段 1:基础架构与核心中间件 (Week 1-4) +* [ ] 项目初始化 (目录结构、CI/CD 配置) +* [ ] 部署基础设施 (Docker Compose: Keycloak, Kong, PostgreSQL, Redis, Milvus) +* [ ] 实现用户认证系统 (Keycloak + Tenant Adapter) +* [ ] 实现 API Gateway (Kong + Auth Plugins) +* [ ] 实现能力注册中心 (CRUD + Redis Cache) + +### 阶段 2:核心 AI 能力与计费 (Week 5-8) +* [ ] 实现 LLM Provider Router (多模型适配 + 路由策略) +* [ ] 实现用量追踪系统 (Redis + Kafka) +* [ ] 实现计费系统 (订阅 + 配额检查 + 支付集成) +* [ ] 实现 Agent 编排引擎 (前端编辑器 + 后端执行器) + +### 阶段 3:市场与集成 (Week 9-12) +* [ ] 实现 Skills 市场 (发布 + 审核 + 交易) +* [ ] 实现 IM Bot 网关 (微信/QQ/钉钉适配) +* [ ] 实现知识库 (RAG + Milvus 集成) +* [ ] 实现 Dashboard (React + 数据展示) + +### 阶段 4:测试与优化 (Week 13-14) +* [ ] 全链路测试 (端到端流程) +* [ ] 性能优化 (限流、缓存、数据库索引) +* [ ] 安全审计 (渗透测试、代码审查) +* [ ] 文档编写 (Repo Wiki, API 文档) + +--- + +## 8. Qoder 交互指南 (How to Use with Qoder) + +### 8.1 初始提问 (Initial Prompt) +**请将以下指令直接发送给 Qoder:** + +> "你是 AI PaaS 平台的架构师。请根据我提供的《AI PaaS 平台项目规格说明书》,使用 Qoder 的 Quest Mode 完成以下任务: +> 1. 生成项目目录结构。 +> 2. 生成 Docker Compose 文件,包含 Keycloak, Kong, PostgreSQL, Redis, Milvus。 +> 3. 生成 PostgreSQL 数据库 schema (users, capabilities, subscriptions, usage_records)。 +> 4. 生成 Go 项目骨架 (capability-registry, llm-router, billing)。 +> 5. 使用 Repo Wiki 保存生成的架构图和依赖关系。 +> 项目核心策略是:核心逻辑自研,基础设施开源。请优先生成基础设施配置和核心中间件骨架。" + +### 8.2 模块开发指令 (Module Specific Prompt) +**当完成基础架构后,逐模块开发时,使用以下格式:** + +> "请开发 [模块名称] 模块。 +> 需求描述:[复制规格书中的功能描述]。 +> 技术栈:[如 Go + PostgreSQL + Redis]。 +> 关键接口:[列出关键 API 端点]。 +> 数据模型:[要求生成 SQL Schema]。 +> 注意事项:[如租户隔离、配额检查、错误处理]。 + 请生成完整的代码文件,并编写单元测试。" + +### 8.3 代码审查与优化 (Code Review) +> "请审查 [文件路径] 的代码。 +> 检查点:[如安全性、性能、租户隔离、错误处理、代码规范]。 +> 建议:[列出具体问题]。 +> 请提供重构建议并生成优化后的代码。" + +### 8.4 Repo Wiki 使用 +> "请分析当前项目结构,生成 Repo Wiki 文档。 +> 内容包括:系统架构图、模块依赖关系图、API 端点列表、数据模型说明。 +> 确保 Wiki 与代码保持同步,每次重大修改后更新 Wiki。" + +--- + +## 9. 可行性验证 (Feasibility Check) + +本方案基于以下前提,确保 Qoder 可执行: +1. **代码生成能力:** Qoder 能够生成 Go/Python/React 代码片段及完整文件。 +2. **配置生成能力:** Qoder 能够编写 Docker Compose、K8s Helm Chart、Kong 配置。 +3. **数据库操作:** Qoder 能够编写 SQL Schema 及 ORM 模型。 +4. **测试生成:** Qoder 能够编写单元测试 (GoTest / PyTest / Jest)。 +5. **迭代开发:** Qoder 支持多轮对话,可逐步完善代码 (如先写接口,再写实现)。 + +**风险控制:** +* 对于复杂的前端工作流编辑器 (React),Qoder 可能生成基础框架,需人工细化交互逻辑。 +* 对于第三方平台接入 (微信/QQ),需 Qoder 调用官方 API 文档生成适配器代码。 +* 对于支付网关,需 Qoder 生成 webhook 处理逻辑,密钥由用户配置。 + +--- + +## 10. 附录:初始任务清单 (First Step Checklist) + +在将此文档投喂给 Qoder 前,请确保用户已准备: +- [ ] 注册 Qoder 账号并配置 API Key (如果需要云端模式) +- [ ] 准备好本地开发环境 (Docker, Git, Code Editor) +- [ ] 准备好第三方平台 API Key (微信、QQ、Stripe 等,可在后期配置) +- [ ] 准备好模型 API Key (DeepSeek、Qwen 等) + +**Qoder 启动命令示例 (如果使用 CLI):** +```bash +qoder project create --spec "AI PaaS Platform Specification" --mode quest +``` \ No newline at end of file