docs: 重构仓库文档目录并迁移训练素材

按当前架构重组 docs 目录,统一中文命名与目录分层,并将训练原材料迁移到独立目录以保持架构文档边界清晰。
This commit is contained in:
eaiadmin
2026-09-22 23:23:16 +08:00
parent 9288f0215a
commit 90031b75f3
9046 changed files with 23786 additions and 3483 deletions
@@ -0,0 +1,154 @@
# BG01 — 后端总体分层与路由总表
> 状态:当前有效
> 协议:HTTP / JSON
> 认证:JWT Bearer
> 代码依据:`backend-go/internal/api/router.go`
> 最后更新:2026-09-21
## 1. 当前后端分层
当前后端按五层理解最准确:
1. 平台治理底座
2. 对象中心
3. 运行中心
4. 知识底座
5. 兼容业务域
## 2. 当前主要路由分组
| 分层 | 主要路由 | 当前作用 |
|---|---|---|
| 平台治理底座 | `/api/auth/*`、`/api/system/*`、`/api/ai/*` | 登录鉴权、管理员治理、AI 路由与审计 |
| 对象中心 | `/api/specialists`、`/api/skills`、`/api/xapps`、`/api/actions`、`/api/connectors` | specialist / skill / xapp / action / connector 定义入口 |
| 运行中心 | `/api/workbench/*`、`/api/my/tasks`、`/api/tasks`、`/api/projects`、`/api/chat/message` | task / project / Workbench / 对话执行 |
| 知识底座 | `/api/knowledge/*`、`/api/media/*` | 知识空间、知识源、FAQ、素材与审批 |
| 兼容业务域 | `/api/company-train`、`/api/products`、`/api/courses`、`/api/exam/*` | 培训、考试、产品、课程等兼容场景 |
## 3. 当前对象与运行关系
当前后端核心关系可以压缩成一句话:
`平台底座 -> 承载对象中心 -> 由 task / project 形成运行容器 -> 由 knowledge 提供底座支撑 -> 兼容业务域通过 xapp 和业务接口继续运行`
## 4. 当前总判断
- `xapp` 是对象中心的一等对象
- `task / project` 是当前运行容器
- `/api/chat/message` 是当前 Workbench 主对话入口
- `training / exam` 当前属于兼容业务域,不承担后端主轴解释职责
| `POST` | `/api/exam/submit` | 提交考试 |
| `GET` | `/api/exam/record` | 我的考试记录 |
| `GET` | `/api/exam/record/:record_id` | 考试记录详情 |
| `GET` | `/api/exam/mistakes` | 错题本 |
| `PUT` | `/api/exam/mistakes/:id/resolve` | 标记错题已掌握 |
| `POST` | `/api/exam/mistakes/practice` | 错题练习 |
| `GET` | `/api/exam/certificates` | 我的证书 |
| `GET` | `/api/exam/certificates/:id` | 证书详情 |
### 7.3 学习与积分
| 方法 | 路径 | 说明 |
|---|---|---|
| `POST` | `/api/learning/progress` | 上报学习进度 |
| `GET` | `/api/learning/me` | 我的学习进度 |
| `GET` | `/api/my/position` | 我的岗位 |
| `GET` | `/api/my/profile` | 我的资料 |
| `GET` | `/api/points/me` | 我的积分 |
| `GET` | `/api/points/leaderboard` | 积分排行榜 |
| `GET` | `/api/notes` | 学习笔记列表 |
| `POST` | `/api/notes` | 创建学习笔记 |
| `PUT` | `/api/notes/:id` | 更新学习笔记 |
| `DELETE` | `/api/notes/:id` | 删除学习笔记 |
---
## 8. 管理员治理接口
### 8.1 对象治理
| 方法 | 路径 | 说明 |
|---|---|---|
| `POST` | `/api/specialists` | 创建专家 |
| `PUT` | `/api/specialists/:id` | 更新专家 |
| `DELETE` | `/api/specialists/:id` | 删除专家 |
| `POST` | `/api/skills` | 创建技能 |
| `PUT` | `/api/skills/:id` | 更新技能 |
| `DELETE` | `/api/skills/:id` | 删除技能 |
| `POST` | `/api/xapps` | 创建 App |
| `PUT` | `/api/xapps/:id` | 更新 App |
| `DELETE` | `/api/xapps/:id` | 删除 App |
| `POST` | `/api/actions` | 创建 Action |
| `PUT` | `/api/actions/:id` | 更新 Action |
| `DELETE` | `/api/actions/:id` | 删除 Action |
### 8.2 任务与工件治理
| 方法 | 路径 | 说明 |
|---|---|---|
| `POST` | `/api/tasks` | 创建任务 |
| `PUT` | `/api/tasks/:id` | 更新任务 |
| `PUT` | `/api/tasks/:id/status` | 更新任务状态 |
| `DELETE` | `/api/tasks/:id` | 删除任务 |
| `POST` | `/api/tasks/:id/actions` | 执行任务动作 |
| `PUT` | `/api/artifacts/:id/status` | 更新交付物状态 |
### 8.3 组织治理
| 方法 | 路径 | 说明 |
|---|---|---|
| `GET` | `/api/departments` | 部门列表 |
| `POST` | `/api/departments` | 创建部门 |
| `PUT` | `/api/departments/:id` | 更新部门 |
| `DELETE` | `/api/departments/:id` | 删除部门 |
| `GET` | `/api/positions` | 岗位列表 |
| `POST` | `/api/positions` | 创建岗位 |
| `PUT` | `/api/positions/:id` | 更新岗位 |
| `DELETE` | `/api/positions/:id` | 删除岗位 |
| `GET` | `/api/positions/:id/knowledge` | 岗位知识要求 |
| `PUT` | `/api/positions/:id/knowledge` | 保存岗位知识要求 |
| `GET` | `/api/positions/:id/blueprint` | 岗位考试蓝图 |
| `PUT` | `/api/positions/:id/blueprint` | 保存岗位考试蓝图 |
| `PUT` | `/api/users/:id/position` | 设置用户岗位 |
### 8.4 系统治理
| 方法 | 路径 | 说明 |
|---|---|---|
| `GET` | `/api/system/users` | 用户列表 |
| `POST` | `/api/system/users` | 创建用户 |
| `PUT` | `/api/system/users/:id` | 更新用户 |
| `GET` | `/api/system/users/:id/overview` | 用户概览 |
| `GET` | `/api/system/exam-records` | 全部考试记录 |
| `GET` | `/api/system/exam-records/export` | 导出考试记录 |
| `GET` | `/api/system/exam-records/:id` | 考试记录详情 |
| `DELETE` | `/api/system/exam-records/:id` | 删除考试记录 |
| `GET` | `/api/system/dashboard` | 系统看板 |
| `GET` | `/api/system/exam-stats` | 考试统计 |
| `GET` | `/api/system/exam-stats-by-position` | 按岗位考试统计 |
| `GET` | `/api/system/department-stats` | 部门统计 |
| `GET` | `/api/system/certificates` | 证书统计 |
| `GET` | `/api/system/exam-coverage` | 考试覆盖统计 |
| `GET` | `/api/system/learning-progress` | 学习进度统计 |
| `GET` | `/api/system/config` | 系统配置 |
| `PUT` | `/api/system/config` | 更新系统配置 |
### 8.5 AI 配置治理
| 方法 | 路径 | 说明 |
|---|---|---|
| `GET` | `/api/ai/config` | 获取 AI 配置 |
| `PUT` | `/api/ai/config` | 保存 AI 配置 |
| `POST` | `/api/ai/reload` | 热重载 AI 配置 |
| `GET` | `/api/ai/secrets-status` | AI 密钥状态 |
| `GET` | `/api/ai/usage/users` | 按用户查看 AI 用量 |
---
## 9. 当前口径说明
- 当前主前门是 `POST /api/chat/message`
- `/api/ai-chat/*` 继续保留,属于兼容对话入口
- 产品、课程、考试、公司介绍仍在运行,但已经不构成后端唯一主轴
- 当前后端真正的中心是:**对象定义 + 任务运行 + 知识底座 + 兼容业务域**
@@ -0,0 +1,46 @@
# BG02 — 认证、用户与管理员治理
> 状态:当前有效
> 代码依据:`backend-go/internal/api/auth.go`、`backend-go/internal/api/system.go`
> 最后更新:2026-09-21
## 1. 当前职责
- 用户登录
- JWT 鉴权
- 当前用户信息读取
- 管理员治理用户
- 承载 AI 点数、学习积分、部门岗位等治理字段
## 2. 当前认证流程
```text
POST /api/auth/login
-> 校验用户名和密码
-> 校验用户状态
-> 签发 JWT
-> 返回 token 与用户信息
```
## 3. 当前治理边界
管理员治理主要落在:
- `GET /api/system/users`
- `POST /api/system/users`
- `PUT /api/system/users/:id`
- `GET /api/system/users/:id/overview`
## 4. 当前账户字段
`user` 当前同时承载:
- 登录身份
- 组织字段
- AI 点数
- 学习积分
## 5. 当前判断
- 认证与用户治理属于平台治理底座
- 它为对象中心、运行中心和兼容业务域提供统一身份基础
@@ -0,0 +1,43 @@
# BG03 — AI 路由、用量、点数与审计
> 状态:当前有效
> 代码依据:`backend-go/internal/api/ai_admin.go`、`backend-go/internal/api/ai_usage.go`
> 最后更新:2026-09-21
## 1. 当前职责
- 管理 AI 路由配置
- 管理配置热重载与密钥状态
- 聚合 AI 用量
- 记录 AI 审计日志
- 承接点数消耗统计
## 2. 当前核心接口
- `GET /api/ai/config`
- `PUT /api/ai/config`
- `POST /api/ai/reload`
- `GET /api/ai/secrets-status`
- `GET /api/ai/usage`
- `GET /api/ai/usage/users`
## 3. 当前核心表
AI 用量与审计统一落在 `ai_call_log`。
关键字段包括:
- `usage_kind`
- `specialist_key`
- `provider`
- `ai_route_id`
- `model`
- `credits_charged`
- `status`
- `latency_ms`
## 4. 当前判断
- AI 路由与用量属于平台治理底座
- `user.ai_points` 与 `user.learning_points` 已经分离
- AI 配置与审计为 Workbench、对象调用和办公技能提供统一底层能力
@@ -0,0 +1,419 @@
# BG04 — 数据库总览
> 状态:当前有效
> 引擎:SQLite
> 建表方式:GORM AutoMigrate
> 最后更新:2026-09-21
当前数据库按五个域理解最清楚:
1. 组织与治理域
2. 对象定义域
3. 运行域
4. 知识底座域
5. 兼容业务域
## 1. 组织与治理域
主要包括:
- `user`
- `department`
- `position`
- `system_config`
- `ai_call_log`
## 2. 对象定义域
主要包括:
- `specialist`
- `skill_definition`
- `xapp_definition`
- `user_xapp_center`
- `action_definition`
连接器当前主要通过注册与运行时目录表达,没有独立核心表承担全部定义。
## 3. 运行域
主要包括:
- `project`
- `task_record`
- `task_run`
- `task_artifact`
## 4. 知识底座域
主要包括:
- `knowledge_space`
- `knowledge_source`
- `knowledge_chunk`
- `knowledge_faq`
- `media_file`
## 5. 兼容业务域
主要包括:
- `company_train`
- `product`
- `course`
- `learning_progress`
- `question`
- `exam_paper`
- `exam_record`
- `mistake_record`
- `certificate`
## 6. 当前判断
- 当前数据库已经不是旧培训系统单轴结构
- 对象定义、任务运行和知识底座共同构成主干
- 培训考试相关表继续存在,但统一归入兼容业务域理解
### 4.3 `task_artifact`
任务交付物表,核心字段:
- `task_id`
- `specialist_key`
- `title`
- `artifact_type`
- `status`
- `content_text`
- `content_json`
- `source_refs_json`
- `created_by_run_id`
### 4.4 `project`
项目表,核心字段:
- `name`
- `instruction`
- `template_key`
- `owner`
- `pinned`
- `specialist_keys`
- `skill_keys`
- `connector_keys`
说明:
- 项目是任务容器
- 默认挂载能力以 JSON 字符串形式存储在各类 `*_keys` 字段中
---
## 5. 知识与素材域
### 5.1 `media_file`
素材文件表,核心字段:
- `filename`
- `stored_name`
- `stored_path`
- `file_ext`
- `file_size`
- `status`
- `source`
- `submitter_id`
- `bind_type`
- `bind_id`
- `remark`
- `reject_reason`
- `audit_by`
- `audit_at`
- `knowledge_space_key`
- `extracted`
说明:
- `status`:`pending` / `approved` / `rejected`
- `source`:`employee` / `admin`
- `bind_type`:`company` / `product` / `course` / `none`
### 5.2 `knowledge_space`
知识空间表,核心字段:
- `key`
- `name`
- `description`
- `scope`
- `status`
- `sort_order`
- `is_default`
### 5.3 `knowledge_source`
结构化知识源表,核心字段:
- `title`
- `file_path`
- `category`
- `domain`
- `source_version`
- `audit_status`
- `knowledge_space_key`
- `audit_by`
- `audit_at`
- `reject_reason`
- `ingested`
### 5.4 `knowledge_chunk`
知识块表,核心字段:
- `media_file_id`
- `knowledge_source_id`
- `source_type`
- `source_id`
- `knowledge_space_key`
- `chunk_index`
- `content`
说明:
- `media_file_id` 与 `knowledge_source_id` 对应两类知识来源
- 当前搜索与问答最终都消费这张表
### 5.5 `knowledge_faq`
FAQ 表,核心字段:
- `knowledge_space_key`
- `question`
- `answer`
- `similar_questions`
- `keywords`
- `status`
- `sort_order`
- `hit_count`
### 5.6 `study_note`
学习笔记表,核心字段:
- `user_id`
- `item_type`
- `item_id`
- `content`
---
## 6. 培训考试兼容域
### 6.1 `product`
产品表继续存在,承接兼容产品知识域。
核心字段:
- `code`
- `name`
- `category`
- `tags`
- `description`
- `pricing`
- `commission_recommend`
- `commission_negotiate`
- `public_course_bonus`
- `version_risk`
- `report_rules`
- `status`
### 6.2 `course`
课程表继续存在,承接兼容课程域。
核心字段:
- `code`
- `name`
- `category`
- `target_customers`
- `forbidden_customers`
- `scripts`
- `sales_process`
- `objection_handling`
- `delivery_pitfalls`
- `report_rules`
- `related_product_id`
- `status`
### 6.3 `question`
考试题目表,核心字段:
- `domain`
- `course_id`
- `type`
- `stem`
- `options`
- `answer`
- `explanation`
- `status`
说明:
- 当前 `type` 已包含 `essay`
- `options` 与 `answer` 按 JSON 文本存储
### 6.4 `exam_paper`
考试配置表,核心字段:
- `name`
- `type`
- `domain`
- `question_count`
- `total_score`
- `pass_score`
- `duration_minutes`
- `randomize`
- `position_id`
- `status`
### 6.5 `exam_record`
考试记录表,核心字段:
- `user_id`
- `paper_id`
- `exam_name`
- `score`
- `total_score`
- `pass_score`
- `passed`
- `correct_count`
- `wrong_count`
- `detail_json`
- `submitted_at`
### 6.6 `certificate`
证书表,核心字段:
- `user_id`
- `exam_record_id`
- `user_name`
- `exam_name`
- `score`
- `total_score`
- `pass_score`
- `cert_no`
- `issued_at`
### 6.7 `mistake_record`
错题本表,核心字段:
- `user_id`
- `question_id`
- `source`
- `question_type`
- `question_stem`
- `user_answer`
- `correct_answer`
- `explanation`
- `resolved`
### 6.8 `learning_progress`
学习进度表,核心字段:
- `user_id`
- `item_type`
- `item_id`
### 6.9 `point_event`
积分流水表,核心字段:
- `user_id`
- `event_type`
- `points`
- `ref_type`
- `ref_id`
### 6.10 `position_knowledge`
岗位知识要求表,核心字段:
- `position_id`
- `domain`
- `course_id`
- `product_id`
- `required_level`
- `weight`
- `is_mandatory`
### 6.11 `position_exam_blueprint`
岗位考试蓝图表,核心字段:
- `position_id`
- `domain`
- `type`
- `count`
---
## 7. 当前关系理解
当前核心关系可以概括为:
```text
user
├─< task_record
├─< project
├─< ai_call_log
├─< study_note
├─< learning_progress
├─< exam_record
├─< certificate
├─< point_event
└─1 user_xapp_center
specialist
├─< task_record
├─< task_run
└─< task_artifact
project
└─< task_record
task_record
├─< task_run
└─< task_artifact
knowledge_space
├─< knowledge_source
├─< knowledge_chunk
└─< knowledge_faq
media_file
└─< knowledge_chunk
knowledge_source
└─< knowledge_chunk
position
├─< user
├─< position_knowledge
├─< position_exam_blueprint
└─< exam_paper
```
---
## 8. 当前结论
- 当前数据库的真实形态是:
**对象定义域 + 任务运行域 + 知识底座域已经成立,培训考试兼容域继续并存的混合态单库。**
@@ -0,0 +1,15 @@
# 01_平台治理底座 — 目录说明
本目录描述当前后端的平台底座能力,包括:
- 启动与路由
- 认证与管理员治理
- AI 路由、用量、点数与审计
- 数据库总体结构
建议阅读顺序:
1. `BG01_后端总体分层与路由总表.md`
2. `BG02_认证_用户_管理员治理.md`
3. `BG03_AI路由_用量_点数与审计.md`
4. `BG04_数据库总览.md`