改名(对齐 pj0034 的 TOP_ 前缀): - CODING_RULES.md → TOP_CODING_RULES.md,同步 5 处引用 (CLAUDE.md 目录树与启动仪式、PROJECT_STATE.md 三处、DR03、DR04、文件内 G06 自引用) 补齐通用部分 G09–G18(承接 pj0034 同名文件的通用规则,按本项目 Go / Vue3 / SQLite / Ubuntu 技术栈改写): - G09 登录态与接口必须无状态化 - G10 配置化优先,禁止写死环境细节 - G11 素材必须可追溯,不可静默修改 - G12 长耗时任务必须异步化 - G13 先跑通主线,再细化和优化 - G14 Git 不抢戏 — 收工时统一提示一次 - G15 禁止通用名启动入口文件,启动逻辑必须在 start_dev_10231_10232.sh - G16 Windows 侧 .ps1 脚本统一 UTF-8 with BOM - G17 脚本内禁止兼容式依赖回退,必须固定单一工具链 - G18 仓库应尽量支持拷贝后直接运行 不抄的(逐条判断本项目不适用):Python 虚拟环境、Playwright/clickflow E2E、 OSS 多租户、Amazon 平台规范检测;该判断已写进文件头说明。 G04 补第 6–10 条:全绿≠跑通、报告事实而非意图、读清用户的 bug 描述、 修 UI bug 追完整渲染链、跨区移动数据后验另一端完整性。 新增 P06 常见技术陷阱清单(11 条,全部来自本项目真实事故或核过代码的事实): AutoMigrate 只加不删、探测脚本用完即删、worker_run.status 恒为 done、 seed 只补空字段、禁止按进程名模糊匹配杀进程、Element Plus persistent 留隐藏 DOM、动用户数据前先备份再列清单、hash 路由改 hash 不重载、 gofmt 不要整个目录 -w、git remote 禁嵌明文凭据、禁引第三方受限素材。 顺手修三处不一致:P01 索引名过时(培训平台→通用数字员工平台)、 DR03 引用的编号在重组后指向了错规则(第 6 条→G07)、第二部分标题层级。 版号 V1.0 → V1.1。 Co-Authored-By: Claude Code <noreply@anthropic.com>
86 lines
4.9 KiB
Markdown
86 lines
4.9 KiB
Markdown
# eai_agentplatform EAI 数字员工平台(AI Agent Platform)
|
||
|
||
纯内网本地化的企业 AI 数字员工平台。
|
||
围绕数字员工(专员)、知识库底座、自动化工坊、考试评估与系统管理组织业务能力。
|
||
配套全局 AI 助手,提供答疑、知识查询、任务拆解与业务工具。
|
||
|
||
## 技术栈
|
||
|
||
| 层级 | 技术 |
|
||
|------|------|
|
||
| 前端 | Vue3 + Vite + Element Plus |
|
||
| 后端 | Go + Gin + GORM + SQLite(modernc 纯Go驱动) |
|
||
| 认证 | JWT(golang-jwt)+ bcrypt |
|
||
| 文档转换 | LibreOffice + pdftotext(裸进程) |
|
||
| AI 底座 | 内网 OpenAI 兼容接口(Ollama:LLM + bge-m3 embedding) |
|
||
| 部署 | 裸进程 + systemd + Clonezilla 整盘克隆,单二进制交付 |
|
||
|
||
## 目录结构
|
||
|
||
```
|
||
pj0235-eai_agentplatform-ubu/ # 工作区根(仓库根)
|
||
├── TOP_CODING_RULES.md # 编码与调试最高准则
|
||
├── start_dev_10231_10232.sh # 开发启动脚本
|
||
├── docs/ # 设计文档(项目级,与代码分离)
|
||
│ ├── 00_AI_Context/ # AI 协作上下文
|
||
│ ├── 01_System_Overall/ # 系统总览(SY 前缀)
|
||
│ ├── 02_Architecture/ # 架构设计(AR 前缀)
|
||
│ ├── 04_Backend/ # 后端设计与 API(BE 前缀)
|
||
│ ├── 06_Product_Lines/ # 产品线与前端设计(PL 前缀)
|
||
│ ├── 08_Design_Rules/ # UI/UX 设计规范(DR 前缀)
|
||
│ ├── PRD.md # 产品需求文档(V1.1)
|
||
│ ├── db_schema.md # 数据库 Schema
|
||
│ ├── api.md # API 文档
|
||
│ ├── deploy.md # 部署文档
|
||
│ ├── changelog.md # 变更日志
|
||
│ ├── eaisalestrain_app设计稿.md # 完整 PRD 中文原稿
|
||
│ └── 博昇产品与渠道合作表.md # 知识源权威数据
|
||
└── eai_agentplatform/ # 应用代码
|
||
├── backend-go/ # Go 后端(正式,唯一后端)
|
||
│ ├── cmd/ internal/ # Go 源码
|
||
│ ├── knowledge_source/ # 知识源 Markdown(运行时数据)
|
||
│ ├── data/ # 运行时数据(db+media,git 忽略)
|
||
│ └── deploy/ # 交付物(systemd/env/清理脚本/DELIVERY.md)
|
||
├── frontend/ # 前端完整代码
|
||
├── CLAUDE.md # AI 协作锚点
|
||
├── PROJECT_STATE.md # 项目全局状态
|
||
└── .gitignore
|
||
```
|
||
|
||
## 新对话启动仪式(强制)
|
||
|
||
你是一个新对话,没有任何历史记忆。响应用户的任何请求**之前**,按顺序执行:
|
||
|
||
1. 确认你的角色:后端(backend)/ 前端(frontend)/ 全栈
|
||
2. 读 `PROJECT_STATE.md`(本目录)—— 项目当前全局状态与已拍板决策
|
||
3. 读 `../TOP_CODING_RULES.md`(工作区根)—— 编码与调试最高准则
|
||
|
||
完成以上步骤,才开始响应用户。
|
||
|
||
## 核心业务模块
|
||
|
||
| 模块 | 说明 |
|
||
|------|------|
|
||
| 公司介绍培训 | 纯阅读页面,可绑定 PPT/视频课件 |
|
||
| 产品知识 | 四大产品分类,固定字段(编号/佣金/规则等) |
|
||
| 产品销售培训 | 四大课程,话术/流程/异议处理 |
|
||
| 考试系统 | 自测(不限次/即时反馈)+ 正式考(永久存档) |
|
||
| AI PathCoach | 右侧常驻面板,自动上下文,3 个快捷按钮 |
|
||
| 知识管理【管理员】 | 素材审批,课件 CRUD,绑定课程/产品 |
|
||
| 系统管理【管理员】 | 用户管理,成绩查询,系统参数配置 |
|
||
| 内容管理【管理员】 | 产品/课程/题库的录入编辑 |
|
||
|
||
## 设计原则(强制执行)
|
||
|
||
- **100% 本地化部署**:不上云、无 OSS、无 MinIO、不依赖公网云服务
|
||
- **功能克制**:功能以业务价值为准、杜绝为加而加的冗余功能;权限保持精简(employee/admin 两级)
|
||
- **学情/成长为已决策边界(D18/D19)**:学员自助视角的学习档案/能力雷达、积分/排行榜、证书、部门学情统计均已拍板纳入;全站拒绝「社交社区/讨论区」类功能(D19)
|
||
- **审批前置**:所有上传素材必须审批通过才可生效、进入知识库、页面展示
|
||
- **视频仅预览**:MP4 不做转码、不做 ASR、不进 AI 知识库
|
||
- **混合检索**:AI 知识检索 = 向量(brute-force 余弦)+ 关键词兜底,数据量小无需 ANN 向量库
|
||
|
||
## AI 配置
|
||
|
||
- **LLM 适配器**:Go net/http 实现(无 openai SDK 依赖),支持 SSE 流式 + 非流式调用
|
||
- **配置优先级**:system_config 数据库表 → .env 文件,缺任何配置 Fail Fast 抛 501
|
||
- **知识检索**:混合检索(向量 brute-force + 关键词),embedding 走 Ollama bge-m3 |