經過 22天的應用,包含對 LINE 和 Telegram 開發經驗的總結與反思,我發現雖然我的機器人現在能夠順利接收訊息、穩定回應,而且也搞定了那些讓我頭大的技術問題,但如果要讓它真正成為一個「懂」SDGs 的專業級 AI 夥伴,光是能回覆我覺得還不夠!我希望它的回答能更精準、更有深度,真的能幫助大家理解並參與永續發展。
今天,我想深入探討如何針對性地優化 Embedding(向量化)和提示詞(Prompt)策略,讓機器人不僅能說,更能「說得好」、「說得精」。
在 AI 時代,我們手上握有了強大的工具,但我相信,身為「個人」,我們可以運用 AI 科技為這個世界創造正面影響。我的專案目標,正是要透過 AI 機器人推廣 SDGs,讓更多夥伴參與永續活動。而要達成這個目標,機器人就必須成為 SDGs 領域的專家!
👉 避免泛泛而談: 通用型的 AI 模型雖然厲害,但它們畢竟是「什麼都懂一點」,對於 SDGs 這樣充滿專業術語、複雜概念和特定情境的領域,它們可能無法提供足夠精準和深入的資訊。
👉 提升回應質量: 我不希望我的機器人只是簡單地複製貼上資料,而是能夠真正理解使用者的問題,結合 SDGs 知識庫,給出有洞察力、有價值的回覆。這就像給它一套專門閱讀 SDGs 文件的「專業眼鏡」和一個專門思考 SDGs 的「智慧大腦」。
👉 強化推廣效果: 機器人回覆的品質越高,使用者對 SDGs 的理解就越深,也越能激發他們參與永續活動的熱情。這直接關係到我專案的最終目標。
要讓機器人更懂 SDGs,我將從兩個核心環節下手:Embedding 模型(理解之眼)和大型語言模型 (LLM) 的提示詞(思考與表達),這些優化我會在程式碼 system_prompt=
區塊上進行。
Embedding 模型負責將文字轉化為向量,這些向量就是機器人在知識庫中搜索的依據。如果 Embedding 不夠精準,就像戴著模糊的眼鏡讀書,即使書的內容再好也看不清楚。
👉 為什麼需要優化?
text-embedding-004
模型非常強大,但它是基於海量通用文本訓練的。SDGs 領域有其獨特的專業詞彙和概念關聯,通用模型可能無法完全捕捉這些細微的語義差異。👉 我的優化思考方向(並已體現在程式碼中):
1️⃣ 精煉輸入文本: 確保輸入給 Embedding 模型的 SDGs 文本是乾淨的,沒有多餘的符號、空格,專業術語也盡量標準化,這能讓模型學習到更純粹的語義。
2️⃣ 明確設定 task_type
:我會嚴格區分兩種 task_type
:RETRIEVAL_DOCUMENT
適用於知識庫文本,而 RETRIEVAL_QUERY
則用於使用者問題。這就像是明確告訴模型:「這個向量是用來檢索的」,能幫助模型更好地理解這些向量的用途,大幅提高檢索相關性。
提示詞就像是給 LLM(大型語言模型)的詳細指令書,指導它如何思考和組織語言。即使檢索到的資料再精準,如果提示詞指令不夠明確,LLM 也可能無法發揮它的最大潛力。
👉 為什麼需要優化?
👉 我的優化思考方向(並已體現在程式碼中):
1️⃣ 更具體的「系統提示」 (System Prompt): 我會繼續精進阿米的角色設定,加入更多關於「如何針對 SDGs 進行專業、有深度回覆」的具體指示。例如,強調「引用或歸納 SDGs 目標」、「解釋 SDGs 如何實際應用於個人生活或社區」、「引導使用者思考 SDGs 的重要性」等。
2️⃣ 明確的「回答步驟」: 在提示詞中,我會把「回答步驟」寫得更精確,指導 LLM 依循嚴謹的邏輯來組織答案。例如:「分析使用者問題與 SDGs 目標的相關性」、「如果問題涉及多個 SDGs 目標,請嘗試整合說明其關聯性」、「當資料不足時,如何禮貌告知並引導提問相關問題」。
3️⃣ 持續迭代與測試: 提示詞優化不是一次性的任務,它需要不斷地測試、評估 LLM 的回覆,然後根據回饋再進行調整和改進。這就像調校一個精密的儀器,需要耐心和細心。
今天的挑戰文章,也讓我對 RAG 系統有了更深層次的理解。不再只是讓程式跑起來,而是要思考如何讓它變得更聰明、更專業!優化 Embedding 和提示詞策略,就像是為我的機器人換上了更清晰的眼睛和更聰明的大腦。
這份內容主要聚焦在這些優化的概念和策略。所有的程式碼實現細節,都已經完全整合在 Day 21 的程式碼中。我會持續在這個程式碼基礎上,根據這些優化策略進行微調和測試,讓我的 SDGs 智慧機器人達到一個全新的境界!
我相信,透過這些精心的調整,我的 SDGs 智慧機器人將會達到一個全新的境界!