138 lines
4.6 KiB
Markdown
138 lines
4.6 KiB
Markdown
# 工作日志 — 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 <container>`
|
||
|
||
**代码位置:**
|
||
- `/opt/zhixi/backend/` — NestJS(git 仓库)
|
||
- `/opt/zhixi/rag-worker/` — Python Worker(待部署)
|
||
- `/opt/zhixi/env/.env.production` — 环境变量
|
||
- `/opt/zhixi/runner/` — Gitea Runner
|
||
|
||
---
|
||
|
||
## 明天继续
|
||
|
||
1. **Python Worker 部署到 8核32G**(最高优先)
|
||
```bash
|
||
ssh -i zhixi.pem ubuntu@120.53.227.155
|
||
cd /opt/zhixi/backend
|
||
git pull
|
||
cd rag-worker
|
||
pip3.11 install -r requirements.txt
|
||
# 创建 systemd service 启动 main.py
|
||
```
|
||
|
||
2. **COS Bucket 创建**(腾讯云控制台)
|
||
3. **百度 OCR 开通**
|
||
4. **4核4G 安装 gitea-runner-web**
|
||
5. **编写 CI/CD workflow 文件**
|
||
|
||
---
|
||
|
||
## 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 密钥
|