到目前為止,我們的小幫手主要是「靠腦袋想」,也就是模型本身知道什麼就回答什麼。但經過一段時間的使用,大家應該有發現,AI 有時候會「裝懂」──比如問它今天新聞,它可能會亂編,因為它其實不知道最新的資料,其實也就是所謂的「幻覺」。
常見的作法就是串接外部資料來源。讓模型不只靠訓練知識,還能即時讀取我們提供的資料。現在最熟悉的方法就是 透過RAG(檢索增強生成),不過這有機會再展開說,今天我們先來個簡單版:直接把資料餵進去。
舉例:假設我有一段課程內容,我可以這樣寫:
content = "Python 是一種直譯式、互動式、物件導向的程式語言..."
question = "Python 有什麼特點?"
messages = [
{"role": "system", "content": "你是程式小老師"},
{"role": "user", "content": f"以下是資料:{content}\n\n問題:{question}"}
]
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=messages
)
這樣 AI 就會依照你給的資料來回答,而不是亂猜。
雖然這還不算真正的「檢索系統」,但已經是第一步了:用資料來約束 AI 的回答範圍以及提供相關領域的正確知識。接下來再進一步,就能做到自動搜尋、向量比對,讓 AI 幫你查更多資訊。
說到底,讓 AI 讀資料就像給它一本小抄,沒有小抄它會亂答,有小抄它才比較靠譜。