Hi大家好,
這是我參加 iT 邦幫忙鐵人賽的第 1 次挑戰,這次的主題聚焦在結合 Python 爬蟲、RAG(檢索增強生成)與 AI,打造一套 PTT 文章智慧問答系統。在過程中,我會依照每天進度上傳程式碼到 GitHub ,方便大家參考學習。也歡迎留言或來信討論,我的信箱是 gerryearth@gmail.com。
前幾天我們已經完成了語意檢索、向量化與 RAG 系統的搭建。今天,我們將深入探討 如何讓 LLM 產生更精準、有價值的回答,也就是常說的 Prompt Engineering。
在 RAG 系統中,即使向量檢索精準,如果 Prompt 設計不佳,LLM 仍可能產生不正確或不完整的回答。因此學會優化 Prompt 是提升系統問答品質的重要步驟。
Prompt Engineering 指的是 設計、優化輸入給 LLM 的文字指令,以影響生成內容的方式和質量。
核心理念:
模糊問題會導致 LLM 產生模糊答案。
模糊 Prompt:
輝達股票怎麼樣?
優化 Prompt:
請根據以下 PTT 文章內容,以純文字回答有關輝達股票的相關資訊,重點包括政策、股價與市場反應:
---
{merge_text}
---
問題:{question}
效果:模型會聚焦於文章提供的資訊,而不是生成網路知識。
在 RAG 系統中,統一回答格式方便前端呈現或自動化處理。
背景:
核心資訊:
結論:
長度過長可能包含冗餘資訊,過短可能不完整。
可在 Prompt 中明確指定回答字數範圍:
請將回答控制在 150~200 字內。
RAG 系統的特點是提供相關文章作為上下文,但 LLM 可能偏向「生成網路知識」。
使用 「只根據提供資料回答」 的指示:
根據以下 PTT 文章內容,僅回答文章中提及的資訊,不要補充網路知識。
假設使用者問題為:
輝達股票政策與市場反應
最佳化 Prompt 後:
你是一個智慧問答助理。根據以下 PTT 文章內容回答問題:
---
{merge_text}
---
請只根據文章回答,並分為「背景」、「核心資訊」、「結論」三段,控制在 200 字內。
問題:{question}
LLM 回答會更聚焦、精準且可結構化輸出。
明天【Day 27】系統監控與日誌分析 - 追蹤系統的健康狀態,我們將探討 系統監控與日誌分析,讓你能追蹤使用者查詢行為、LLM 回答品質,以及向量檢索效率,進一步提升系統可靠性。