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>
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
eai_agentplatform_app 博昇内部培训平台
|
||||
eai_agentplatform — EAI 数字员工平台
|
||||
最终完整定稿 PRD(可直接交付 AI 生成前后端代码)
|
||||
版本:V1.1 最终版 | 纯本地化部署 | 极简架构 | 全功能闭环
|
||||
|
||||
> **⚠️ 本文档为 V1.1 设计期历史快照。** 项目已升级为「数字员工平台」(对外以「专员」为能力单元,见 `01_System_Overall/SY03` 及 SY04–SY17);技术栈已重写为 Go + Gin + GORM + MySQL 8.0 + FAISS;「不做向量检索 / 无学情分析」等约束已随 V1.6 起放开,以 `docs/changelog.md` 为准。
|
||||
> **⚠️ 本文档为 V1.1 设计期历史快照。** 项目已升级为「数字员工平台」(对外以「专员」为能力单元,见 `01_System_Overall/SY03` 及 SY04–SY17);技术栈已重写为 **Go + Gin + GORM + SQLite**;「不做向量检索 / 无学情分析」等约束已随 V1.6 起放开,以 `docs/changelog.md` 为准。
|
||||
|
||||
修订记录
|
||||
V1.0 → V1.1(修复内部不自洽):
|
||||
@@ -45,20 +45,14 @@ V1.0 → V1.1(修复内部不自洽):
|
||||
|
||||
后端
|
||||
|
||||
FastAPI (Python)
|
||||
SQLAlchemy ORM
|
||||
MySQL 8.0
|
||||
认证:JWT(python-jose)+ bcrypt 密码哈希
|
||||
PDF 文本提取:PyMuPDF
|
||||
Go + Gin + GORM
|
||||
SQLite(modernc 纯Go驱动)
|
||||
认证:JWT(golang-jwt)+ bcrypt 密码哈希
|
||||
文档转换:LibreOffice(裸进程)+ pdftotext
|
||||
|
||||
依赖服务(共两个)
|
||||
部署
|
||||
|
||||
1. 本地 Docker:libreoffice-preview
|
||||
用于 PPT/Word → PDF 预览、文本提取入库
|
||||
|
||||
2. 内网 LLM 服务(OpenAI 兼容接口)
|
||||
本地 Ollama / vLLM / 内网统一 LLM 网关均可
|
||||
地址通过【系统参数配置】维护,启动时读取
|
||||
systemd(裸进程)+ Clonezilla 整盘克隆,单二进制交付
|
||||
|
||||
硬性技术限制
|
||||
|
||||
@@ -71,7 +65,7 @@ V1.0 → V1.1(修复内部不自洽):
|
||||
2. 项目目录结构(最终强制规范)
|
||||
plaintext
|
||||
|
||||
eai_agentplatform_app/ # 项目根目录(所有代码集中此处)
|
||||
eai_agentplatform/ # 项目根目录(所有代码集中此处)
|
||||
├── docs/ # 独立文档目录(只放文档,不放代码)
|
||||
│ ├── PRD.md
|
||||
│ ├── db_schema.md
|
||||
@@ -79,8 +73,7 @@ eai_agentplatform_app/ # 项目根目录(所有代码集中
|
||||
│ ├── deploy.md
|
||||
│ └── changelog.md
|
||||
├── frontend/ # 前端完整代码
|
||||
├── backend/ # 后端完整代码
|
||||
├── docker-compose.yml
|
||||
├── backend-go/ # Go 后端(单二进制 + systemd)
|
||||
├── .gitignore
|
||||
└── README.md
|
||||
|
||||
@@ -119,42 +112,37 @@ frontend/
|
||||
后端目录结构
|
||||
plaintext
|
||||
|
||||
backend/
|
||||
├── app/
|
||||
│ ├── main.py
|
||||
│ ├── api/
|
||||
│ │ ├── auth.py
|
||||
│ │ ├── company_train.py
|
||||
│ │ ├── product.py
|
||||
│ │ ├── sales_train.py
|
||||
│ │ ├── exam.py
|
||||
│ │ ├── media.py
|
||||
│ │ ├── ai_chat.py
|
||||
│ │ └── system.py
|
||||
│ ├── models/
|
||||
│ │ ├── user.py
|
||||
│ │ ├── product.py
|
||||
│ │ ├── course.py
|
||||
│ │ ├── media_file.py
|
||||
│ │ ├── knowledge_chunk.py
|
||||
│ │ ├── question.py
|
||||
│ │ ├── exam_paper.py
|
||||
│ │ └── exam_record.py
|
||||
│ ├── schemas/
|
||||
│ ├── services/
|
||||
│ │ ├── media_service.py
|
||||
│ │ ├── ai_service.py
|
||||
│ │ └── exam_service.py
|
||||
│ ├── core/
|
||||
│ │ ├── config.py # 读取 .env 与系统参数
|
||||
│ │ ├── security.py # JWT 签发 / 校验、密码哈希、鉴权依赖
|
||||
│ │ └── deps.py
|
||||
│ └── utils/
|
||||
├── data/media/ # 本地文件存储(git忽略)
|
||||
│ ├── upload/
|
||||
│ └── _preview_cache/
|
||||
├── requirements.txt
|
||||
└── .env
|
||||
backend-go/
|
||||
├── cmd/
|
||||
│ └── server.go # 入口:gin.Engine + systemd 裸进程
|
||||
├── internal/
|
||||
│ ├── api/ # 路由层(Gin handlers)
|
||||
│ │ ├── auth.go # /api/auth/* — 登录/注册/me
|
||||
│ │ ├── company_train.go # /api/company-train/*
|
||||
│ │ ├── product.go # /api/products/*
|
||||
│ │ ├── exam.go # /api/exam/* — 题库/组卷/考试/记录
|
||||
│ │ ├── media.go # /api/media/* — 上传/预览/审批
|
||||
│ │ ├── ai_chat.go # /api/ai-chat/* — PathCoach SSE
|
||||
│ │ └── system.go # /api/system/* — 用户/成绩/配置
|
||||
│ ├── model/ # GORM 模型
|
||||
│ │ ├── user.go
|
||||
│ │ ├── product.go
|
||||
│ │ ├── course.go
|
||||
│ │ ├── media_file.go
|
||||
│ │ ├── knowledge_chunk.go
|
||||
│ │ ├── question.go
|
||||
│ │ ├── exam_paper.go
|
||||
│ │ └── exam_record.go
|
||||
│ ├── store/ # 数据库层
|
||||
│ │ └── db.go # SQLite Init + AutoMigrate
|
||||
│ ├── ai/ # AI 客户端与检索
|
||||
│ │ ├── llm.go # OpenAI 兼容 LLM 调用
|
||||
│ │ └── retrieve.go # 知识检索
|
||||
│ ├── config/ # 配置加载
|
||||
│ └── middleware/ # 中间件(JWT 认证等)
|
||||
├── knowledge_source/ # 知识源 Markdown(运行时)
|
||||
├── data/ # 运行时数据(db+media,git 忽略)
|
||||
└── deploy/ # systemd 单元 + DELIVERY.md
|
||||
|
||||
3. 全局页面布局(全站统一)
|
||||
全站固定三栏结构,所有页面统一
|
||||
@@ -325,9 +313,9 @@ backend/
|
||||
|
||||
6.5 存储位置
|
||||
|
||||
物理文件:backend/data/media
|
||||
文本知识库:MySQL knowledge_chunk
|
||||
文件元数据:MySQL media_file
|
||||
物理文件:backend-go/data/media
|
||||
文本知识库:SQLite knowledge_chunk
|
||||
文件元数据:SQLite media_file
|
||||
|
||||
6.6 上传规格
|
||||
|
||||
@@ -353,8 +341,8 @@ backend/
|
||||
|
||||
7.5 知识检索方案
|
||||
|
||||
检索基于已审批素材的 knowledge_chunk,采用 MySQL 全文索引 + 关键词召回。
|
||||
召回片段作为上下文注入 Prompt;不做向量检索(避免引入 embedding 额外依赖,保持极简)。
|
||||
检索基于已审批素材的 knowledge_chunk,采用 Go 内 brute-force 向量检索(余弦)+ 关键词兜底。
|
||||
召回片段作为上下文注入 Prompt;数据量小无需 ANN 向量库。
|
||||
若后续需要向量增强,作为可选项,不纳入 V1.1 范围。
|
||||
|
||||
7.6 AI 能力边界
|
||||
@@ -485,9 +473,9 @@ plaintext
|
||||
|
||||
本地内网环境
|
||||
Nginx(反代 + 前端 Vue 静态打包)
|
||||
FastAPI 后端服务
|
||||
MySQL 数据库
|
||||
libreoffice-preview 本地文档转换容器
|
||||
Go + Gin 后端服务
|
||||
SQLite 数据库(单文件,systemd 守护)
|
||||
libreoffice + pdftotext 本地文档转换
|
||||
内网 LLM 服务(Ollama / vLLM / 内网网关,OpenAI 兼容接口)
|
||||
文件存储:本地磁盘 data/media
|
||||
完全无外网、无云服务
|
||||
|
||||
Reference in New Issue
Block a user