e8bd518efa
改前四種寫法並存、沒一個是 credential,而執行端只認 {{credential.X}}
(graph-executor.ts:247→resolveCredentialRefs)⇒ 用戶照抄必踩坑:
{{api_key}} 13/{{gitea_token}} 2/{{secret.GITHUB_BOT_TOKEN}} 2/{{kbdb_api_key}} 1
改後(19 處統一):
{{credential.arcrun_namespace}} 15/{{credential.gitea_token}} 2/{{credential.github_bot_token}} 2
⚠️ 中途修正一次錯誤命名:我先改成 kbdb_partner_key(照零件契約舊敘述 ak_xxx),
leo 當場指正「現在沒有 partner key,改用 namespace,沒有發 API key 的機制」——
實際機制確為 X-Arcrun-API-Key: <namespace>(實例上活的 workflow 為證)。
不動:{{secret.LEO_TELEGRAM_CHAT_ID}} 3 處——chat_id 是聊天室 ID 不是金鑰,
無腦套規則會引進「找不到 credential」的錯誤。
驗:違規寫法歸零/12 個範例 YAML 全可解析。
殘:kbdb_upsert_block 契約仍寫『KBDB partner key(ak_xxx)』=假資訊源(我就是被它騙的),
修它被 component-guard 擋(正確),需 leo 跑 scripts/component-arm.sh。
34 lines
919 B
YAML
34 lines
919 B
YAML
name: rag_search_answer
|
||
description: 收問題 → 從 KBDB semantic search → 把 top context 餵 claude 回答
|
||
|
||
flow:
|
||
- "input >> ON_SUCCESS >> search_kbdb"
|
||
- "search_kbdb >> ON_SUCCESS >> answer_with_context"
|
||
|
||
config:
|
||
search_kbdb:
|
||
component: kbdb_search
|
||
api_key: "{{credential.arcrun_namespace}}"
|
||
query: "{{input.question}}"
|
||
topK: 5
|
||
user_id: "{{input.user_id}}" # 可選,限定某用戶 namespace
|
||
|
||
answer_with_context:
|
||
component: claude_api
|
||
timeout_ms: 45000
|
||
_recipe_output_format: text
|
||
prompt: |
|
||
你是知識庫助手。根據下列 context 回答問題。
|
||
|
||
**規則**:
|
||
1. 只用 context 內的資訊,不外推
|
||
2. context 沒講的,老實說「資料庫裡查不到」,不要編
|
||
3. 引用時標 [block_id],方便用戶追原始
|
||
|
||
Context:
|
||
{{search_kbdb.results}}
|
||
|
||
問題:{{input.question}}
|
||
|
||
回答:
|