feat: 实时入库监控 + 向量拆分可视化(异步入库 + 进度 SSE)
入库从同步改为异步流水线 + 进度回流(复用 token 流 NATS streaming)。 UI 实时看到 解析→切块→向量化(分批)→写入 各阶段 + 拆分块预览。 - shared: contract.IngestEvent(stage/done/total/chunks/error) - mcp-go: rag.Ingest 加 onProgress + 分批向量化(10/批)逐批回报;kb_ingest 带 job_id 把进度发到 sundynix.streams.<job_id> + CompleteStream - gateway: 入库异步返回 job_id,后台 runIngest 发进度;GET /kb/ingest/:id/stream SSE - frontend: streamIngest(EventSource);KbView 实时进度面板(阶段徽标+进度条+拆分列表) - 验证: build✓+e2e PASS; 浏览器 12 行→6 阶段点亮+进度条 12/12+拆分 12 块逐条 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -40,6 +40,16 @@ const (
|
||||
func ConfigGetSubject(kind string) string { return "sundynix.config." + kind + ".get" }
|
||||
func ConfigUpdatedSubject(kind string) string { return "sundynix.config." + kind + ".updated" }
|
||||
|
||||
// IngestEvent 是入库流水线的实时进度事件(经 sundynix.streams.<job_id> 回流给 UI)。
|
||||
type IngestEvent struct {
|
||||
Stage string `json:"stage"` // 解析/切块/向量化/写Milvus/写Bleve/完成/失败
|
||||
Msg string `json:"msg,omitempty"` // 文案
|
||||
Done int `json:"done,omitempty"` // 进度(如已向量化块数)
|
||||
Total int `json:"total,omitempty"` // 总数
|
||||
Chunks []string `json:"chunks,omitempty"` // 切块预览(切块阶段发一次)
|
||||
Error string `json:"error,omitempty"`
|
||||
}
|
||||
|
||||
// ModelConfig 是一个模型后端的连接配置(provider 抽象,chat 与 embedding 同形)。
|
||||
// 开发期指向第三方在线 API(OpenAI 兼容);生产期可换自部署或其它在线模型。
|
||||
type ModelConfig struct {
|
||||
|
||||
Reference in New Issue
Block a user