baodan/docs/保险智能客服系统_文档规范.md
2026-07-23 08:38:11 +08:00

7.7 KiB
Raw Blame History

文档规范

一个人开发不等于不需要文档。文档是给未来的自己看的——三个月后你绝对记不住今天写的代码为什么这样设计。

一、需要维护哪些文档

文档 位置 什么时候写 什么时候更新
需求文档 docs/保险智能客服系统_需求文档.md 开发前写完 需求变更时
接口文档 docs/保险智能客服系统_API接口文档.md 写后端接口前 接口变更时
数据库设计 docs/保险智能客服系统_需求文档.md(第六章) 写后端前 表结构变更时
部署文档 docs/部署文档_完整版.md 第一次部署时 部署流程变化时
变更日志 CHANGELOG.md 每次发版 每次发版

二、需求文档

2.1 格式要求

每个功能模块用以下模板:

## 模块名称XXX

### 功能概述
一句话说明这个模块做什么、给谁用。

### 用户故事
作为 [角色],我希望 [操作],以便 [目的]。

### 功能清单
| 编号 | 功能点 | 优先级 | 状态 |
|------|--------|--------|------|
| F-01 | XXX | P0必须/ P1重要/ P2可选 | 待开发/开发中/已完成 |

### 业务规则
1. 规则描述
2. 规则描述

### 界面原型
(如果有的话,贴截图或画草图)

### 异常场景
| 场景 | 系统行为 |
|------|---------|
| XXX 失败 | 提示用户 XXX |

2.2 本项目的需求文档

所有需求集中在 docs/保险智能客服系统_需求文档.md 一个文件中,按模块章节组织:

  • 第一章:智能问答(对话交互、回复展示、检索范围、反馈纠错)
  • 第二章产品推荐方案信息录入、AI匹配、方案展示
  • 第三章:知识库管理(文档上传、状态监控、检索测试)
  • 第四章:企微机器人(单聊、群聊 @触发、消息回调)
  • 第五章用户与权限企微OAuth、角色权限
  • 第六章:数据库设计
  • 第七章系统配置LLM模型、Prompt管理

三、接口文档

3.1 格式要求

每个接口用以下模板:

## 接口名称

### 基本信息
- **URL**: `POST /api/xxx/yyy`
- **描述**: 一句话说明
- **认证**: 需要 Token / 不需要

### 请求参数
| 字段 | 类型 | 必填 | 说明 | 示例 |
|------|------|------|------|------|
| name | string | 是 | 用户姓名 | "张三" |
| age | int | 是 | 年龄1-150 | 30 |

### 请求示例
```json
{
  "name": "张三",
  "age": 30
}

响应参数

字段 类型 说明
code int 状态码0=成功
message string 提示信息
data object 业务数据

响应示例

{
  "code": 0,
  "message": "success",
  "data": { ... }
}

错误码

code 说明
0 成功
1001 参数错误
1002 未授权
2001 BaoDan 调用失败
2002 企微 API 调用失败

注意事项

  • 特殊说明

### 3.2 本项目的接口列表

你的后端Flask只写这几个接口不多不少

| 编号 | 接口 | 说明 |
|------|------|------|
| API-01 | `POST /api/wecom/callback` | 企微消息回调GET 验证 + POST 接收) |
| API-02 | `GET /api/wecom/oauth` | 企微 OAuth 登录入口 |
| API-03 | `GET /api/wecom/oauth/callback` | 企微 OAuth 回调 |
| API-04 | `POST /api/recommend/generate` | 产品推荐(调 BaoDan Workflow |
| API-05 | `GET /health` | 健康检查 |

其余所有接口(对话、知识库管理、用户管理等)全部走 **BaoDan 自己的 API**,你不需要重复写。

### 3.3 BaoDan API 参考

BaoDan 的 API 文档在你部署后的地址:
- `http://你的服务器:5001/console/api` (管理端 API
- BaoDan 官方文档https://docs.baodan.ai/guides/application-publishing/developing-with-apis

你用到的 BaoDan API 主要有:

| API | 用途 | 你在哪用 |
|-----|------|---------|
| `POST /chat-messages` | 发送对话消息 | 企微机器人后端 |
| `POST /workflows/run` | 执行工作流 | 产品推荐后端 |
| `GET /datasets` | 知识库列表 | 不需要调,直接用 BaoDan 后台 |
| `POST /datasets/{id}/documents` | 上传文档 | 批量导入脚本 |

---

## 四、数据库设计

### 4.1 说明

你的项目大部分数据存在 BaoDan 的数据库里PostgreSQL你自己只需要建**少量额外的表**

| 表 | 用途 | 你是否需要建 |
|---|---|---|
| 用户表、对话表、知识库表等 | BaoDan 核心数据 | ❌ BaoDan 自己管理 |
| 企微用户映射表 | 企微 userid ↔ BaoDan user 映射 | ✅ 你建 |
| 推荐方案记录表 | 产品推荐的历史记录 | ✅ 你建(第二期) |
| 系统配置表 | 你的后端配置 | ❌ 用 .env 文件够了 |

### 4.2 表结构定义格式

```markdown
## 表名wecom_user_mapping企微用户映射表

### 用途
存储企微用户 ID 与 BaoDan 用户 ID 的对应关系,避免重复创建 BaoDan 用户。

### 字段
| 字段 | 类型 | 约束 | 说明 |
|------|------|------|------|
| id | SERIAL | PRIMARY KEY | 自增主键 |
| wecom_userid | VARCHAR(64) | NOT NULL, UNIQUE | 企微用户 ID |
| baodan_user_id | VARCHAR(64) | NOT NULL | BaoDan 内部用户 ID |
| username | VARCHAR(128) | | 用户姓名 |
| department | VARCHAR(128) | | 所属部门 |
| created_at | TIMESTAMP | DEFAULT NOW() | 创建时间 |
| last_active_at | TIMESTAMP | | 最后活跃时间 |

### 索引
- UNIQUE INDEX ON wecom_userid
- INDEX ON baodan_user_id

4.3 设计原则

  1. 能不建表就不建表 — 配置信息用 .env日志用 BaoDan 自带的
  2. 字段加注释 — 每个字段都要有"说明"列
  3. 时间字段用 TIMESTAMP — 统一用 created_atupdated_at
  4. 主键用 SERIAL — 简单够用,不需要 UUID
  5. 字符串长度明确 — VARCHAR(64)、VARCHAR(128) 等,不用 TEXT

五、部署文档

5.1 格式要求

## 部署步骤

### 环境要求
| 软件 | 版本 | 用途 |
|------|------|------|
| ... | ... | ... |

### 安装步骤
1. 第一步
   ```bash
   命令
  1. 第二步 ...

配置说明

配置项 文件 说明 示例值
... ... ... ...

验证方式

  • 检查项 1
  • 检查项 2

常见问题

Q: 出现 XXX 错误怎么办? A: 原因是 XXX解决方法是 XXX。


### 5.2 需要写哪些部署文档

docs/ ├── 快速启动指南.md # 本地开发一键启动 ├── 部署指南.md # BaoDan 源码集成指南 ├── 部署文档_完整版.md # 完整部署 + 架构图 + 环境变量 ├── 宝塔面板部署指南.md # 宝塔面板 Docker 部署 ├── 企业微信接入指南.md # 企微后台配置步骤 └── 前端移动端适配指南.md # 移动端适配方案


---

## 六、变更日志CHANGELOG.md

每次发版时记录:

```markdown
# 变更日志

## [0.2.0] - 2026-06-20

### 新增
- 产品推荐方案功能
- 企微群聊 @机器人 支持

### 修复
- 企微消息回调超时问题

### 变更
- Prompt 优化,回答更简洁

## [0.1.0] - 2026-06-01

### 新增
- BaoDan 部署 + 知识库入库
- 智能问答基础功能
- 企微单聊机器人
- 企微 OAuth 登录

七、文档维护原则

  1. 代码改了文档必须跟着改 — 不然文档就是误导
  2. 不要写废话 — 每句话都要有信息量
  3. 用表格 — 结构化信息用表格,比大段文字清晰
  4. 贴真实示例 — 请求/响应示例用真实数据,不要用 "xxx"
  5. 先写再改 — 不要追求一次写完美,先把框架填上,后面慢慢改