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:
+21
-25
@@ -1,6 +1,6 @@
|
||||
# eai_agentplatform_app — 部署文档
|
||||
# eai_agentplatform — 部署文档
|
||||
|
||||
> **版本:V1.2 | 部署模式:纯本地离线 · Go 单二进制 · MySQL 8.0 + FAISS · systemd · Clonezilla 整盘克隆**
|
||||
> **版本:V1.3 | 部署模式:纯本地离线 · Go 单二进制 + SQLite · systemd · Clonezilla 整盘克隆**
|
||||
> **最后更新:2026-08-16**
|
||||
|
||||
---
|
||||
@@ -33,9 +33,10 @@
|
||||
┌───────────┘ │ └──────────────┐
|
||||
│ │ │
|
||||
┌─────▼────────┐ ┌─────▼──────┐ ┌────────▼────────┐
|
||||
│ MySQL 8.0 │ │ data/kb_data │ │ LibreOffice + │
|
||||
│ + FAISS │ │ 文件存储 │ │ pdftotext │
|
||||
│ (向量索引) │ │ │ │ (裸进程) │
|
||||
│ SQLite │ │ data/kb_data │ │ LibreOffice + │
|
||||
│ 单文件 │ │ 文件存储 │ │ pdftotext │
|
||||
│ data/ │ │ │ │ (裸进程) │
|
||||
│ eai_platform.db │ │ │ │ │
|
||||
└──────────────┘ └────────────┘ └─────────────────┘
|
||||
│
|
||||
│ 文档转文本
|
||||
@@ -56,12 +57,11 @@
|
||||
|------|------|------|
|
||||
| Nginx | 80/443 | HTTP 反代 + 前端静态资源托管 |
|
||||
| eai_agentplatform-server | 8080 | Go 单二进制后端(Gin + GORM) |
|
||||
| MySQL | 3306 | MySQL 8.0 关系数据(systemd 托管 mysqld) |
|
||||
| FAISS | 内嵌 | 向量索引,由 Go 后端 cgo 内嵌,索引文件 `data/faiss/` |
|
||||
| SQLite | 内嵌 | 单文件数据 `data/eai_agentplatform.db`(glebarez/sqlite 纯 Go 驱动,无需 CGO) |
|
||||
| LibreOffice + pdftotext | 进程内调用 | 裸进程,非容器,文档转文本 |
|
||||
| LLM 服务 | 11434 | 内网 OpenAI 兼容接口(Ollama / vLLM) |
|
||||
|
||||
**无 Docker、无 Python 运行时。** 后端为 Go 单二进制,MySQL 由 systemd 托管,FAISS 内嵌于后端。
|
||||
**无 Docker、无 Python、无 MySQL、无 FAISS 运行时。** 后端为 Go 单二进制,数据为 SQLite 单文件(`data/eai_agentplatform.db`),知识检索为 Go 原生向量/关键词召回(embed_gen 嵌入 + 余弦,对齐 D07/D13),不依赖外部向量库。
|
||||
|
||||
---
|
||||
|
||||
@@ -69,11 +69,12 @@
|
||||
|
||||
```
|
||||
/opt/eai_agentplatform/
|
||||
├── eai_agentplatform-server # 单二进制(CGO 关闭,静态链接,约 38MB)
|
||||
├── eai_agentplatform-server # 单二进制(CGO 关闭,静态链接)
|
||||
├── .env # JWT 密钥、LLM 配置等
|
||||
├── data/
|
||||
│ ├── faiss/ # FAISS 向量索引(embedding 向量)
|
||||
│ └── media/ # 素材 + 提取缓存
|
||||
│ ├── eai_agentplatform.db # SQLite 单文件数据(自动迁移建表)
|
||||
│ ├── kb_data/ # 知识库素材物理文件
|
||||
│ └── backups/ # 定期备份(见 BACKUP_* 配置)
|
||||
└── docs/
|
||||
└── knowledge_source/ # 知识源 Markdown(待管理员审批入库)
|
||||
```
|
||||
@@ -85,19 +86,13 @@
|
||||
### 1. 环境准备(系统级依赖)
|
||||
|
||||
```bash
|
||||
# 系统依赖:Nginx(前端+反代)+ MySQL 8.0(关系数据)+ LibreOffice + pdftotext(文档转换裸进程)
|
||||
apt update && apt install -y nginx mysql-server libreoffice poppler-utils
|
||||
# 系统依赖:Nginx(前端+反代)+ LibreOffice + pdftotext(文档转换裸进程)
|
||||
apt update && apt install -y nginx libreoffice poppler-utils
|
||||
```
|
||||
|
||||
> LibreOffice 与 pdftotext 均为**裸进程**,由二进制内 `exec` 调用,不跑容器、不监听端口。
|
||||
> MySQL 初始化库与账号(FAISS 向量索引内嵌于后端,无需独立服务):
|
||||
>
|
||||
> ```sql
|
||||
> CREATE DATABASE eai_agentplatform DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
> CREATE USER 'eai_agentplatform'@'127.0.0.1' IDENTIFIED BY '<随机密码>';
|
||||
> GRANT ALL PRIVILEGES ON eai_agentplatform.* TO 'eai_agentplatform'@'127.0.0.1';
|
||||
> FLUSH PRIVILEGES;
|
||||
> ```
|
||||
> 数据库为 SQLite 单文件:无需安装任何数据库服务。后端首次启动用 GORM 自动建表,
|
||||
> 数据写入 `data/eai_agentplatform.db`(由 `.env` 的 `DB_PATH` 指定)。
|
||||
|
||||
### 2. 部署后端(单二进制 + systemd)
|
||||
|
||||
@@ -110,7 +105,7 @@ sudo chown -R eai_agentplatform:eai_agentplatform /opt/eai_agentplatform
|
||||
|
||||
# 2.2 生成 .env(JWT 密钥随机)
|
||||
sudo -u eai_agentplatform cp deploy/eai_agentplatform.env /opt/eai_agentplatform/.env
|
||||
NEW_SECRET=$(python3 -c "import secrets; print(secrets.token_urlsafe(48))")
|
||||
NEW_SECRET=$(openssl rand -base64 48 | tr -d '\n')
|
||||
sudo sed -i "s|^JWT_SECRET=.*|JWT_SECRET=$NEW_SECRET|" /opt/eai_agentplatform/.env
|
||||
|
||||
# 2.3 安装 systemd 单元并启动
|
||||
@@ -126,12 +121,11 @@ curl http://127.0.0.1:8080/api/health # {"status":"ok","service":"eai_agentpla
|
||||
|
||||
```bash
|
||||
PORT=8080
|
||||
DB_DSN=eai_agentplatform:<随机密码>@tcp(127.0.0.1:3306)/eai_agentplatform?charset=utf8mb4&parseTime=True&loc=Local
|
||||
DB_PATH=data/eai_agentplatform.db
|
||||
JWT_SECRET=<48 字符随机串,交付前生成>
|
||||
LLM_BASE_URL=http://127.0.0.1:11434/v1
|
||||
LLM_MODEL=qwen2.5:7b
|
||||
EMBED_MODEL=bge-m3
|
||||
FAISS_INDEX_DIR=data/faiss
|
||||
KB_DATA_DIR=data/kb_data
|
||||
KNOWLEDGE_SOURCE_DIR=/opt/eai_agentplatform/docs/knowledge_source
|
||||
LIBREOFFICE_BIN=/usr/bin/libreoffice
|
||||
@@ -190,7 +184,9 @@ ollama pull bge-m3 # 嵌入模型(向量检索)
|
||||
# 默认监听 127.0.0.1:11434,Go 二进制直接走 OpenAI 兼容 /v1 接口
|
||||
```
|
||||
|
||||
### 使用 vLLM
|
||||
### 使用 vLLM(可选,外部 LLM 网关)
|
||||
|
||||
> 默认推荐 Ollama(无 Python 运行时)。如需以 vLLM 作为 LLM 网关可按下述配置,但该网关不属于交付系统本体,目标机需自行准备 Python 环境。
|
||||
|
||||
```bash
|
||||
pip install vllm
|
||||
|
||||
Reference in New Issue
Block a user