情境
正式應用中的 RAG 聊天機器人
內部政策助理依人事手冊與各地補充規定回答問題。 先檢索資料,再呼叫模型。 每段資料保留文件 ID、章節、生效日期與存取權限標記。
Gemini 2.5 Pro 只接收選定段落,且必須引用所用段落 ID。 各地政策不一致時,回答應指出衝突,不可默默選擇其中一個。
正式環境場景
內部政策助理依人事手冊與各地補充規定回答問題。 先檢索資料,再呼叫模型。 每段資料保留文件 ID、章節、生效日期與存取權限標記。

正式環境實作
| 正式環境選擇 | 建議 | 原因 |
|---|---|---|
| API | POST /v1/chat/completions | OpenAI 相容伺服器端請求 |
| 主要模型 | gemini-2.5-pro | 長篇證據與跨文件整理,優先使用 Gemini 2.5 Pro。 |
| 備援模型 | gemini-2.5-flash | 資料檢索完整的簡短回答,使用 Gemini 2.5 Flash。 先確認檢索品質,再將不明確的政策整合交給 Terra。 |
| 升級模型 | gpt-5.6-terra | 只在主要路徑未達品質或複雜度門檻時使用 |
| 輸出規則 | 任務文字或修正 | 每個重要說法後附資料段落 ID,或明確說明證據不足。 |
內部政策助理依人事手冊與各地補充規定回答問題。 先檢索資料,再呼叫模型。 每段資料保留文件 ID、章節、生效日期與存取權限標記。
Gemini 2.5 Pro 只接收選定段落,且必須引用所用段落 ID。 各地政策不一致時,回答應指出衝突,不可默默選擇其中一個。
從伺服器送出請求,將範例內容與預留工具格式換成應用的資料與工具。
curl https://app.llmfly.ai/v1/chat/completions \
-H "Authorization: Bearer $LLMFLY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-2.5-pro",
"messages": [
{"role": "system", "content": "Answer only from the supplied passages. Cite passage IDs after each material sentence. If passages are missing or conflicting, state that explicitly."},
{"role": "user", "content": "Can a Shanghai employee carry unused leave into next year? Use the supplied policy passages."}
]
}'長篇證據與跨文件整理,優先使用 Gemini 2.5 Pro。
資料檢索完整的簡短回答,使用 Gemini 2.5 Flash。 先確認檢索品質,再將不明確的政策整合交給 Terra。
| 指標 | 通過條件 |
|---|---|
| 檢索召回率 | 可回答的測試問題能檢索到已知支持段落 |
| 引用正確率 | 每個引用直接支持所附的句子或欄位 |
| 無據說法比例 | 最終回答不包含來源無法支持的重要說法 |
| 正確拒答率 | 來源缺失、過期或衝突時,助理拒答或說明限制 |
每個重要說法後附資料段落 ID,或明確說明證據不足。
每次正式執行記錄模型 ID、請求 ID、token 用量、重試、驗證結果與最終處理。
兩者都重要,但要分開評估,避免把檢索漏失誤判成生成失敗。
在預算內,使用足以支持回答的最小資料集。
列出差異、來源與日期,不要默默選擇其中一種說法。
以相同請求、工具與驗證規則比較主要和備援模型。