第十八章 核心业务功能开发

1. 学习目标

承接第十七章的架构设计,将其落地为可运行的核心功能:用户与权限、智能对话引擎、知识库系统、多渠道接入。完成本章后,学员将能够:用 Trae 实现 JWT + RBAC 认证;构建含意图识别、实体提取、上下文管理的对话引擎;搭建文档解析 + 向量检索的知识库;以及对核心代码完成「Vibe Coding 闭环 + 安全/性能审查」。

1.1 学习路径图

graph TD
    A[Ch17 架构就绪] --> B[环境与依赖]
    B --> C["用户 / 权限"]
    C --> D[对话引擎]
    D --> E[知识库]
    E --> F[多渠道接入]
    F --> G[审查闭环]
    G --> H[Ch19 高级功能]

1.2 交付物清单

一个可运行的用户管理系统(注册/登录/RBAC/多租户);一个智能对话引擎(意图识别 + 实体提取 + 上下文);一个知识库系统(文档解析 + 向量检索);一份 core-feature-review Skill 草稿(用户系统安全 + 对话响应质量校验规则)。

1.3 前置技能检查

维度 必备技能 不达标处理
架构 Ch17 ADR / 微服务拆分 / 数据存储设计 回看 Ch17 §5
Trae 自然语言编程 + 修正语法 + 模式选择 回看 Ch1 §5.4 / Ch2 §4.9
前端 React 18 + TypeScript + Ant Design 回看 Ch5 §5.5
后端 Node.js + Express + MongoDB + JWT 回看 Ch6 / Ch7 / Ch8
工程 Git + 单测 + 错误处理 + 日志 回看 Ch4

2. 开发环境准备

2.1 基础设施与依赖

Trae 提示词(一次产出 4 件套)

为智能客服系统生成开发环境与依赖:
1) docker-compose.dev.yml:MongoDB / Redis / Nginx,含初始化脚本与健康检查
2) .env.example:DB / Redis / JWT / 第三方密钥占位(不可硬编码)
3) 前端 package.json:React 18 + TS + Ant Design 5 + Vite
4) 后端 package.json:Express + Mongoose + ioredis + jsonwebtoken + bcrypt
5) AI 服务 requirements.txt:FastAPI + Transformers + sentence-transformers
6) 工程:ESLint / Prettier / Jest / Husky pre-commit

审查要点:Secret 不进镜像;前后端 Node 版本与 engines 对齐;Redis/Mongo 容器开 restart: unless-stopped

3. 用户管理与权限系统

3.1 用户认证服务开发

3.1.1 JWT 认证与 Token 管理

轮次 Trae 提示词要点 关键交付
R1 注册/登录 API + bcrypt 密码 + JWT 中间件 + 用户 Schema /auth/register / /auth/login / verifyToken
R2 双 Token(Access 短 + Refresh 长 + Redis 黑名单) + 设备指纹 + 异常登录告警 /auth/refresh / 设备表 / 登录审计日志
R3 MFA:TOTP(otplib)+ 短信验证码 + 备用恢复码 + 前端 MFA 设置页 /auth/mfa/* 流程 + 二维码生成

铁律:密码必须 bcrypt(cost ≥ 10);JWT 必须设 exp + iss + aud;Refresh Token 撤销走 Redis 黑名单,不查 DB。

3.1.2 RBAC 权限控制

轮次 Trae 提示词要点 关键交付
R1 角色:SuperAdmin/OrgAdmin/Manager/Agent/Customer;资源:用户/对话/KB/工单/分析;表结构 roles / permissions / role_perms
R2 @Permission('chat:read') 装饰器 + Express 中间件 + Redis 权限缓存(TTL 5min) requirePermission(expr) 中间件
R3 React 权限管理页:角色 CRUD + 权限树 + 用户授权 + 变更审批流 /admin/roles / /admin/permissions

铁律:权限检查必须在路由层强制;前端权限控件仅做 UI 隐藏,不能作为安全边界。

3.2 用户管理前端

3.2.1 控制台

Trae 提示词:用 React 18 + TS + Ant Design 5 实现用户列表(搜索/过滤/分页)、详情(信息编辑 + 权限分配)、组织架构树、响应式布局;状态管理用 Zustand;API 通过 axios 拦截器统一注入 Token + 401 自动刷新。

4. 智能对话引擎

4.1 自然语言处理服务

4.1.1 意图识别与实体提取

轮次 Trae 提示词要点 关键交付
R1 FastAPI + Transformers:文本预处理 + 意图分类(产品/订单/售后/技术)+ POST /nlp/parse intent + confidence 返回
R2 实体类型(产品/订单号/时间/金额)+ 实体标准化 + 情感分析 + 批量接口 /nlp/parse/batch
R3 INT8 量化 + Redis 缓存(key=hash(text))+ 异步队列 + Prometheus 指标 P95 < 200ms,QPS ≥ 100

4.1.2 对话上下文管理

Trae 提示词:实现 ConversationContext:会话级状态(当前意图栈 + slot filling)+ 用户级长期记忆(最近 10 轮)+ 指代消解(用户最近提到的实体)+ Redis 存储(TTL 30min,话题切换自动重置)。

审查要点:上下文不得跨租户/跨用户串台;冷启动 1 次内完成。

4.2 智能回复生成

4.2.1 规则引擎

轮次 Trae 提示词要点 关键交付
R1 规则类型:精确/模糊/正则;优先级;评估器;命中即短路 RuleEngine.evaluate(input, ctx)
R2 模板变量 `` / 条件渲染 / Markdown 渲染 TemplateRenderer
R3 React 可视化规则编辑器 + 在线测试 + 版本管理 + 灰度发布 /admin/rules

4.2.2 LLM 集成

轮次 Trae 提示词要点 关键交付
R1 适配层:OpenAI / 通义 / 文心;统一 chat(messages, opts);超时 + 指数退避重试 LLMAdapter 抽象类
R2 Prompt 模板系统 + 动态变量 + A/B 实验框架 PromptManager
R3 内容安全(敏感词 + 模型审核)+ 回复质量评分 + 成本监控 + 触发降级到规则引擎 SafetyGuard + 成本看板

铁律:LLM 输出必须经内容安全过滤;按租户/用户做成本上限;规则引擎是降级兜底。

5. 知识库管理系统

5.1 知识库构建与维护

5.1.1 知识条目管理

轮次 Trae 提示词要点 关键交付
R1 数据模型 + 多级分类 + 标签 + CRUD API + 迁移脚本 articles / categories / tags
R2 Markdown 富文本 + 模板 + 文件上传(MinIO) <KnowledgeEditor/>
R3 版本控制(diff/rollback)+ 草稿/审核/发布工作流 + 变更日志 /kb/versions API

5.1.2 智能搜索与推荐

轮次 Trae 提示词要点 关键交付
R1 Elasticsearch:索引设计 + BM25 + 异步同步(CDC) /search API
R2 Sentence-BERT 向量化 + ES dense_vector + 综合评分 = α·BM25 + β·cos 语义召回 Recall@10 ≥ 0.85
R3 协同过滤 + 内容推荐 + React 搜索界面 + 搜索分析埋点 <KnowledgeSearch/>

铁律:知识库写入触发增量索引,禁止全量重建在线执行;多租户索引隔离。

6. 多渠道接入系统

6.1 Web 聊天窗口

6.1.1 实时聊天组件

轮次 Trae 提示词要点 关键交付
R1 React 18 + TS:聊天窗口 + 消息(文本/图/文件)+ 状态管理 <ChatRoom/>
R2 Socket.io 客户端 + 心跳重连 + 文件上传 + 消息确认(ACK) useSocket() Hook
R3 虚拟滚动 + 离线消息 + Typing 指示 + 表情/快捷回复 滚动 P95 ≥ 60fps

6.1.2 聊天窗口嵌入

Trae 提示词:将 <ChatRoom/> 打包为可嵌入 SDK:iframe + Web Component 双模式;Shadow DOM 样式隔离;postMessage 跨域;提供 init({tenantId, theme, locale}) 配置入口;支持主题/语言/响应式。

6.2 移动端适配

6.2.1 H5 与小程序

Trae 提示词要点
H5 React + Vant + PWA:触摸交互 + 键盘适配 + Service Worker 离线缓存
原生 语音录制(Web Audio API)+ 拍照上传 + 地理位置 + Web Push
小程序 微信原生:聊天页 + Auth + 消息同步;抽象适配层兼容支付宝/百度小程序

铁律:所有端共用同一 WebSocket / REST 接口契约;端差异收敛在适配层。

6.3 API 接口系统

接口形态 Trae 提示词要点
微信公众号 验签 + 消息接收 + 用户同步 + 事件分发
企业微信 内部员工客服 + 外部客户 + 消息路由(按部门/客户群)
RESTful OpenAPI 3.0 + JWT/API Key + Swagger UI + 自动生成 TS / Python SDK
GraphQL Schema + DataLoader 批合 N+1 + Subscription(WebSocket)+ 字段级缓存

7. 系统集成测试

层级 工具 关键校验
单元 Jest + RTL(前端)/ Supertest + mongodb-memory-server 覆盖率 ≥ 80%;Hook / 业务逻辑 / 中间件
E2E Playwright 注册→登录→对话→检索 主流程;多浏览器
性能 k6 / Artillery 1k 并发 P95 < 2s;消息吞吐 ≥ 500 msg/s
安全 OWASP ZAP + npm audit 0 高危;JWT/CSRF/XSS/SQLi 全过

8. 验证 AI 生成的核心功能代码

维度 检查项
正确性 注册→登录→对话→知识检索 完整链路通过 E2E
安全性 密码 bcrypt;所有非公开 API 命中权限中间件;Secret 走环境变量
性能 知识检索 P95 < 500ms;对话端到端 P95 < 2s
可维护性 模块接口契约清晰;统一错误码 + 结构化日志(traceId 贯通)
多租户 数据查询条件含 tenantId;Redis key/ES index 按租户隔离

9. 小结

能力维度 本章交付 进入 Ch19 的判据
用户 JWT + MFA + RBAC + 管理控制台 安全测试 0 高危
对话 NLP 服务 + 上下文 + 规则引擎 + LLM 适配 P95 < 2s,降级链路可演练
知识库 CRUD + 版本 + ES + 向量 + 推荐 Recall@10 ≥ 0.85
渠道 Web / H5 / 小程序 / 公众号 / 企微 / Open API 同一契约,端差异收敛在适配层
测试 单元 / E2E / 性能 / 安全 全跑通 覆盖率 ≥ 80%
Skill core-feature-review 草稿 grep 命中本章铁律即报警

5 条铁律:① 密码必 bcrypt、JWT 必带 exp/iss/aud;② 权限校验在路由层强制;③ LLM 输出经安全过滤 + 成本上限;④ 多租户隔离贯穿数据/缓存/索引;⑤ 端差异收敛在适配层,业务契约唯一。


10. 附录:Vibe Coding 循环参考

本章 6 个核心模块在 AI 辅助下开发,每模块都需走完 描述意图 → AI 生成 → 审查迭代 → 交付 闭环;出现失控时查阅对应 Ch5–Ch8 的循环实录表。

本章模块 对应 Vibe Coding 循环实录
§3 用户管理 / §6 多渠道接入(React + TS) Ch5 §5.5 现代前端循环实录
§4 智能对话引擎 / §5 知识库(Express + API) Ch6 §5.6 后端 API 循环实录 + Ch7 §5.6 数据库循环实录
§3 认证中间件 / RBAC Ch8 §5.6 认证与权限循环实录
3 轮未收敛 触发 Ch2 §4.10 重启策略:拆模块 / 换为 Chat / 手写骨架
修正提示词 严格按 Ch2 §4.9 语法:保留 X / 修 Y / 不要动 Z / 验证信号

本章交付的所有代码需通过对应章节的 §7.4 危险模式扫描 + 修正提示词表的校验。