# 工作日志 — 2026-05-19 --- ## 今天完成的工作 ### 🖥️ 服务器部署(8核32G 蜂驰云 120.53.227.155) **基础环境:** - 数据盘挂载 /data,9 个子目录 - Docker 29.1.3(镜像源:tencentyun + daocloud) - Node.js 22.22.2 / pnpm 11.1.3 / Python 3.11.15 / Git - deploy 用户创建 **核心服务(Docker 自启):** - MySQL 8.0.46 → 127.0.0.1:3306(innodb_buffer_pool_size=8G) - Redis 7 → 127.0.0.1:6379(noeviction) - Qdrant → 127.0.0.1:6333(zhixi_chunks, 1024d Cosine) **后端部署:** - NestJS 部署到 /opt/zhixi/backend,systemd 自启 - Nginx + Let's Encrypt → `https://api.longde.cloud` - DNS 从 4核4G 切换到 8核32G - Gitea Runner 安装注册(systemd 自启) ### 🗄️ 数据库 - 33 张表全部就位(3 个 migration 执行完成) - ID 类型已是 String(cuid),无需迁移 - 新增:KnowledgeSource / KnowledgeChunk / ImportCandidate / BackupJob / MembershipPlan ### 🔧 后端开发 **新增 NestJS 模块:** - `src/modules/knowledge-source/` — 资料来源 CRUD + 自动生成 DocumentImport - `src/modules/import-candidate/` — 候选知识点管理 + 接受时自动生成 KnowledgeItem - `src/modules/rag/` — 内部 RAG API(7 个端点,@Public 绕过 JWT) **增强模块:** - DocumentImport — 支持 claim/heartbeat/stale recovery - UploadedFile — sha256 去重 ### 🐍 Python RAG Worker `rag-worker/` 目录(10 个文件): - `main.py` — 主循环(轮询→认领→执行→心跳) - `parser.py` — 文档解析(PDF/DOCX/TXT/MD/CSV/XLSX + OCR) - `chunker.py` — 512 token + 64 overlap + 中文分句保护 - `embedder.py` — bge-m3 via 硅基流动(batch 50) - `indexer.py` — Qdrant upsert + 检索 + 软删除 - `candidate_generator.py` — DeepSeek 生成候选知识点 - `pipelines/import_pipeline.py` — 完整导入流程编排 - `api_client.py` — 与 NestJS 内部 API 通信 - `config.py` / `requirements.txt` ### 🔑 AI Provider - DeepSeek 官方 Key ✅ - 硅基流动 Key ✅(bge-m3 / bge-reranker-v2-m3 / Qwen3-VL-32B-Instruct / Qwen3-VL-32B-Thinking) - 百度 OCR ⏳ 待开通 ### 📄 文档更新 - 知识库设计.MD — 完善版(25 节,32 项决策) - 服务器与数据库部署方案.MD — 完整版(13 节) - 执行计划与任务清单.MD — 更新进度标记 - 凭据配置/蜂驰云服务器凭据.md — 填入实际密钥 - 凭据配置/轻量云服务器凭据.md — 更新角色 + HTTPS 状态 --- ## 服务器连接信息 | 服务器 | IP | SSH | |--------|-----|-----| | 4核4G 轻量云 | 81.70.187.179 | `ssh -i WangDL.pem ubuntu@81.70.187.179` | | 8核32G 蜂驰云 | 120.53.227.155 | `ssh -i zhixi.pem ubuntu@120.53.227.155` | SSH 密钥位置:`startup-plan/凭据配置/WangDL.pem` 和 `zhixi.pem` --- ## 8核32G 上运行的服务 | 服务 | 管理方式 | 命令 | |------|---------|------| | NestJS API | systemd | `sudo systemctl restart zhixi-api` | | Gitea Runner | systemd | `sudo systemctl restart gitea-runner` | | MySQL | Docker | `docker restart mysql` | | Redis | Docker | `docker restart redis` | | Qdrant | Docker | `docker restart qdrant` | | Nginx | systemd | `sudo systemctl restart nginx` | **日志位置:** - NestJS: `/data/logs/nestjs.log` / `nestjs-error.log` - Nginx: `/var/log/nginx/` - Docker: `docker logs ` **代码位置:** - `/opt/zhixi/backend/` — NestJS(git 仓库) - `/opt/zhixi/rag-worker/` — Python Worker(待部署) - `/opt/zhixi/env/.env.production` — 环境变量 - `/opt/zhixi/runner/` — Gitea Runner --- ## 明天继续(截至 5/20 14:00 状态) 1. 🔶 **Python Worker 部署到 8核32G**(最高优先)— 代码已部署,依赖+systemd 待补 - ✅ 代码已推送到 `/opt/zhixi/backend/rag-worker/`(10 个文件 + .env) - ✅ .env 配置完整 - ❌ Python 依赖不全(缺 pydantic/python-docx/markdown/pandas/Pillow,且 requirements.txt 缺 qdrant-client/python-dotenv) - ❌ systemd `zhixi-worker` 服务未创建 - ⚠️ 默认 python3 为 3.10.12(日志记了 3.11.15) 2. ⚠️ **COS Bucket 创建**(腾讯云控制台)— 未验证,环境变量中已有 COS 凭据 3. ❌ **百度 OCR 开通** — 未处理 4. ✅ **4核4G 安装 gitea-runner-web** — 单一 `gitea-runner` 服务同时处理 api-server + web-projects 的 CI/CD - `act_runner` 已安装,systemd 自启 - web-projects deploy.yml 已配置并通过验证 5. ✅ **编写 CI/CD workflow 文件** — 两端均已配置并运行 - ✅ `/home/ubuntu/api-server/.gitea/workflows/deploy.yml` - ✅ `/tmp/web-projects/.gitea/workflows/deploy.yml`(web 今日 13:38 部署成功) --- ## 5月20日继续工作的准备 **换电脑后需要:** 1. 将 `startup-plan/凭据配置/` 目录下的 `zhixi.pem` 和 `WangDL.pem` 复制到新电脑 2. 将 `api-server/` 仓库 clone 到新电脑(或直接通过 VS Code Remote SSH 在服务器上开发) 3. 所有设计文档在 `startup-plan/技术设计/` 下,已推送到 Gitea 4. Gitea 地址:`https://git.longde.cloud`,账号 wangdl **关键凭据文件(已在 .gitignore,不会推送):** - `凭据配置/蜂驰云服务器凭据.md` — 所有 8核32G 密码/密钥 - `凭据配置/轻量云服务器凭据.md` — 4核4G + Gitea 账号 - `凭据配置/zhixi.pem` / `WangDL.pem` — SSH 密钥