Files
tps-dashboard/logs/phase3_log_task1.md
T

42 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Phase 3 开发日志
> 本文件记录 Phase 3(知识库基础设施)各 Task 的已完成事实。
> 续接快照(待办/决策)见单独文件,不混入本 log。
---
## Task 1 — embedding 最小链路验证 ✅(2026-05-26 完成)
### 目标
用最小代价验证 Phase 3 的命脉:文本能否转成正确维度的向量、整条「解析→embedding→入库→语义检索」链路能否跑通。不碰 schema、不碰前端、不碰 docx。
### 关键结论(地基事实,后续 Task 依赖)
- **embedding 服务确定为 MiniMax embo-01**。前期查证已排除 DeepSeek(官方无 embedding 接口)。
- **embo-01 输出维度 = 1536**,与 `001_init.sql``knowledge_embeddings.embedding vector(1536)` 完全匹配,无需改维度、无需改宪法。
- **embo-01 真实接口结构**(实测确认,非凭印象):
- 请求:`{"model":"embo-01", "texts":[...], "type":"db"|"query"}` —— 注意是 `texts` 数组,不是 OpenAI 的 `input`
- 返回:向量在 `vectors` 字段(`data["vectors"][0]`),不是 OpenAI 的 `data[0].embedding`
- 存文档用 `type="db"`,查询用 `type="query"`,不可混。
- 调用需 `Authorization: Bearer {API_KEY}` + `GroupId` 两个凭证(MiniMax 特有 GroupId)。
- **检索方式**:使用 pgvector 数据库原生余弦距离算子 `<=>`,不在 Python 侧计算。
- **凭证管理**API Key + GroupId 存于 `backend/.env``MINIMAX_EMBED_API_KEY` / `MINIMAX_GROUP_ID`),代码从 .env 读取,未进任何代码、未进 git.env 已在 .gitignore)。
- 注意:embedding 接口地址 `https://api.minimax.chat/v1/embeddings`,与 Cline 写代码所用的 M2.7 chat 接口是两套独立配置,互不影响。
### 新增/改动文件(已 commit & pushcommit 38873ac
- `backend/requirements.txt`+pgvector==0.2.5
- `backend/app/core/config.py`+引导凭证字段)
- `backend/app/models/knowledge.py`(新增,embedding 字段用 pgvector.Vector
- `backend/app/services/embedding_service.py`(新增,embo-01 调用封装)
- `backend/app/services/knowledge_service.py`(新增,写库 + SQL 向量检索)
- `backend/scripts/test_embo01_api.py`(探路脚本)
- `backend/scripts/verify_embedding.py`(全链路验证脚本)
- `backend/sample_md/`(空目录,测试文件已清)
### 收尾
- 验证用测试数据已全部清除:knowledge_items = 0 行,knowledge_embeddings = 0 行,sample_md/ 空。
- 知识库当前为干净空库,等待真实笔记导入。
### 顺手核实到的现状(未处理,留待办)
- episodes 表当前仅 7 行。
- Phase 2 的「批量导入」前端有入口但从未真实导入过收视数据(制片人确认:是流程上没提醒导入,加上收视表里有测试数据不会删)。属 Phase 2 遗留债,记入 backlog,另行处理,不并入 Phase 3。