feat(gateway): 入库队列接线 + 正文一律MinIO + file_id级联删端点

- 入库改走 JetStream 队列:claim-check 暂存 MinIO → 发作业 → 立即返 job_id;
  worker 池(StartIngestWorkers)有界并发消费,崩溃重投续跑(幂等),优雅 drain
- 存储:正文一律落 MinIO(去 <8000字内联PG 阈值,仅 MinIO 挂时回退兜底);
  sundynix_doc 删死字段 MD5
- 下游键传稳定 file_id(非展示名);新增 DELETE /api/v1/kb/doc 级联删
  (三库 + MinIO 原文 + PG 元数据/双链,owner 隔离)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Blizzard
2026-06-30 13:38:03 +08:00
parent 79e834e8e9
commit 9a5ed75c05
6 changed files with 197 additions and 37 deletions
@@ -64,6 +64,7 @@ func New(db *store.Postgres, cache *store.Redis, bus *nats.Bus, blobStore *blob.
p.POST("/kb/search", h.KbSearch) // 检索台
p.GET("/kb/vault", h.KbVault) // 文库列表
p.GET("/kb/doc", h.KbDoc) // 取单篇文档
p.DELETE("/kb/doc", h.KbDeleteDoc) // 级联删文档(三库+MinIO+PG
p.GET("/kb/links", h.KbLinks) // 某库双链
p.POST("/kb/note", h.KbSaveNote) // 新建/编辑笔记
p.GET("/kb/graph", h.KbGraph) // 知识图谱三元组