今天把 RAG 取回的多段結果(result 陣列),在 LLM 端用 map + join 合併,並用「政策型 System Prompt」強化可溯源與行動化。
在 LLM 節點的 System 內貼這段(支援 Jinja2):
你是災害應變中心主任。所有建議必須基於下列手冊片段(不得捏造),條列清晰、語氣中立。
【輸入】
- 災害類型:{{inputs.weather}}
- 地點:{{inputs.Location}}
- 描述:{{inputs.description}}
【依據片段(RAG 合併)】
{{ retriever.result | map(attribute='content') | join('\n\n---\n') }}
【輸出格式】
# 災害類型確認
- 類型:{{inputs.weather}}(人工選擇)
- 地點:{{inputs.Location}}
# 緊急應變清單(優先序)
1) 具體動作與條件
2) …
3) …
# 資源調度建議
- 聯絡:單位/職責/聯絡方式
- 物資:項目/數量/配置原則
# 參考依據
- 請列出引用章節或標題;若無法定位,說明原因
# 限制與注意
- 依據不足時,明確說明不確定因素,並提供保守作法
參數建議
Temperature:0.2–0.4(穩定、少發散)
Max tokens:1024–2048(視報告長度)
為什麼用 map + join?
retriever.result 是 分段陣列(每段含 content/title/url)。
map(attribute='content') 抽出每段內容;join('\n\n---\n') 以分隔線拼接,便於模型閱讀且保留段落邏輯。
好處:不需額外節點,讓 System 直接拿到可閱讀的依據。
最後這邊補充一個好用的模型,只要申請面費的API即可


