iT邦幫忙

2025 iThome 鐵人賽

DAY 26
0
生成式 AI

一起來打造 PTT 文章智慧問答系統!系列 第 26

【Day 26】LLM 回答品質優化技巧 - Prompt Engineering 實戰

  • 分享至 

  • xImage
  •  

Hi大家好,
這是我參加 iT 邦幫忙鐵人賽的第 1 次挑戰,這次的主題聚焦在結合 Python 爬蟲、RAG(檢索增強生成)與 AI,打造一套 PTT 文章智慧問答系統。在過程中,我會依照每天進度上傳程式碼到 GitHub ,方便大家參考學習。也歡迎留言或來信討論,我的信箱是 gerryearth@gmail.com


前幾天我們已經完成了語意檢索、向量化與 RAG 系統的搭建。今天,我們將深入探討 如何讓 LLM 產生更精準、有價值的回答,也就是常說的 Prompt Engineering

在 RAG 系統中,即使向量檢索精準,如果 Prompt 設計不佳,LLM 仍可能產生不正確或不完整的回答。因此學會優化 Prompt 是提升系統問答品質的重要步驟。


今日目標

  • 了解 Prompt Engineering 的基本概念
  • 學會設計「引導 LLM 正確回答」的 Prompt
  • 掌握提升回答精準度與一致性的技巧
  • 將實務技巧應用在 PTT 問答系統中

Prompt Engineering 基本概念

Prompt Engineering 指的是 設計、優化輸入給 LLM 的文字指令,以影響生成內容的方式和質量。
核心理念:

  1. 明確指示任務:讓模型知道你希望它做什麼。
  2. 提供必要上下文:確保模型有足夠資訊生成答案。
  3. 限制或指導回答格式:減少無關或冗長內容。

實戰技巧

1. 明確問題描述

模糊問題會導致 LLM 產生模糊答案。

  • 模糊 Prompt:

    輝達股票怎麼樣?
    
  • 優化 Prompt:

    請根據以下 PTT 文章內容,以純文字回答有關輝達股票的相關資訊,重點包括政策、股價與市場反應:
    --- 
    {merge_text}
    --- 
    問題:{question}
    

效果:模型會聚焦於文章提供的資訊,而不是生成網路知識。

2. 指定回答格式

在 RAG 系統中,統一回答格式方便前端呈現或自動化處理。

  • 範例:回答必須包含三部分:背景、核心資訊、結論。
背景:
核心資訊:
結論:

3. 控制回答長度

長度過長可能包含冗餘資訊,過短可能不完整。

  • 可在 Prompt 中明確指定回答字數範圍:

    請將回答控制在 150~200 字內。
    

4. 引導模型專注於檢索資料

RAG 系統的特點是提供相關文章作為上下文,但 LLM 可能偏向「生成網路知識」。

  • 使用 「只根據提供資料回答」 的指示:

    根據以下 PTT 文章內容,僅回答文章中提及的資訊,不要補充網路知識。
    

5. 迭代與 A/B 測試

  • 嘗試不同 Prompt 模板,對比回答品質。
  • 可使用簡單的 範例問題與正確答案 做測試。
  • 根據評估結果微調指令詞。

實務應用範例

假設使用者問題為:

輝達股票政策與市場反應

最佳化 Prompt 後:

你是一個智慧問答助理。根據以下 PTT 文章內容回答問題:
---
{merge_text}
---
請只根據文章回答,並分為「背景」、「核心資訊」、「結論」三段,控制在 200 字內。
問題:{question}

LLM 回答會更聚焦、精準且可結構化輸出。


結論

  • Prompt Engineering 是提升 RAG 系統回答品質的核心技巧。
  • 核心原則:明確、具體、提供上下文、限制格式、迭代優化
  • 適用於各種 LLM,對於 PTT 文章智慧問答系統尤其重要,能確保回答依據資料且精準。

明天【Day 27】系統監控與日誌分析 - 追蹤系統的健康狀態,我們將探討 系統監控與日誌分析,讓你能追蹤使用者查詢行為、LLM 回答品質,以及向量檢索效率,進一步提升系統可靠性。


上一篇
【Day 25】如何降低向量資料庫的成本 - 最佳化策略分享
下一篇
【Day 27】系統監控與日誌分析 - 追蹤系統的健康狀態
系列文
一起來打造 PTT 文章智慧問答系統!27
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言