51 lines
3.3 KiB
Markdown
51 lines
3.3 KiB
Markdown
# 知识中心部署记录
|
||
|
||
2026-09-16 已部署至内网服务器 `192.168.110.111`,服务目录 `/opt/im-admin/deploy/im-admin`。
|
||
|
||
管理入口:http://192.168.110.111:8369/ ,刷新后进入「知识中心 → 知识加工与检索」。
|
||
|
||
## 当前状态
|
||
|
||
- 管理 API、模型网关健康;独立 knowledge-worker 正常运行,三个容器重启计数均为 0。
|
||
- 管理员已获得 5 个知识权限;其他角色按需要授权。
|
||
- 知识检索默认关闭,知识条目、加工任务、增量监控均为 0。未自动处理历史聊天或调用模型。
|
||
- 使用时先选择具体账号,规则方式小批量整理,审核并发布,检索测试通过后再开启客服使用知识。
|
||
|
||
## 验证结果
|
||
|
||
- 候选生产镜像内 `test_knowledge test_model_gateway`:56 项测试通过。
|
||
- 238 个安装文件与发布清单一致,233 个运行镜像内代码及前端文件哈希一致。
|
||
- API 健康、知识页面和页面 JS 返回 200;知识接口未登录返回 401。
|
||
- 开发机使用有线内网验证 `192.168.110.111:8369`,页面与 JS 返回 200,接口鉴权返回 401。
|
||
- 生产数据库 `PRAGMA quick_check = ok`;新增归档扫描索引和 4 个知识来源触发器。
|
||
- 验收时归档消息 414003、会话 12175、人员 30610、来源账号 15、桌面账号 16、模型配置 3、管理用户 1;既有数量未减少。
|
||
|
||
## 镜像与备份
|
||
|
||
- 发布目录:`/home/ps/knowledge-20260916-100045`
|
||
- 当前镜像:`zyt/wecom-admin:knowledge-20260916-100045`,同时标记为 `zyt/wecom-admin:current`。
|
||
- 当前镜像 ID:`sha256:061e8735ca4cc37fe09143f06095149ec7475a159fa0f1923d0410b50bfd9b22`
|
||
- 原镜像:`zyt/wecom-admin:before-knowledge-20260916-100045`
|
||
- 源码及前端备份:发布目录的 `source-before.tar.gz`。
|
||
- 数据库及密钥备份:`/opt/im-admin/deploy/im-admin/data/backups/knowledge-20260916-100045`。
|
||
- 使用 SQLite backup API 一致性备份,3483766784 字节,备份完整性检查为 ok;密钥保存在服务器备份目录,未下载。
|
||
- 发布包 SHA-256:`e46cfb88916b516b4bc3c458769a8fe5f5fd3b31eedd615409197754b43c56fb`。
|
||
|
||
## 首次大库索引注意事项
|
||
|
||
容器 `/tmp` 上限为 64 MB,首次为 41 万条消息构建扫描索引时空间不足,首次切换已自动回退,旧服务恢复后完成排查。
|
||
|
||
最终在一次性迁移容器启动前设置 `SQLITE_TMPDIR=/data/.knowledge-migration-20260916-100045`,使用已创建、仅应用用户可访问的磁盘临时目录。初始化成功后删除空临时目录,再重新部署成功。运行服务继续使用原有 64 MB 临时卷。
|
||
|
||
后续对尚未建立该索引的大库首次部署,应先使用磁盘临时目录执行初始化。必须在 Python/SQLite 进程启动前设置 SQLITE_TMPDIR,运行中才设置环境变量不能保证生效。
|
||
|
||
生产源码有 root 属主文件,因此安装及回退只复制文件内容,保留原属主和权限。
|
||
|
||
## 回退
|
||
|
||
发布目录的 `rollback.sh` 可停止并移除知识 Worker,恢复旧源码、静态资源、compose 与镜像,再启动 API、网关。
|
||
|
||
不恢复旧数据库。新增知识表和索引保留,避免丢失发布后新增的聊天。回退后再部署新版本时会补齐知识权限。
|
||
|
||
本地验收结果:`deploy/knowledge-20260916-100045/verification.json`、`after.json`、`backup-verification.json`。
|