# eai_agentplatform_app 博昇内部培训平台 — 产品需求文档 > **版本:V1.1 最终版(V1 培训底座基线)| 纯本地化部署 | 极简架构 | 全功能闭环** > **最后更新:2026-08-15** > > **文档状态:V1 基线,已升级。** 本项目已于 2026-08 升级为「数字员工平台」(对外以「专员」为能力单元,分通用数字员工 / 行业专属数字员工),当前产品主轴、分层架构与目标态见 [01_System_Overall/SY03](01_System_Overall/SY03_Knowledge_Centric_Agent_Platform_Strategy.md) 及 SY04–SY17。本文档描述的是已交付的 V1 培训底座(学习/考试/AI 答疑闭环),其中 §7「明确禁止」已随 V1.6 起部分放开,实际以 `docs/changelog.md` 为准。 --- ## 1. 项目概述 ### 1.1 项目定位 博昇 纯内网本地化、内部专属员工培训系统。用于新人入职培训、公司认知、产品知识学习、销售能力培训、统一考试验收。配套全局 AI 助教 PathCoach,提供答疑、产品查询、销售情景演练。 ### 1.2 核心设计原则(强制) - 100% 本地化部署,不上云、无 OSS、无 MinIO、不依赖公网云服务 - AI 所用 LLM 必须为内网可访问地址(本地 Ollama / vLLM / 内网统一 LLM 网关),严禁直连公网 AI API - 极致极简,杜绝所有冗余功能、统计、学情分析、复杂权限 - 所有产品数据严格对齐《博昇产品与渠道合作表 V1.0》 - 所有课件支持:PPT / PDF / Word / MP4 视频 / 图片 - 所有上传素材必须审批通过才可生效、进入知识库、页面展示 - 考试区分自测 / 正式考试,正式考试永久留存成绩档案 ### 1.3 技术栈 | 层级 | 技术 | |------|------| | **前端** | Vue3 + Vite + Element Plus + 本地 pdf.js(无 CDN)+ 原生 video | | **后端** | Go + Gin + GORM(原 V1.1 为 FastAPI,已于 V1.2 重写)| | **数据库** | MySQL 8.0 + FAISS 向量检索 | | **认证** | 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 → PyMuPDF 提取文本 → 按段落切片写入 knowledge_chunk --- ## 5. AI PathCoach - **位置:** 全局常驻右侧,可收起 - **自动上下文:** 打开产品 / 课程 → 自动带入当前页面全部资料 - **快捷按钮:** 客户情景演练 | 查询佣金/规则 | 产品对比 - **AI 底座:** OpenAI 兼容接口(内网 Ollama / vLLM / LLM 网关) - **知识检索:** MySQL 全文索引(关键词)+ FAISS 向量检索(语义)双路混合召回 - **能力边界:** 仅解答公司、产品、佣金、销售话术、业务规则,禁止闲聊和编造数据 --- ## 6. 认证与鉴权 - **认证:** JWT 登录签发 access token,密码 bcrypt 哈希存储 - **鉴权:** 后端 API 统一鉴权,普通接口校验 token,管理员接口额外校验 role == admin - **账号:** 仅管理员可创建 / 禁用账号,禁用账号即时失效 --- ## 7. 明确禁止开发的功能(V1.1 约束,部分已随平台升级放开) - ~~无学习进度仪表盘、无学情分析、无能力档案~~ → V1.6 起已实现(积分/排行榜/证书/学习档案/能力雷达) - ~~无向量检索~~ → 已采用 MySQL + FAISS 混合检索 - 无复杂权限、无多级角色、无多租户洋葱模型 → 仍保持 - 无视频转码、无语音转写(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, stored_name, stored_path, file_ext, file_size, status(pending/approved/rejected), source, submitter_id, bind_type, bind_id, extracted | | **knowledge_chunk** | id, media_file_id, source_type, source_id, chunk_index, content | | **question** | id, domain, course_id, type(single/multiple/judge), 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 静态打包) → FastAPI 后端服务 → MySQL 数据库 → LibreOffice 文档转换容器 → 内网 LLM 服务(Ollama / vLLM / 内网网关) → 文件存储:本地磁盘 data/media ``` 完全无外网、无云服务。