portal 關聯視圖在 RAG self-hosted 實例必 1042——graphBase 指向未部署的 kbdb-graph-plugin,應改走 graph workflow #57

Closed
opened 2026-07-16 02:54:41 +00:00 by Leo · 2 comments
Owner

[總管] T6-cloud demo 實測發現(2026-07-16,客戶測試期前置檢查):

症狀:portal 一般用戶點「關聯」視圖,GET /portal/data/graph/neighbors/:nameerror code: 1042

根因portal-data.ts 的 graph 端點打 graphBase(env)=kbdb-graph-plugin worker,但 RAG self-hosted 實例不部署這顆 plugin(產品包已用 graph_neighbors workflow 取代,T5-graph 定案)。cypher fetch 同帳號不存在的 workers.dev 子網域 → 1042。Mira/leo21c 有 plugin 所以沒踩到;所有 RAG 實例都會踩

建議修法(擇一)

  1. portal graph 端點改走 in-process trigger_workflow 呼叫 graph_neighbors workflow(與 rag_ingest 的 G11 同機制,不經 HTTP 自打)。
  2. graphBase 可配置+部署時偵測 plugin 不存在則 fallback workflow。

demo 站臨時處置(可逆):已建 portal_library graph-internal(graph_source=true)觸發 D-4 粗閘,讓一般用戶(libraries=["general"])的 graph_allowed=false、UI 不顯示壞視圖;admin(["*"])不受影響。修好後把該庫 graph_source 改 false 即還原。

證據:workflow 版圖譜正常(GET /q/demo/graph_neighbors?node=knowledge-base 回 4 份文件 part_of);portal 版 1042。

[總管] T6-cloud demo 實測發現(2026-07-16,客戶測試期前置檢查): **症狀**:portal 一般用戶點「關聯」視圖,`GET /portal/data/graph/neighbors/:name` 回 `error code: 1042`。 **根因**:`portal-data.ts` 的 graph 端點打 `graphBase(env)`=kbdb-graph-plugin worker,但 **RAG self-hosted 實例不部署這顆 plugin**(產品包已用 graph_neighbors workflow 取代,T5-graph 定案)。cypher fetch 同帳號不存在的 workers.dev 子網域 → 1042。Mira/leo21c 有 plugin 所以沒踩到;**所有 RAG 實例都會踩**。 **建議修法(擇一)**: 1. portal graph 端點改走 in-process trigger_workflow 呼叫 `graph_neighbors` workflow(與 rag_ingest 的 G11 同機制,不經 HTTP 自打)。 2. graphBase 可配置+部署時偵測 plugin 不存在則 fallback workflow。 **demo 站臨時處置**(可逆):已建 portal_library `graph-internal`(graph_source=true)觸發 D-4 粗閘,讓一般用戶(libraries=["general"])的 graph_allowed=false、UI 不顯示壞視圖;admin(["*"])不受影響。修好後把該庫 graph_source 改 false 即還原。 **證據**:workflow 版圖譜正常(`GET /q/demo/graph_neighbors?node=knowledge-base` 回 4 份文件 part_of);portal 版 1042。
Author
Owner

[總管] 2026-07-17 追加:demo 站 chatbot 後端已上線,portal UI 需求收斂成一張 PR 的 scope(供實作):

  1. graph 模式修復(本 issue 原案):/portal/data/graph/neighbors/:name 改走 in-process 呼叫 graph_neighbors workflow(trigger_workflow 同款機制),棄 kbdb-graph-plugin 直連。修好後刪 demo 的 graph-internal 佔位庫記錄即恢復三顆模式鈕(關鍵字/語意/圖譜——UI 按鈕本來就在,portal-ui.ts L235-237)。
  2. AI 問答視窗:搜尋頁加聊天面板,前端打新端點 /portal/data/chat(server 端 in-process 呼叫 rag_chat workflow,enforce 同搜尋:session→libraries 注入)。rag_chat 已部署 demo 且實測通(keyword+semantic+graph 三路檢索→Gemma-4-31B 組答案帶 [n] 引用;leo 設計哲學:AI 檢索=用戶手動搜尋同一套,回應附 sources 讓用戶看懂原理)。
  3. 搜尋結果過濾 metadata_json.status=deprecated(keyword+semantic 兩路,Arcrun#46 同族)——demo 實測殘影會陪榜。

demo 側現狀:rag_extract(Gemma 萃定稿)/rag_ingest v2(只吃 wiki cards+三元組解析)/rag_chat/rag_reset(每日保種子重置)四支 workflow 全上線,UI 是最後一哩。

[總管] 2026-07-17 追加:demo 站 chatbot 後端已上線,portal UI 需求收斂成一張 PR 的 scope(供實作): 1. **graph 模式修復**(本 issue 原案):`/portal/data/graph/neighbors/:name` 改走 in-process 呼叫 `graph_neighbors` workflow(trigger_workflow 同款機制),棄 kbdb-graph-plugin 直連。修好後刪 demo 的 `graph-internal` 佔位庫記錄即恢復三顆模式鈕(關鍵字/語意/圖譜——UI 按鈕本來就在,portal-ui.ts L235-237)。 2. **AI 問答視窗**:搜尋頁加聊天面板,前端打新端點 `/portal/data/chat`(server 端 in-process 呼叫 `rag_chat` workflow,enforce 同搜尋:session→libraries 注入)。**rag_chat 已部署 demo 且實測通**(keyword+semantic+graph 三路檢索→Gemma-4-31B 組答案帶 [n] 引用;leo 設計哲學:AI 檢索=用戶手動搜尋同一套,回應附 sources 讓用戶看懂原理)。 3. 搜尋結果過濾 `metadata_json.status=deprecated`(keyword+semantic 兩路,Arcrun#46 同族)——demo 實測殘影會陪榜。 demo 側現狀:rag_extract(Gemma 萃定稿)/rag_ingest v2(只吃 wiki cards+三元組解析)/rag_chat/rag_reset(每日保種子重置)四支 workflow 全上線,UI 是最後一哩。
Author
Owner

08-01 複核: 已修復,關閉

證據(main 源碼)cypher-executor/src/routes/portal-data.tsGET /portal/data/graph/neighbors/:name 已照本 issue 建議修法 1 落地:

  • ① tenant 有 {tenant}:wf:graph_neighborsexecuteWebhookGraph() in-process 執行 workflow(不經 HTTP 自打),輸出經 mapGraphWorkflowOutput() 映射成與 plugin 相同形狀
  • ② 沒有 → 才 fallback graphBase() 直連 plugin(Mira/leo21c 相容,行為一字不變)
  • workflow 執行失敗回誠實 502,不假裝「無關聯」

程式碼註解直接標註 (Arcrun#57)。RAG self-hosted 實例(不部署 kbdb-graph-plugin)走 ① 路徑,1042 根因消除。

demo 站當初的臨時處置(graph-internalgraph_source=true 粗閘)可依 issue 所述把 graph_source 改回 false 還原——留給 demo 維運確認,不擋本案關閉。

## 08-01 複核:✅ 已修復,關閉 **證據(main 源碼)**:`cypher-executor/src/routes/portal-data.ts` 的 `GET /portal/data/graph/neighbors/:name` 已照本 issue **建議修法 1** 落地: - ① tenant 有 `{tenant}:wf:graph_neighbors` → `executeWebhookGraph()` **in-process 執行 workflow**(不經 HTTP 自打),輸出經 `mapGraphWorkflowOutput()` 映射成與 plugin 相同形狀 - ② 沒有 → 才 fallback `graphBase()` 直連 plugin(Mira/leo21c 相容,行為一字不變) - workflow 執行失敗回**誠實 502**,不假裝「無關聯」 程式碼註解直接標註 `(Arcrun#57)`。RAG self-hosted 實例(不部署 kbdb-graph-plugin)走 ① 路徑,1042 根因消除。 > demo 站當初的臨時處置(`graph-internal` 庫 `graph_source=true` 粗閘)可依 issue 所述把 graph_source 改回 false 還原——留給 demo 維運確認,不擋本案關閉。
Leo closed this issue 2026-07-31 10:21:40 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Leo/Arcrun#57