Files
pj0235-eai_agentplatform/docs/changelog.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

8.8 KiB
Raw Blame History

eai_agentplatform — 变更日志

最后更新:2026-08-16


V1.7(2026-08-16)

组织架构 + 消息通知落地。 补齐「部门组织架构管理」与「站内消息通知」两大能力, 打通「按部门学情拆分」与「事件推送提醒」;社交社区/讨论区明确不做(定死)。

新增

  • 部门组织架构:department 部门字典表 + GET/POST/PUT/DELETE /api/departments(admin); 部门改名时同步 user.department 字符串,有员工归属的部门拒绝删除; GET /api/system/department-stats 按部门聚合(人数/学习积分/公司介绍已读率/ 人均产品课程/正式考试通过率/平均分);前端「系统管理 → 部门管理」页(部门列表 + 部门学情两个 Tab), 用户管理「部门」字段改为可搜索下拉(支持自建输入,兼容历史自由文本)
  • 站内消息通知:notification 表 + 事件钩子(发布正式考试 → 通知全员; 正式考试通过 → 通知本人并引导查看证书;用户被设岗 → 通知本人); GET /api/notifications、GET /api/notifications/unread-count、 PUT /api/notifications/:id/read、PUT /api/notifications/read-all; 前端「消息通知」页 + 侧栏铃铛角标(60s 轮询未读数)

定死(不做)

  • 社交社区/讨论区:明确不实现,后续也不纳入路线图

V1.6(2026-08-16)

学员成长体系落地(游戏化 + 认证 + 学情)。 对标主流企业培训平台(云学堂/绚星/腾讯乐享/Absorb 等) 三大高频能力,突破原「极致极简、杜绝统计/学情分析」设计边界,补齐学员成长激励与学习效果反馈闭环。

新增

  • 学习积分 + 排行榜:point_event 积分流水表 + user.learning_points 冗余总额; 首次浏览公司/产品/课程、自测提交、正式考试通过、错题标记已掌握均自动加分(规则集中常量,见下); GET /api/points/me(我的积分+流水)、GET /api/points/leaderboard(全员排行榜含名次); 前端 /exam/leaderboard「学习排行榜」页
  • 考试合格证书:certificate 表;正式考试通过自动颁发(按 exam_record_id 幂等去重); GET /api/exam/certificates + GET /api/exam/certificates/:id(学员)、GET /api/system/certificates(管理员); 前端 /exam/my-certificates「我的证书」页(含可打印证书弹窗)
  • 学习档案 / 能力雷达:GET /api/my/profile 返回学习统计(浏览/自测/正式/错题/积分)、 按域(公司认知/产品知识/销售能力)能力雷达、薄弱域、正式成绩趋势; 前端 /exam/my-profile「我的学习档案」页 + 新增 RadarChart SVG 雷达图组件

积分规则(集中 internal/api/points.go 常量,可一键调整)

行为 积分
首次浏览公司介绍 +10
首次浏览单个产品 +2
首次浏览单门课程 +5
自测提交一次 +5
正式考试通过 +50
错题标记已掌握 +3

设计说明

  • 能力雷达按「正式考试答题明细 → 题目 → 知识域」反推各域正确率;自测不落分(P03),故自测次数由积分流水统计
  • 积分流水逐笔可审计;「错题标记已掌握」仅在未掌握→已掌握时加分,避免反复切换刷分

V1.5(2026-08-16)

岗位能力闭环补全(P1 + P2)落地。 在 P0 岗位驱动组卷之上,补齐学员侧「我的岗位应学清单」、 「错题本」、成绩按岗位聚合、岗位考试蓝图、简答题 LLM 评分与后端自动化测试。

新增(P1)

  • 学员「我的岗位应学清单」GET /api/my/position:返回本人岗位 + 应学范围(域/课程/产品/级别/权重/必学)
  • 成绩按岗位聚合 GET /api/system/exam-stats-by-position(admin):按岗位汇总员工数/参考人次/通过人次/通过率/平均分
  • 岗位考试蓝图:position_exam_blueprint 表 + GET/PUT /api/positions/:id/blueprint(整表覆盖); pickQuestions 优先按蓝图逐条抽题(域+题型+题量),无蓝图回退 P0 岗位映射抽题; CreatePaper/UpdatePaper 校验蓝图总题量 ≥ 试卷题量
  • 前端:/exam/my-position「我的岗位清单」页;岗位管理页「考试蓝图」编辑面板; 全部成绩页新增「按岗位统计」Tab

新增(P2)

  • 错题本:mistake_record 表;交卷判分循环中答错自动入本(自测/正式均写,按 (user_id, question_id, source) 去重,再次答错更新并重置为未掌握); GET /api/exam/mistakes + PUT /api/exam/mistakes/:id/resolve; 前端 /exam/my-mistakes「我的错题本」页(来源/状态筛选 + 标记已掌握)
  • 简答题 + LLM 评分:question.type 增加 essay(answer 存评分标准,options 空); 交卷时对 essay 题调 LLM(复用 title_gen 文本生成路由,回退链 + 审计,essay_grade 能力不扣点) 按评分标准打 0~1 得分率;总分改为 Σ得分率/题数×总分,选择题仍确定性判分; detail_json 新增 score_rate / comment;前端答题页 essay 文本域 + 结果页得分率展示
  • 自动化测试:internal/api/exam_test.go(isCorrect/splitDomains/splitIDs/dedupe/ normalizeUserAnswer/parseEssayScore/scoreBand/round1)、internal/ai/retrieve_test.go (splitTerms/cosine);go test ./... 全绿

V1.4(2026-08-16)

岗位与知识对应能力(P0)落地。 补齐「岗位 → 知识映射 → 用户设岗 → 岗位驱动组卷」闭环, 对齐 pj006 的岗位驱动思想,但保持极简单租户定位(不引入洋葱模型 / 多租户 / 多岗位)。

新增

  • 数据表 position(岗位)与 position_knowledge(岗位知识要求映射:知识域 domain + 可选课程 course_id / 产品 product_id + 级别 L1-L4 + 权重 + 必学开关)
  • User.PositionID、ExamPaper.PositionID 可空列(AutoMigrate 幂等,对现有数据零破坏)
  • 岗位 API(admin):GET/POST/PUT/DELETE /api/positions、 GET/PUT /api/positions/:id/knowledge(整表覆盖保存映射)、PUT /api/users/:id/position(设岗/清岗)
  • 岗位驱动组卷:pickQuestions 按岗位知识映射圈定题池(岗位考试优先,否则回退 domain 抽题); CreatePaper/UpdatePaper 校验「岗位必须存在且已配置知识映射」
  • 前端「岗位管理」页(/system/positions)+ 知识映射编辑面板;用户管理页「关联岗位」行内下拉; 题库管理试卷表单「关联岗位」下拉

V1.3(2026-08-16)

目录重构 + 全功能联调测试 + 修复 1 个缺陷。

变更

  • 后端 KNOWLEDGE_SOURCE_DIR 默认值 ../docs/knowledge_source → knowledge_source;部署路径 /opt/eai_agentplatform/knowledge_source
  • 前后端全功能联调测试通过(认证/权限边界/产品/课程/考试/素材审批/知识入库/AI)
  • 素材存储目录 data/media → data/kb_data,子目录三态化:approved/(已审批公开)、 pending/(待审批)、rejected/(已驳回);环境变量 MEDIA_DIR → KB_DATA_DIR。 表名 media_file、API 路由 /api/media/*、静态 URL 前缀 /media 均保持不变。

修复

  • GET /api/exam/cover?id={id} 无法解析 query 参数(parseID 误读路径参数 c.Param), 导致考试封面永远返回「无效的 id」;改用 c.Query("id") 修复

V1.2(2026-08-15)

后端 Python → Go 重写完成,删除旧 Python 后端目录。

变更

  • 后端由 FastAPI/Python 整体重写为 Go + Gin + GORM + SQLite(modernc 纯Go驱动),位于 backend-go/
  • 旧 Python 后端目录 backend/ 已整体删除,Go 后端为唯一后端
  • 认证:JWT(golang-jwt)+ bcrypt;文档转换:LibreOffice + pdftotext(裸进程)
  • 部署:裸进程 + systemd + Clonezilla 整盘克隆,Go 单二进制交付(无 Docker、无源码交付)
  • 文件存储路径:backend/data/media → data/media(Go 后端工作目录下,部署为 /opt/eai_agentplatform/data/media)

V1.1(2026-08-15)

最终定稿版。 修复 V1.0 中 9 个内部不自洽问题。

新增

  • AI LLM 底座明确为「内网可访问地址(OpenAI 兼容接口)」,消除矛盾
  • MP4 仅预览、不提取文本、不进 AI 知识库,消除矛盾
  • PDF 文本提取技术选型(PyMuPDF)
  • 题库管理、组卷规则、合格线配置,补全考试闭环
  • 产品 / 课程内容的后台维护入口
  • 认证鉴权方案(JWT + bcrypt + 后端 API 鉴权)
  • 大文件分片上传、审批后异步转换任务、上传安全
  • 核心数据表字段设计(8 张核心表 + system_config)
  • 部署架构补充 LLM 服务与 Nginx 反代

V1.0(初始版)

初始产品需求文档。