docs+chore: M1 状态校准、向量库独立实例、gitignore 修复
CI / backend (push) Canceled after 0s

- ROADMAP:勾选与实际证据一一对应,未做的写明原因与去向(通知推迟到 M2、子任务与 @人 合并进 item_link)
- DEVELOPMENT:新增向量库、e2e、性能实测三节
- API:补批量状态与看板接口,重排小节编号
- deploy:docker-compose.vector.yml + vector-init(独立 PG+pgvector,5434,不碰 fnsvr-01)
- .gitignore:注释乱码修正,补 *.tsbuildinfo / e2e 产物
This commit is contained in:
dadao
2026-10-28 04:05:47 +08:00
parent 6e33e1024d
commit 3d02fe845a
5 changed files with 116 additions and 28 deletions
+48 -2
View File
@@ -78,7 +78,53 @@ ruff check . && ruff format --check .
隔离测试(`tests/test_tenant_isolation.py`)是本仓库最重要的一组用例,改动任何租户表都必须重跑它。
## 7. 常见坑
### 真浏览器 e2e
需要后端(8100)与前端(5180)都在跑:
```bash
cd web
node e2e/smoke.mjs # 登录→建任务→详情保存→看板拖拽→非法流转被拒,7 项断言
```
用本机缓存的 Chromium(`playwright-core`,不下载浏览器),截图落在 `web/e2e/artifacts/`。
### 1000 条下的首屏耗时
```bash
cd backend && python scripts/bench_views.py # 连开发库,会自己造 1000 条
```
## 7. 知识库向量库(独立实例)
知识库的语义检索需要一个带 **pgvector** 的 PostgreSQL,它**不是**业务库:
```bash
cd deploy
docker-compose -f docker-compose.vector.yml up -d # 127.0.0.1:5434,库名 dadao_knowledge
```
然后在 `backend/.env` 里打开:
```bash
VECTOR_DATABASE_URL=postgresql+asyncpg://dadao_app:dadao_dev_pw@127.0.0.1:5434/dadao_knowledge
```
三条设计约束(别绕):
1. **不碰 fnsvr-01**。那台 PG 17 没有 pgvector,装扩展要动生产机;向量检索吃内存,
和任务库挤一起互相拖累。
2. **不配就是没有**。`VECTOR_DATABASE_URL` 为空时,M3 的语义检索直接报"未配置",
不许悄悄退化成"全表扫描 + 假装是语义匹配"——那种降级没人能发现。
3. **向量表同样开 RLS**。知识库串租户比任务串租户严重得多:等于把别人的文档喂给你的模型。
`EMBEDDING_DIM` 一旦定下来改起来很痛(要重算全部切片),默认 `1024`(bge-m3)。
换模型 = 重建 `chunk` 表 + 重新向量化,写进 M3 的迁移说明。
> 当前这台机器 Docker 起不来(见下),所以向量库还没真正跑起来,
> 上面是配置与脚本,M3 开工前必须先把它跑通。
## 8. 常见坑
| 现象 | 原因 | 处理 |
|---|---|---|
@@ -127,7 +173,7 @@ ruff check . && ruff format --check .
- **安装类命令一律写日志文件再 tail**,不要用管道截断输出,否则看不到进度也不知道卡在哪。
- `npm install` 要加 `--ignore-scripts`:沙箱不允许 npm 的 lifecycle 脚本派生进程(`EPERM spawn`)。
## 8. 提交前自检清单
## 9. 提交前自检清单
1. `pytest` 全绿,`ruff` 无告警。
2. 新增租户表时:`workspace_id NOT NULL` + RLS 策略 + 跨租户测试,三者齐全。