680 lines
34 KiB
Plaintext
680 lines
34 KiB
Plaintext
📥 AIPaaS 平台 — Qoder 开发指令文档(可下载版)
|
||
|
||
我为你准备了 两种格式,任选其一:
|
||
|
||
表格
|
||
格式 下载方式 适用场景
|
||
📄 Markdown (.md) 点击下方按钮直接保存 投喂给 Qoder CLI / MiMoCode
|
||
🌐 HTML (.html) 点击下方按钮直接保存 浏览器打开阅读 + 复制内容投喂
|
||
方式一:Markdown 版本(推荐直接投喂 Qoder)
|
||
markdown
|
||
# AIPaaS 智能集成平台 — Qoder 全量开发指令文档
|
||
|
||
> 使用说明:直接将全文复制粘贴到 Qoder 的 Quest Mode / CLI / IDE 对话框中
|
||
|
||
---
|
||
|
||
## 项目元信息
|
||
|
||
- 项目名称:AIPaaS 智能集成平台(AI-Powered Integration Platform as a Service)
|
||
- 目标用户:中小企业 / IT团队 / 业务人员(低代码)
|
||
- 核心价值:用AI+低代码,让任何系统之间的数据打通变得像"搭积木"一样简单
|
||
- 开发工具:Qoder(主)+ MiMoCode(辅,CLI后端任务)
|
||
- 总工期:12周(MVP交付)
|
||
- 技术栈:TypeScript/Go + React + PostgreSQL + Kafka + Keycloak + K8s
|
||
- 架构模式:微服务 + 事件驱动 + 低代码编排
|
||
|
||
---
|
||
|
||
## 第一部分:系统总架构
|
||
|
||
|
||
|
||
┌─────────────────────────────────────────────────────────────────┐
|
||
│ AIPaaS 平台全景图 │
|
||
├─────────────────────────────────────────────────────────────────┤
|
||
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
||
│ │ 管理后台 │ │低代码设计器│ │ AI工作台 │ │ 监控中心 │ │
|
||
│ │ (React) │ │ (React) │ │ (React) │ │ (React) │ │
|
||
│ └─────┬────┘ └─────┬────┘ └─────┬────┘ └─────┬────┘ │
|
||
│ │ │ │ │ │
|
||
│ ──────┴─────────────┴─────────────┴─────────────┴────────── │
|
||
│ │ API Gateway (自研) │ │
|
||
│ ──────────────────────┴───────────────────┴──────────────── │
|
||
│ │ │ │ │ │
|
||
│ ┌─────┴────┐ ┌─────┴────┐ ┌─────┴────┐ ┌─────┴────┐ │
|
||
│ │连接器引擎 │ │流程编排器 │ │AI Agent │ │事件总线 │ │
|
||
│ │(自研核心) │ │(自研核心) │ │(自研核心) │ │(Kafka) │ │
|
||
│ └─────┬────┘ └─────┬────┘ └─────┬────┘ └──────────┘ │
|
||
│ │ │ │ │
|
||
│ ┌─────┴─────────────┴─────────────┴──────────────────────┐ │
|
||
│ │ 数据层 (PostgreSQL + MongoDB + Redis) │ │
|
||
│ └─────────────────────────────────────────────────────────┘ │
|
||
│ │ │ │ │
|
||
│ ┌─────┴────┐ ┌─────┴────┐ ┌─────┴────┐ │
|
||
│ │ Keycloak │ │ Temporal │ │ LangGraph │ │
|
||
│ │ (开源) │ │ (开源) │ │ (开源) │ │
|
||
│ └──────────┘ └──────────┘ └──────────┘ │
|
||
│ │
|
||
│ 基础设施:Kubernetes + Prometheus + Grafana + ArgoCD │
|
||
│ 消息队列:Apache Kafka (Strimzi Operator) │
|
||
│ 向量库:Milvus (RAG用) │
|
||
└─────────────────────────────────────────────────────────────────┘
|
||
|
||
text
|
||
|
||
---
|
||
|
||
## 第二部分:模块清单 & 自研/开源标记
|
||
|
||
> 标 ⭐ = 必须100%自研(商业护城河)
|
||
> 标 🔓 = 开源对接,直接集成
|
||
|
||
| # | 模块名称 | 标记 | 技术选型 | 说明 |
|
||
|---|---------|------|---------|------|
|
||
| 1 | API 网关 | ⭐自研 | Go + Gin | JWT鉴权、限流1000qps、路由、日志 |
|
||
| 2 | 连接器引擎 | ⭐自研 | Go | HTTP/REST/SOAP/MySQL/SAP/金蝶/用友/钉钉/企微,插件化 |
|
||
| 3 | 流程设计器(低代码) | ⭐自研 | React + ReactFlow | 拖拽DAG编排,DSL导出/导入 |
|
||
| 4 | 工作流引擎 | ⭐自研(基于开源) | Go + Temporal.io | Temporal调度底层,上层DSL自研 |
|
||
| 5 | AI Agent 编排器 | ⭐自研 | Go + LangGraph | Agent生命周期、工具调用、记忆管理 |
|
||
| 6 | 事件总线 | 🔓开源 | Apache Kafka | Strimzi Operator部署 |
|
||
| 7 | 认证中心 | ⭐自研(基于开源) | Keycloak | OAuth2/OIDC底层,上层RBAC自研 |
|
||
| 8 | 审计日志系统 | ⭐自研 | Go + PostgreSQL | 全部操作留痕 |
|
||
| 9 | 管理后台 | Qoder生成 | React + Ant Design | 用户/连接器/流程/Agent管理 |
|
||
| 10 | 低代码设计器前端 | Qoder生成 | React + ReactFlow | 拖拽画布+节点配置+DSL导出 |
|
||
| 11 | AI工作台前端 | Qoder生成 | React | 对话式集成+RAG+Agent调试 |
|
||
| 12 | 数据存储 | 🔓开源 | PostgreSQL + MongoDB + Redis | PG关系数据+Mongo文档+Redis缓存 |
|
||
| 13 | 向量数据库 | 🔓开源 | Milvus | RAG检索 |
|
||
| 14 | AI推理服务 | 🔓开源 | vLLM / Ollama / 百炼API | DeepSeek/Qwen/GPT多模型 |
|
||
| 15 | AI框架层 | 🔓开源 | LangChain + LangGraph | Agent编排 |
|
||
| 16 | 监控告警 | 🔓开源 | Prometheus + Grafana | K8s+业务监控 |
|
||
| 17 | 日志收集 | 🔓开源 | EFK | 集中日志 |
|
||
| 18 | CI/CD | 🔓开源 | ArgoCD + Tekton | GitOps |
|
||
| 19 | 容器编排 | 🔓开源 | Kubernetes + KubeSphere | KubeSphere降低运维门槛 |
|
||
| 20 | 对象存储 | 🔓开源 | MinIO | 文件上传、流程附件 |
|
||
|
||
---
|
||
|
||
## 第三部分:Qoder 开发任务清单(按优先级)
|
||
|
||
### 任务 1:项目脚手架 & 基础设施(第1周)
|
||
|
||
请生成 monorepo 项目结构(pnpm workspace + Go modules):
|
||
|
||
/apps
|
||
/web-admin # 管理后台 React + Ant Design
|
||
/web-designer # 低代码设计器 React + ReactFlow
|
||
/web-ai # AI工作台 React
|
||
/services
|
||
/api-gateway # API网关 Go + Gin
|
||
/connector-engine # 连接器引擎 Go
|
||
/workflow-engine # 工作流引擎 Go + Temporal
|
||
/agent-orchestrator # AI Agent编排 Go + LangGraph
|
||
/auth-service # 认证服务 对接Keycloak
|
||
/event-bus # 事件总线 Kafka
|
||
/audit-service # 审计日志 Go
|
||
/infra
|
||
/k8s # K8s YAML
|
||
/terraform # 基础设施代码
|
||
|
||
生成 docker-compose.yml(本地开发):
|
||
postgresql:16 + mongodb:7 + redis:7 + kafka:3 + milvus:2.3
|
||
+ keycloak:24 + minio + prometheus + grafana + elasticsearch + kibana + fluentd
|
||
|
||
生成 Makefile:dev/build/test/deploy 命令
|
||
|
||
---
|
||
|
||
### 任务 2:API 网关(核心自研)
|
||
|
||
Go + Gin 开发,要求:
|
||
1. RESTful路由 + 动态路由(从数据库加载)
|
||
2. JWT鉴权(对接Keycloak public key)
|
||
3. 令牌桶限流,默认1000qps
|
||
4. 请求日志:request_id/method/path/latency/status
|
||
5. 熔断器:失败率>50%触发
|
||
6. 配置热更新(从PostgreSQL读取)
|
||
|
||
目录:/services/api-gateway/main.go + handlers + middleware(auth/ratelimit/circuit/logging) + config + models
|
||
|
||
---
|
||
|
||
### 任务 3:连接器引擎(核心自研,最重要)
|
||
|
||
Go开发,插件化架构:
|
||
|
||
核心接口:
|
||
type Connector interface {
|
||
Name() string
|
||
Type() string // http/mysql/postgresql/sap/kingdee/yonyou/dingtalk/wecom
|
||
Test() error
|
||
Read(ctx, query) ([]map[string]interface{}, error)
|
||
Write(ctx, data) error
|
||
Schema() (Schema, error)
|
||
}
|
||
|
||
预置连接器:HTTP/REST, MySQL, PostgreSQL, DingTalk, WeCom
|
||
|
||
插件机制:.so动态库放入/plugins自动加载,YAML配置化
|
||
|
||
目录:/services/connector-engine/main.go + core(manager/registry) + connectors(http/mysql/postgresql/dingtalk/wecom) + plugin(loader) + config(templates)
|
||
|
||
---
|
||
|
||
### 任务 4:工作流引擎(核心自研 + Temporal)
|
||
|
||
Go + Temporal.io:
|
||
|
||
核心概念:Workflow=业务流程, Activity=步骤, Task Queue=任务队列
|
||
|
||
功能:DAG工作流、条件分支、并行执行、循环、超时、重试、可视化、版本管理
|
||
|
||
目录:/services/workflow-engine/workflows(data_sync.go/approval.go) + activities(connector_call.go/notification.go) + client(client.go)
|
||
|
||
---
|
||
|
||
### 任务 5:低代码设计器前端(Qoder主力)
|
||
|
||
React + ReactFlow + Ant Design:
|
||
|
||
左侧节点面板:开始/连接器/条件判断/循环/AI/结束/定时触发
|
||
中间画布:ReactFlow拖拽 + 连线
|
||
右侧配置面板:名称/连接器选择/输入参数JSON/输出映射
|
||
顶部工具栏:保存DSL/加载DSL/运行测试/发布
|
||
|
||
目录:/apps/web-designer/src/components(NodePanel/Canvas/ConfigPanel/Toolbar) + pages(Designer.tsx) + stores(workflowStore.ts) + types(workflow.ts)
|
||
|
||
---
|
||
|
||
### 任务 6:AI Agent 编排器(核心自研)
|
||
|
||
Go + LangGraph:
|
||
|
||
功能:Agent生命周期管理、工具注册(连接器=工具)、记忆管理(Redis短期+Milvus向量长期)、多Agent协作
|
||
|
||
接口:
|
||
POST /agents - 创建
|
||
POST /agents/{id}/run - 启动
|
||
POST /agents/{id}/chat - 对话
|
||
GET /agents/{id}/memory - 查看记忆
|
||
|
||
目录:/services/agent-orchestrator/main.go + agent(manager/executor) + tools(registry) + memory(milvus.go/redis.go) + graph(builder.go)
|
||
|
||
---
|
||
|
||
### 任务 7:管理后台(Qoder生成)
|
||
|
||
React + Ant Design Pro:
|
||
|
||
页面:仪表盘/连接器管理/流程管理/Agent管理/用户管理/系统设置/审计日志
|
||
|
||
目录:/apps/web-admin/src/pages(Dashboard.tsx/Connectors.tsx/Workflows.tsx/Agents.tsx/Users.tsx/Settings.tsx/AuditLog.tsx) + components(Charts/Tables)
|
||
|
||
---
|
||
|
||
### 任务 8:AI 工作台前端(Qoder生成)
|
||
|
||
React:
|
||
|
||
页面:Agent对话窗口/RAG知识库管理/Agent调试面板/多模型切换
|
||
|
||
目录:/apps/web-ai/src/pages(Chat.tsx/Knowledge.tsx/Debug.tsx) + components(ChatBubble.tsx/KnowledgeUpload.tsx)
|
||
|
||
---
|
||
|
||
## 第四部分:开源对接清单
|
||
|
||
| 组件 | 版本 | 对接方式 |
|
||
|------|------|---------|
|
||
| Keycloak | 24.x | Go SDK,OIDC,realm=aipaas |
|
||
| Temporal.io | 1.24 | Go SDK,namespace=aipaas |
|
||
| Kafka | 3.6 | Strimzi Operator,3 brokers |
|
||
| Milvus | 2.3 | Go SDK,collection=agent_memory |
|
||
| LangChain | 0.2 | Go (langchaingo),DeepSeek/Qwen |
|
||
| Prometheus | 3.x | Helm Chart,15s采集 |
|
||
| Grafana | 11.x | Helm Chart,dashboard ID:1860 |
|
||
| ArgoCD | 2.x | Helm Chart,GitOps |
|
||
| MinIO | latest | Go SDK |
|
||
| EFK | 8.x | Helm Chart |
|
||
|
||
---
|
||
|
||
## 第五部分:数据模型(优先建表)
|
||
|
||
```sql
|
||
CREATE TABLE users (
|
||
id UUID PRIMARY KEY,
|
||
username VARCHAR(100) UNIQUE,
|
||
email VARCHAR(255) UNIQUE,
|
||
role VARCHAR(50),
|
||
created_at TIMESTAMP DEFAULT NOW()
|
||
);
|
||
|
||
CREATE TABLE connectors (
|
||
id UUID PRIMARY KEY,
|
||
name VARCHAR(200),
|
||
type VARCHAR(50),
|
||
config JSONB,
|
||
status VARCHAR(20),
|
||
created_by UUID REFERENCES users(id),
|
||
created_at TIMESTAMP DEFAULT NOW()
|
||
);
|
||
|
||
CREATE TABLE workflows (
|
||
id UUID PRIMARY KEY,
|
||
name VARCHAR(200),
|
||
dsl JSONB,
|
||
status VARCHAR(20),
|
||
version INT DEFAULT 1,
|
||
created_by UUID REFERENCES users(id),
|
||
created_at TIMESTAMP DEFAULT NOW()
|
||
);
|
||
|
||
CREATE TABLE workflow_runs (
|
||
id UUID PRIMARY KEY,
|
||
workflow_id UUID REFERENCES workflows(id),
|
||
status VARCHAR(20),
|
||
started_at TIMESTAMP,
|
||
finished_at TIMESTAMP,
|
||
log JSONB
|
||
);
|
||
|
||
CREATE TABLE agents (
|
||
id UUID PRIMARY KEY,
|
||
name VARCHAR(200),
|
||
model VARCHAR(100),
|
||
system_prompt TEXT,
|
||
tools JSONB,
|
||
status VARCHAR(20),
|
||
created_by UUID REFERENCES users(id),
|
||
created_at TIMESTAMP DEFAULT NOW()
|
||
);
|
||
|
||
CREATE TABLE audit_logs (
|
||
id UUID PRIMARY KEY,
|
||
user_id UUID REFERENCES users(id),
|
||
action VARCHAR(100),
|
||
resource_type VARCHAR(50),
|
||
resource_id UUID,
|
||
detail JSONB,
|
||
created_at TIMESTAMP DEFAULT NOW()
|
||
);
|
||
|
||
第六部分:Qoder 一句话启动指令
|
||
text
|
||
请基于以上完整文档,用 React + Go + TypeScript 开发一个 AIPaaS 智能集成平台。
|
||
技术栈:前端 React+AntDesign+ReactFlow,后端 Go+Gin+Temporal+LangGraph,
|
||
数据层 PostgreSQL+MongoDB+Redis+Milvus+Kafka,
|
||
基础设施 K8s+KubeSphere+ArgoCD+Prometheus+Grafana+EFK,
|
||
认证对接 Keycloak。
|
||
核心自研:API网关、连接器引擎、流程设计器、工作流引擎、AI Agent编排器。
|
||
请按任务清单顺序依次生成代码,每个模块生成完整可运行代码。
|
||
|
||
第七部分:验收标准
|
||
表格
|
||
检查项 标准
|
||
API网关 JWT鉴权通过 + 限流生效 + 路由正确转发
|
||
连接器引擎 MySQL可读写 + 钉钉可发消息 + 插件热加载
|
||
流程设计器 拖拽可连线 + DSL导出可执行 + 版本管理
|
||
工作流引擎 DAG正常运行 + 条件分支正确 + 超时重试
|
||
AI Agent 对话可调用连接器 + RAG可检索 + 多模型切换
|
||
管理后台 CRUD页面可用 + 监控看板有数据
|
||
K8s部署 ArgoCD同步成功 + 所有Pod Running
|
||
text
|
||
|
||
---
|
||
|
||
## 方式二:HTML 版本(浏览器打开 + 一键保存)
|
||
|
||
下面是完整 HTML,‌**复制全部内容 → 粘贴到记事本 → 保存为 `aipaas-qoder-dev-doc.html` → 双击打开**‌:
|
||
|
||
```html
|
||
<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>AIPaaS 平台 — Qoder 开发指令文档</title>
|
||
<style>
|
||
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: #0f172a; color: #e2e8f0; line-height: 1.8; padding: 40px 20px; max-width: 1200px; margin: 0 auto; }
|
||
h1 { font-size: 2rem; color: #38bdf8; margin-bottom: 8px; border-bottom: 2px solid #38bdf8; padding-bottom: 12px; }
|
||
h2 { font-size: 1.4rem; color: #818cf8; margin: 32px 0 16px; padding-left: 12px; border-left: 4px solid #818cf8; }
|
||
h3 { font-size: 1.1rem; color: #34d399; margin: 20px 0 10px; }
|
||
table { width: 100%; border-collapse: collapse; margin: 16px 0; font-size: 0.9rem; }
|
||
th { background: #1e293b; color: #38bdf8; padding: 10px 14px; text-align: left; border: 1px solid #334155; }
|
||
td { padding: 8px 14px; border: 1px solid #334155; }
|
||
tr:nth-child(even) { background: #1e293b55; }
|
||
.star { color: #fbbf24; }
|
||
.lock { color: #34d399; }
|
||
pre { background: #1e293b; padding: 16px; border-radius: 8px; overflow-x: auto; font-size: 0.85rem; margin: 12px 0; border: 1px solid #334155; }
|
||
code { background: #1e293b; padding: 2px 6px; border-radius: 4px; font-size: 0.9em; color: #f472b6; }
|
||
.arch-box { background: #1e293b; padding: 24px; border-radius: 12px; border: 1px solid #334155; margin: 16px 0; font-family: monospace; font-size: 0.8rem; line-height: 1.5; white-space: pre; overflow-x: auto; }
|
||
.info-box { background: #1e293b; padding: 16px 20px; border-radius: 8px; border-left: 4px solid #38bdf8; margin: 16px 0; }
|
||
.badge { display: inline-block; padding: 2px 10px; border-radius: 12px; font-size: 0.75rem; font-weight: bold; margin-right: 6px; }
|
||
.badge-star { background: #fbbf2422; color: #fbbf24; }
|
||
.badge-lock { background: #34d39922; color: #34d399; }
|
||
.btn-download { display: inline-block; background: #38bdf8; color: #0f172a; padding: 12px 28px; border-radius: 8px; font-weight: bold; text-decoration: none; margin: 16px 0; cursor: pointer; border: none; font-size: 1rem; }
|
||
.btn-download:hover { background: #7dd3fc; }
|
||
.toc { background: #1e293b; padding: 20px; border-radius: 8px; margin: 16px 0; }
|
||
.toc a { color: #38bdf8; text-decoration: none; display: block; padding: 4px 0; }
|
||
.toc a:hover { color: #7dd3fc; }
|
||
.footer { text-align: center; color: #64748b; margin-top: 48px; padding-top: 20px; border-top: 1px solid #334155; font-size: 0.85rem; }
|
||
</style>
|
||
</head>
|
||
<body>
|
||
|
||
<h1>🚀 AIPaaS 智能集成平台 — Qoder 全量开发指令文档</h1>
|
||
<p style="color:#94a3b8; margin-bottom:24px;">使用说明:直接将全文复制粘贴到 Qoder 的 Quest Mode / CLI / IDE 对话框中,Qoder 将自动理解全局架构并生成完整项目。</p>
|
||
|
||
<button class="btn-download" onclick="downloadMD()">📥 下载 Markdown 版本 (.md)</button>
|
||
<button class="btn-download" onclick="downloadHTML()">🌐 下载 HTML 版本 (.html)</button>
|
||
|
||
<div class="toc">
|
||
<h3 style="margin-top:0;">📑 目录</h3>
|
||
<a href="#meta">一、项目元信息</a>
|
||
<a href="#arch">二、系统总架构</a>
|
||
<a href="#modules">三、模块清单 & 自研/开源标记</a>
|
||
<a href="#tasks">四、Qoder 开发任务清单</a>
|
||
<a href="#opensource">五、开源对接清单</a>
|
||
<a href="#schema">六、数据模型</a>
|
||
<a href="#oneliner">七、Qoder 一句话启动指令</a>
|
||
<a href="#accept">八、验收标准</a>
|
||
</div>
|
||
|
||
<h2 id="meta">一、项目元信息</h2>
|
||
<div class="info-box">
|
||
<strong>项目名称:</strong>AIPaaS 智能集成平台(AI-Powered Integration Platform as a Service)<br>
|
||
<strong>目标用户:</strong>中小企业 / IT团队 / 业务人员(低代码)<br>
|
||
<strong>核心价值:</strong>用AI+低代码,让任何系统之间的数据打通变得像"搭积木"一样简单<br>
|
||
<strong>开发工具:</strong>Qoder(主)+ MiMoCode(辅,CLI后端任务)<br>
|
||
<strong>总工期:</strong>12周(MVP交付)<br>
|
||
<strong>技术栈:</strong>TypeScript/Go + React + PostgreSQL + Kafka + Keycloak + K8s<br>
|
||
<strong>架构模式:</strong>微服务 + 事件驱动 + 低代码编排
|
||
</div>
|
||
|
||
<h2 id="arch">二、系统总架构</h2>
|
||
<div class="arch-box">
|
||
┌─────────────────────────────────────────────────────────────────┐
|
||
│ AIPaaS 平台全景图 │
|
||
├─────────────────────────────────────────────────────────────────┤
|
||
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
||
│ │ 管理后台 │ │低代码设计器│ │ AI工作台 │ │ 监控中心 │ │
|
||
│ │ (React) │ │ (React) │ │ (React) │ │ (React) │ │
|
||
│ └─────┬────┘ └─────┬────┘ └─────┬────┘ └─────┬────┘ │
|
||
│ │ │ │ │ │
|
||
│ ──────┴─────────────┴─────────────┴─────────────┴────────── │
|
||
│ │ API Gateway (自研) │ │
|
||
│ ──────────────────────┴───────────────────┴──────────────── │
|
||
│ │ │ │ │ │
|
||
│ ┌─────┴────┐ ┌─────┴────┐ ┌─────┴────┐ ┌─────┴────┐ │
|
||
│ │连接器引擎 │ │流程编排器 │ │AI Agent │ │事件总线 │ │
|
||
│ │(自研核心) │ │(自研核心) │ │(自研核心) │ │(Kafka) │ │
|
||
│ └─────┬────┘ └─────┬────┘ └─────┬────┘ └──────────┘ │
|
||
│ │ │ │ │
|
||
│ ┌─────┴─────────────┴─────────────┴──────────────────────┐ │
|
||
│ │ 数据层 (PostgreSQL + MongoDB + Redis) │ │
|
||
│ └─────────────────────────────────────────────────────────┘ │
|
||
│ │ │ │ │
|
||
│ ┌─────┴────┐ ┌─────┴────┐ ┌─────┴────┐ │
|
||
│ │ Keycloak │ │ Temporal │ │ LangGraph │ │
|
||
│ │ (开源) │ │ (开源) │ │ (开源) │ │
|
||
│ └──────────┘ └──────────┘ └──────────┘ │
|
||
│ │
|
||
│ 基础设施:Kubernetes + Prometheus + Grafana + ArgoCD │
|
||
│ 消息队列:Apache Kafka (Strimzi Operator) │
|
||
│ 向量库:Milvus (RAG用) │
|
||
└─────────────────────────────────────────────────────────────────┘
|
||
</div>
|
||
|
||
<h2 id="modules">三、模块清单 & 自研/开源标记</h2>
|
||
<p><span class="badge badge-star">⭐</span> = 必须100%自研(商业护城河) <span class="badge badge-lock">🔓</span> = 开源对接,直接集成</p>
|
||
|
||
<table>
|
||
<tr><th>#</th><th>模块名称</th><th>标记</th><th>技术选型</th><th>说明</th></tr>
|
||
<tr><td>1</td><td>API 网关</td><td><span class="badge badge-star">⭐自研</span></td><td>Go + Gin</td><td>JWT鉴权、限流1000qps、路由、日志</td></tr>
|
||
<tr><td>2</td><td>连接器引擎</td><td><span class="badge badge-star">⭐自研</span></td><td>Go</td><td>HTTP/REST/SOAP/MySQL/SAP/金蝶/用友/钉钉/企微,插件化</td></tr>
|
||
<tr><td>3</td><td>流程设计器(低代码)</td><td><span class="badge badge-star">⭐自研</span></td><td>React + ReactFlow</td><td>拖拽DAG编排,DSL导出/导入</td></tr>
|
||
<tr><td>4</td><td>工作流引擎</td><td><span class="badge badge-star">⭐自研(基于开源)</span></td><td>Go + Temporal.io</td><td>Temporal调度底层,上层DSL自研</td></tr>
|
||
<tr><td>5</td><td>AI Agent 编排器</td><td><span class="badge badge-star">⭐自研</span></td><td>Go + LangGraph</td><td>Agent生命周期、工具调用、记忆管理</td></tr>
|
||
<tr><td>6</td><td>事件总线</td><td><span class="badge badge-lock">🔓开源</span></td><td>Apache Kafka</td><td>Strimzi Operator部署</td></tr>
|
||
<tr><td>7</td><td>认证中心</td><td><span class="badge badge-star">⭐自研(基于开源)</span></td><td>Keycloak</td><td>OAuth2/OIDC底层,上层RBAC自研</td></tr>
|
||
<tr><td>8</td><td>审计日志系统</td><td><span class="badge badge-star">⭐自研</span></td><td>Go + PostgreSQL</td><td>全部操作留痕</td></tr>
|
||
<tr><td>9</td><td>管理后台</td><td>Qoder生成</td><td>React + Ant Design</td><td>用户/连接器/流程/Agent管理</td></tr>
|
||
<tr><td>10</td><td>低代码设计器前端</td><td>Qoder生成</td><td>React + ReactFlow</td><td>拖拽画布+节点配置+DSL导出</td></tr>
|
||
<tr><td>11</td><td>AI工作台前端</td><td>Qoder生成</td><td>React</td><td>对话式集成+RAG+Agent调试</td></tr>
|
||
<tr><td>12</td><td>数据存储</td><td><span class="badge badge-lock">🔓开源</span></td><td>PostgreSQL + MongoDB + Redis</td><td>PG关系+Mongo文档+Redis缓存</td></tr>
|
||
<tr><td>13</td><td>向量数据库</td><td><span class="badge badge-lock">🔓开源</span></td><td>Milvus</td><td>RAG检索</td></tr>
|
||
<tr><td>14</td><td>AI推理服务</td><td><span class="badge badge-lock">🔓开源</span></td><td>vLLM / Ollama / 百炼API</td><td>DeepSeek/Qwen/GPT多模型</td></tr>
|
||
<tr><td>15</td><td>AI框架层</td><td><span class="badge badge-lock">🔓开源</span></td><td>LangChain + LangGraph</td><td>Agent编排</td></tr>
|
||
<tr><td>16</td><td>监控告警</td><td><span class="badge badge-lock">🔓开源</span></td><td>Prometheus + Grafana</td><td>K8s+业务监控</td></tr>
|
||
<tr><td>17</td><td>日志收集</td><td><span class="badge badge-lock">🔓开源</span></td><td>EFK</td><td>集中日志</td></tr>
|
||
<tr><td>18</td><td>CI/CD</td><td><span class="badge badge-lock">🔓开源</span></td><td>ArgoCD + Tekton</td><td>GitOps</td></tr>
|
||
<tr><td>19</td><td>容器编排</td><td><span class="badge badge-lock">🔓开源</span></td><td>Kubernetes + KubeSphere</td><td>KubeSphere降低运维门槛</td></tr>
|
||
<tr><td>20</td><td>对象存储</td><td><span class="badge badge-lock">🔓开源</span></td><td>MinIO</td><td>文件上传、流程附件</td></tr>
|
||
</table>
|
||
|
||
<h2 id="tasks">四、Qoder 开发任务清单(按优先级)</h2>
|
||
|
||
<h3>📌 任务 1:项目脚手架 & 基础设施(第1周)</h3>
|
||
<div class="info-box">
|
||
请生成 monorepo 项目结构(pnpm workspace + Go modules):<br><br>
|
||
<code>/apps/web-admin</code> 管理后台 React + Ant Design<br>
|
||
<code>/apps/web-designer</code> 低代码设计器 React + ReactFlow<br>
|
||
<code>/apps/web-ai</code> AI工作台 React<br>
|
||
<code>/services/api-gateway</code> API网关 Go + Gin<br>
|
||
<code>/services/connector-engine</code> 连接器引擎 Go<br>
|
||
<code>/services/workflow-engine</code> 工作流引擎 Go + Temporal<br>
|
||
<code>/services/agent-orchestrator</code> AI Agent编排 Go + LangGraph<br>
|
||
<code>/services/auth-service</code> 认证服务 对接Keycloak<br>
|
||
<code>/services/event-bus</code> 事件总线 Kafka<br>
|
||
<code>/services/audit-service</code> 审计日志 Go<br>
|
||
<code>/infra/k8s</code> K8s YAML<br>
|
||
<code>/infra/terraform</code> 基础设施代码<br><br>
|
||
生成 docker-compose.yml(本地开发):<br>
|
||
postgresql:16 + mongodb:7 + redis:7 + kafka:3 + milvus:2.3 + keycloak:24 + minio + prometheus + grafana + elasticsearch + kibana + fluentd<br><br>
|
||
生成 Makefile:dev/build/test/deploy 命令
|
||
</div>
|
||
|
||
<h3>📌 任务 2:API 网关(核心自研)</h3>
|
||
<div class="info-box">
|
||
Go + Gin 开发,要求:<br>
|
||
1. RESTful路由 + 动态路由(从数据库加载)<br>
|
||
2. JWT鉴权(对接Keycloak public key)<br>
|
||
3. 令牌桶限流,默认1000qps<br>
|
||
4. 请求日志:request_id/method/path/latency/status<br>
|
||
5. 熔断器:失败率>50%触发<br>
|
||
6. 配置热更新(从PostgreSQL读取)<br><br>
|
||
目录:<code>/services/api-gateway/main.go</code> + handlers + middleware(auth/ratelimit/circuit/logging) + config + models
|
||
</div>
|
||
|
||
<h3>📌 任务 3:连接器引擎(核心自研,最重要)</h3>
|
||
<div class="info-box">
|
||
Go开发,插件化架构<br><br>
|
||
核心接口:<br>
|
||
<pre>type Connector interface {
|
||
Name() string
|
||
Type() string // http/mysql/postgresql/sap/kingdee/yonyou/dingtalk/wecom
|
||
Test() error
|
||
Read(ctx, query) ([]map[string]interface{}, error)
|
||
Write(ctx, data) error
|
||
Schema() (Schema, error)
|
||
}</pre><br>
|
||
预置连接器:HTTP/REST, MySQL, PostgreSQL, DingTalk, WeCom<br>
|
||
插件机制:.so动态库放入/plugins自动加载,YAML配置化<br><br>
|
||
目录:<code>/services/connector-engine/main.go</code> + core(manager/registry) + connectors(http/mysql/postgresql/dingtalk/wecom) + plugin(loader) + config(templates)
|
||
</div>
|
||
|
||
<h3>📌 任务 4:工作流引擎(核心自研 + Temporal)</h3>
|
||
<div class="info-box">
|
||
Go + Temporal.io<br><br>
|
||
核心概念:Workflow=业务流程, Activity=步骤, Task Queue=任务队列<br>
|
||
功能:DAG工作流、条件分支、并行执行、循环、超时、重试、可视化、版本管理<br><br>
|
||
目录:<code>/services/workflow-engine/workflows(data_sync.go/approval.go)</code> + activities(connector_call.go/notification.go) + client(client.go)
|
||
</div>
|
||
|
||
<h3>📌 任务 5:低代码设计器前端(Qoder主力)</h3>
|
||
<div class="info-box">
|
||
React + ReactFlow + Ant Design<br><br>
|
||
左侧节点面板:开始/连接器/条件判断/循环/AI/结束/定时触发<br>
|
||
中间画布:ReactFlow拖拽 + 连线<br>
|
||
右侧配置面板:名称/连接器选择/输入参数JSON/输出映射<br>
|
||
顶部工具栏:保存DSL/加载DSL/运行测试/发布<br><br>
|
||
目录:<code>/apps/web-designer/src/components(NodePanel/Canvas/ConfigPanel/Toolbar)</code> + pages(Designer.tsx) + stores(workflowStore.ts) + types(workflow.ts)
|
||
</div>
|
||
|
||
<h3>📌 任务 6:AI Agent 编排器(核心自研)</h3>
|
||
<div class="info-box">
|
||
Go + LangGraph<br><br>
|
||
功能:Agent生命周期管理、工具注册(连接器=工具)、记忆管理(Redis短期+Milvus向量长期)、多Agent协作<br><br>
|
||
接口:<br>
|
||
POST /agents - 创建<br>
|
||
POST /agents/{id}/run - 启动<br>
|
||
POST /agents/{id}/chat - 对话<br>
|
||
GET /agents/{id}/memory - 查看记忆<br><br>
|
||
目录:<code>/services/agent-orchestrator/main.go</code> + agent(manager/executor) + tools(registry) + memory(milvus.go/redis.go) + graph(builder.go)
|
||
</div>
|
||
|
||
<h3>📌 任务 7:管理后台(Qoder生成)</h3>
|
||
<div class="info-box">
|
||
React + Ant Design Pro<br><br>
|
||
页面:仪表盘/连接器管理/流程管理/Agent管理/用户管理/系统设置/审计日志<br><br>
|
||
目录:<code>/apps/web-admin/src/pages(Dashboard.tsx/Connectors.tsx/Workflows.tsx/Agents.tsx/Users.tsx/Settings.tsx/AuditLog.tsx)</code> + components(Charts/Tables)
|
||
</div>
|
||
|
||
<h3>📌 任务 8:AI 工作台前端(Qoder生成)</h3>
|
||
<div class="info-box">
|
||
React<br><br>
|
||
页面:Agent对话窗口/RAG知识库管理/Agent调试面板/多模型切换<br><br>
|
||
目录:<code>/apps/web-ai/src/pages(Chat.tsx/Knowledge.tsx/Debug.tsx)</code> + components(ChatBubble.tsx/KnowledgeUpload.tsx)
|
||
</div>
|
||
|
||
<h2 id="opensource">五、开源对接清单</h2>
|
||
<table>
|
||
<tr><th>组件</th><th>版本</th><th>对接方式</th></tr>
|
||
<tr><td>Keycloak</td><td>24.x</td><td>Go SDK,OIDC,realm=aipaas</td></tr>
|
||
<tr><td>Temporal.io</td><td>1.24</td><td>Go SDK,namespace=aipaas</td></tr>
|
||
<tr><td>Kafka</td><td>3.6</td><td>Strimzi Operator,3 brokers</td></tr>
|
||
<tr><td>Milvus</td><td>2.3</td><td>Go SDK,collection=agent_memory</td></tr>
|
||
<tr><td>LangChain</td><td>0.2</td><td>Go (langchaingo),DeepSeek/Qwen</td></tr>
|
||
<tr><td>Prometheus</td><td>3.x</td><td>Helm Chart,15s采集</td></tr>
|
||
<tr><td>Grafana</td><td>11.x</td><td>Helm Chart,dashboard ID:1860</td></tr>
|
||
<tr><td>ArgoCD</td><td>2.x</td><td>Helm Chart,GitOps</td></tr>
|
||
<tr><td>MinIO</td><td>latest</td><td>Go SDK</td></tr>
|
||
<tr><td>EFK</td><td>8.x</td><td>Helm Chart</td></tr>
|
||
</table>
|
||
|
||
<h2 id="schema">六、数据模型(优先建表)</h2>
|
||
<pre>CREATE TABLE users (
|
||
id UUID PRIMARY KEY,
|
||
username VARCHAR(100) UNIQUE,
|
||
email VARCHAR(255) UNIQUE,
|
||
role VARCHAR(50),
|
||
created_at TIMESTAMP DEFAULT NOW()
|
||
);
|
||
|
||
CREATE TABLE connectors (
|
||
id UUID PRIMARY KEY,
|
||
name VARCHAR(200),
|
||
type VARCHAR(50),
|
||
config JSONB,
|
||
status VARCHAR(20),
|
||
created_by UUID REFERENCES users(id),
|
||
created_at TIMESTAMP DEFAULT NOW()
|
||
);
|
||
|
||
CREATE TABLE workflows (
|
||
id UUID PRIMARY KEY,
|
||
name VARCHAR(200),
|
||
dsl JSONB,
|
||
status VARCHAR(20),
|
||
version INT DEFAULT 1,
|
||
created_by UUID REFERENCES users(id),
|
||
created_at TIMESTAMP DEFAULT NOW()
|
||
);
|
||
|
||
CREATE TABLE workflow_runs (
|
||
id UUID PRIMARY KEY,
|
||
workflow_id UUID REFERENCES workflows(id),
|
||
status VARCHAR(20),
|
||
started_at TIMESTAMP,
|
||
finished_at TIMESTAMP,
|
||
log JSONB
|
||
);
|
||
|
||
CREATE TABLE agents (
|
||
id UUID PRIMARY KEY,
|
||
name VARCHAR(200),
|
||
model VARCHAR(100),
|
||
system_prompt TEXT,
|
||
tools JSONB,
|
||
status VARCHAR(20),
|
||
created_by UUID REFERENCES users(id),
|
||
created_at TIMESTAMP DEFAULT NOW()
|
||
);
|
||
|
||
CREATE TABLE audit_logs (
|
||
id UUID PRIMARY KEY,
|
||
user_id UUID REFERENCES users(id),
|
||
action VARCHAR(100),
|
||
resource_type VARCHAR(50),
|
||
resource_id UUID,
|
||
detail JSONB,
|
||
created_at TIMESTAMP DEFAULT NOW()
|
||
);
|
||
</pre>
|
||
|
||
<h2 id="oneliner">七、Qoder 一句话启动指令</h2>
|
||
<div class="info-box" style="border-left-color: #fbbf24;">
|
||
<code>请基于以上完整文档,用 React + Go + TypeScript 开发一个 AIPaaS 智能集成平台。<br>
|
||
技术栈:前端 React+AntDesign+ReactFlow,后端 Go+Gin+Temporal+LangGraph,<br>
|
||
数据层 PostgreSQL+MongoDB+Redis+Milvus+Kafka,<br>
|
||
基础设施 K8s+KubeSphere+ArgoCD+Prometheus+Grafana+EFK,<br>
|
||
认证对接 Keycloak。<br>
|
||
核心自研:API网关、连接器引擎、流程设计器、工作流引擎、AI Agent编排器。<br>
|
||
请按任务清单顺序依次生成代码,每个模块生成完整可运行代码。</code>
|
||
</div>
|
||
|
||
<h2 id="accept">八、验收标准(Qoder 自检用)</h2>
|
||
<table>
|
||
<tr><th>检查项</th><th>标准</th></tr>
|
||
<tr><td>API网关</td><td>✅ JWT鉴权通过 ✅ 限流生效 ✅ 路由正确转发</td></tr>
|
||
<tr><td>连接器引擎</td><td>✅ MySQL可读写 ✅ 钉钉可发消息 ✅ 插件热加载</td></tr>
|
||
<tr><td>流程设计器</td><td>✅ 拖拽可连线 ✅ DSL导出可执行 ✅ 版本管理</td></tr>
|
||
<tr><td>工作流引擎</td><td>✅ DAG正常运行 ✅ 条件分支正确 ✅ 超时重试</td></tr>
|
||
<tr><td>AI Agent</td><td>✅ 对话可调用连接器 ✅ RAG可检索 ✅ 多模型切换</td></tr>
|
||
<tr><td>管理后台</td><td>✅ CRUD页面可用 ✅ 监控看板有数据</td></tr>
|
||
<tr><td>K8s部署</td><td>✅ ArgoCD同步成功 ✅ 所有Pod Running ✅ 健康检查通过</td></tr>
|
||
</table>
|
||
|
||
<div class="footer">
|
||
<p>📌 提示:将以上全文复制到 Qoder Quest Mode,它会自动理解全局并开始生成代码。<br>
|
||
如果上下文太长,可以分模块投喂,但务必先投喂"第一部分架构"和"第二部分模块清单"作为全局上下文。🚀</p>
|
||
</div>
|
||
|
||
<script>
|
||
function downloadMD() {
|
||
const md = document.querySelector('body').innerText;
|
||
const blob = new Blob([md], {type: 'text/markdown;charset=utf-8'});
|
||
const url = URL.createObjectURL(blob);
|
||
const a = document.createElement('a');
|
||
a.href = url;
|
||
a.download = 'aipaas-qoder-dev-doc.md';
|
||
a.click();
|
||
URL.revokeObjectURL(url);
|
||
}
|
||
function downloadHTML() {
|
||
const html = document.documentElement.outerHTML;
|
||
const blob = new Blob([html], {type: 'text/html;charset=utf-8'});
|
||
const url = URL.createObjectURL(blob);
|
||
const a = document.createElement('a');
|
||
a.href = url;
|
||
a.download = 'aipaas-qoder-dev-doc.html';
|
||
a.click();
|
||
URL.revokeObjectURL(url);
|
||
}
|
||
</script>
|
||
|
||
</body>
|
||
</html>
|