Files
pj0235-eai_agentplatform/docs/PRD.md
T
eaiadminandClaude Code 16d63de4e1 chore: 工作台产品化进行中的改动
把工作区里其余在制品一并入库,主要是工作台产品化的推进:

  后端:新增 capability_definition / project / my_app_center / office_skill
        接口与 action_definition / skill_definition / project / user_app_center
        模型,config 加路由健康上报。
  前端:新增 frontend/src/skills(Office 技能与 workbuddy 复刻)、
        项目管理、应用中心、能力目录页,以及配套 api / store / config;
        聊天侧新增 SpecialistChip / SpecialistPanel / SkillStrip / AppChatRail
        等组件。
  清理:移除旧 views/tools 下的单页工具(已并入工作台)、_frozen 冻结组件、
        cmd/inspect_oa_debug 调试入口,以及两份调试笔记。
  其它:文档与启动脚本同步。

(这批改动与上一提交的 SY23 工作并行进行,此前已在同一工作区内交织。)

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-17 21:32:35 +08:00

200 lines
8.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# eai_agentplatform — 产品需求文档
> **版本:V1.3 | 部署模式:纯本地化 · Go 单二进制 + SQLite · systemd**
> **最后更新:2026-08-16**
>
> **文档状态:** 本文档描述已交付的 V1 培训底座(学习/考试/AI 答疑闭环),产品已升级为「数字员工平台」。当前产品主轴、分层架构与目标态见 [01_System_Overall/SY03](01_System_Overall/SY03_Knowledge_Centric_Agent_Platform_Strategy.md) 及 SY04–SY17。实际以 `docs/changelog.md` 为准。
---
## 1. 项目概述
### 1.1 项目定位
eai_agentplatform — 纯内网本地化、内部专属数字员工培训平台。用于新人入职培训、公司认知、产品知识学习、销售能力培训、统一考试验收。配套全局 AI 助教 PathCoach,提供答疑、产品查询、销售情景演练。
### 1.2 核心设计原则(强制)
- 100% 本地化部署,不上云、无 OSS、无 MinIO、不依赖公网云服务
- AI 所用 LLM 必须为内网可访问地址(本地 Ollama / vLLM / 内网统一 LLM 网关),严禁直连公网 AI API
- 功能以业务价值为准,杜绝为加而加的冗余功能;权限保持精简(employee/admin 两级)
- 所有产品数据严格对齐《博昇产品与渠道合作表 V1.0》
- 所有课件支持:PPT / PDF / Word / MP4 视频 / 图片
- 所有上传素材必须审批通过才可生效、进入知识库、页面展示
- 考试区分自测 / 正式考试,正式考试永久留存成绩档案
### 1.3 技术栈
| 层级 | 技术 |
|------|------|
| **前端** | Vue3 + Vite + Element Plus + 本地 pdf.js(无 CDN)+ 原生 video |
| **后端** | Go + Gin + GORM + SQLite(modernc 纯Go驱动)|
| **数据库** | SQLite 单文件 `data/eai_agentplatform.db` + Go 原生 brute-force 向量检索(余弦)+ 关键词兜底 |
| **认证** | JWT(golang-jwt)+ bcrypt 密码哈希 |
| **PDF 提取** | LibreOffice + pdftotext(裸进程)|
| **依赖服务** | LibreOffice(PPT/Word→PDF 预览)+ 内网 LLM 服务(OpenAI 兼容接口)|
### 1.4 硬性技术限制
- 不做视频转码,仅支持 H.264 标准 MP4
- 不做语音转写(ASR),视频不进 AI 文本知识库
- 文件白名单:ppt、pptx、pdf、doc、docx、mp4、png、jpg、jpeg
- 单文件上限:文档 200MB / 视频 2GB
- 视频 > 100MB 采用分片上传 + 断点续传
- 数据库只存元数据,不存文件二进制
- 审批通过后的转换 / 文本提取为后台异步任务
---
## 2. 全局布局
全站固定三栏结构:
- **左边导航菜单**(220px,含品牌 + 菜单 + 用户信息)
- **中间主内容区**
- **右侧常驻 AI PathCoach 聊天框**(360px,可收起 / 展开)
### 导航菜单
**普通员工可见:** 首页 | 公司介绍培训 | 产品知识 | 产品销售培训 | 考试
**管理员额外可见:** 知识管理(下拉)| 系统管理(下拉)
### 完整导航结构
```
考试 ─┬─ 自测练习
├─ 正式结业考试
├─ 我的考试记录
└─ 题库管理【管理员】
知识管理【管理员】─┬─ 课件素材管理
└─ 素材审批列表
系统管理【管理员】─┬─ 用户账号管理
├─ 全部考试成绩
└─ 系统参数配置
```
---
## 3. 四大核心业务模块
### 3.1 公司介绍培训(认知层)
**内容:** 企业简介、双主营业务(资本咨询 / AI 产业落地)、对外统一口径
**功能:** 纯阅读页面,可绑定 PPT / 视频课件,员工可提交素材建议
### 3.2 产品知识(静态手册)
**四大分类:** 资本咨询类 | 资质认定辅导类 | AI 咨询与实施类 | 企业级 AI 工具与平台
**产品字段:** 编号、名称、标签、业务说明、收费结构、两档佣金比例、公开课超额分成、版本风险、报备规则
**页面按钮:** 前往对应销售培训课程 | 向 AI 提问(自动注入产品上下文)
**管理员维护:** 新增 / 编辑 / 停用产品,支持逐条录入与批量导入(Excel / JSON)
### 3.3 产品销售培训(能力层)
**四大课程:** 资本产品谈单话术 | 资质辅导销售逻辑 | AI 公开课 / 诊断销售技巧 | AI 平台产品方案匹配
**课程内容:** 适配客户 & 禁接客户 | 标准话术 | 谈单流程、异议处理 | 交付避坑、报备规范
**管理员维护:** 编辑课程正文,绑定 / 解绑对应产品
### 3.4 考试系统
**题型:** 单选题、多选题、判断题
**题库管理(管理员):** 录入 / 编辑 / 停用题目,归属知识域(公司介绍 / 产品知识 / 销售培训)
**组卷规则:** 考试名称、类型(自测/正式)、抽题知识域、题量、总分、合格线、考试时长、是否随机抽题
| 模式 | 特点 |
|------|------|
| **自测练习** | 不限次数,即时对错 + 答案,不保存记录 |
| **正式结业考试** | 提交后永久保存档案(得分、正确率、答题明细、是否通过) |
---
## 4. 知识库课件体系
### 素材来源
- **员工提交素材建议**(弹窗提交,无独立页面)
- **管理员直接上传**(自动通过)
### 素材状态
`pending`(待审批)→ `approved`(已通过)→ `rejected`(已驳回)
### 核心规则
- 未审批 / 驳回素材前台完全不可见、不解析、不进 AI
- 审批通过才执行:文档转 PDF + 文本提取入库
- 视频(MP4)审批通过后仅支持在线预览,不提取文本
### 转换与提取管线
PPT/Word → LibreOffice 转 PDF → pdftotext 提取文本 → 按段落切片写入 knowledge_chunk
---
## 5. AI PathCoach
- **位置:** 全局常驻右侧,可收起
- **自动上下文:** 打开产品 / 课程 → 自动带入当前页面全部资料
- **快捷按钮:** 客户情景演练 | 查询佣金/规则 | 产品对比
- **AI 底座:** OpenAI 兼容接口(内网 Ollama / vLLM / 内网网关)
- **知识检索:** Go 原生 brute-force 向量检索(余弦)+ 关键词兜底(对齐 D07/D13)
- **能力边界:** 仅解答公司、产品、佣金、销售话术、业务规则,禁止闲聊和编造数据
---
## 6. 认证与鉴权
- **认证:** JWT 登录签发 access token,密码 bcrypt 哈希存储
- **鉴权:** 后端 API 统一鉴权,普通接口校验 token,管理员接口额外校验 role == admin
- **账号:** 仅管理员可创建 / 禁用账号,禁用账号即时失效
---
## 7. 明确禁止开发的功能(V1.1 约束,部分已随平台升级放开)
- ~~无学习进度仪表盘、无学情分析、无能力档案~~ → V1.6 起已实现(积分/排行榜/证书/学习档案/能力雷达)
- 无复杂权限、无多级角色、无多租户洋葱模型 → 仍保持
- 无视频转码、无语音转写(ASR)→ 仍保持
- 无外网依赖、严禁直连公网 AI API → 仍保持
- 无云存储、无 MinIO → 仍保持
- 无强制学习任务、无课程解锁限制 → 仍保持
---
## 8. 数据表设计(核心字段摘要)
| 表 | 关键字段 |
|----|---------|
| **user** | id, username, password_hash, full_name, role(employee/admin), status(active/disabled) |
| **product** | id, code, name, category, tags, description, pricing, commission_recommend, commission_negotiate, public_course_bonus, version_risk, report_rules, status |
| **course** | id, code, name, category, target_customers, forbidden_customers, scripts, sales_process, objection_handling, delivery_pitfalls, report_rules, related_product_id |
| **media_file** | id, filename, file_path, file_size, file_type, status(pending/approved/rejected), source, submitter_id, bind_type, bind_id, extract_status |
| **knowledge_chunk** | id, media_file_id, knowledge_source_id, source_type, source_id, chunk_index, content |
| **question** | id, domain, course_id, type(single/multiple/judge/essay), stem, options(JSON), answer(JSON), explanation, status |
| **exam_paper** | id, name, type(self_test/formal), domain, question_count, total_score, pass_score, duration_minutes, randomize |
| **exam_record** | id, user_id, paper_id, exam_name, score, total_score, pass_score, passed, correct_count, wrong_count, detail_json |
---
## 9. 部署架构
```
Nginx(反代 + 前端 Vue 静态打包)
→ eai_agentplatform-server(Go 单二进制 :8080)
→ SQLite 单文件 data/eai_agentplatform.db
→ LibreOffice + pdftotext(裸进程)
→ 内网 LLM 服务(Ollama / vLLM / 内网网关)
→ 文件存储:data/kb_data
```
完全无外网、无云服务、无 Docker、无 MySQL、无 FAISS。