發表文章

目前顯示的是 6月, 2025的文章

做個有記憶力的 AI 機器人,實作對話記憶

圖片
# 使用生成式 AI 結合 RAG 技術實做屬於自己的 LLM 知識庫系列文章 前情提要 這篇文章是【 Hello Gemini,串接第一個 Gemini 生成式 AI 】的延伸篇,在完成上一篇的設定後,我們已經成功透過程式呼叫 Google Gemini,串起了第一個生成式 AI 的小程式了。  但,事情並不總是這麼順利... 請看下圖的情境,我一開始問了一個問題,而它也正確的回答,接著再問「那他的背景是什麼」,結果 Gemini 居然回了一個讓人摸不著頭緒回答,不知道它是害怕想起來還是擔心對岸會對它不利 XD,它似乎完全忘了我們上一個問題在問什麼了。 你可能會有疑問?我明明在 ChatGPT 或 Gemini 使用者介面都用的好好的,怎麼會串個 API 就不知道我第一個問題是什麼呢?難道我的 API 版本是金魚腦比較笨!!其實,這是因為像 ChatGPT 或 Gemini 這類平台的使用者介面,內建了「對話記憶」機制來解決這個問題 。 也就是說,這些平台它會自動把你之前說過的話保留下來,讓模型能理解整段對話的上下文,回應自然又有連貫性,就像是跟朋友說話一樣自然。當然,這種記憶也是有限度的( 畢竟模型的上下文長度是有限的,因此記憶也是有限的 ,這部分我們之後有機會可以再深入介紹),不過至少最近幾輪的對話它都還能記住。  但當你透過 API 來串接 Gemini 或 ChatGPT 時, 模型並不會主動幫你記住對話的上下文 ,你得自己把對話的歷史維護好,並在每一次請求時都一併傳送過去,因此如同這篇的主題「做個有記憶力的 AI 機器人」,這篇將會示範如何實作基本的對話記憶機制。

Hello Gemini,串接第一個 Gemini 生成式 AI

圖片
# 使用生成式 AI 結合 RAG 技術實做屬於自己的 LLM 知識庫系列文章 Gemini 是什麼? Gemini 是 Google 開發的生成式 AI 模型系列,它的前身你可能聽過的是 Bard(一開始被 ChatGPT 打的很慘,現在已經默默退場的那位),而 Gemini 這個系列專為多模態任務設計,也就是說它不只會聊天,還能處理圖片、文字,甚至未來可能支援更多格式,你可以把 Gemini 想像成 Google 家的 ChatGPT,而且它也有自己的 API 可以串接。 為什麼選擇 Gemini?  回到本系列第一篇文章提到的,本次的目標是希望用 最低成本 打造出屬於自己的 LLM 知識庫,感覺這個目標聽起來不難,但現實往往不會那麼美好,實務上最理想的狀況當然是整套系統都跑在自己地端環境,不僅能確保資料不會外流,還能完全掌控模型運作細節。 不過嘛…… GPU 很貴的,不是每個人或者公司都願意砸大錢弄一台本地端跑 LLM 的伺服器,更別提現在使用者被 ChatGPT 養壞了,變得超沒耐心,超過 3 秒的回應時間可能就給負評 + 退訂了 XD。 因此我選擇 Google 的 Gemini 作為生成模型,原因很簡單,目前它提供免費呼叫 API 的額度 (至少本文撰寫的時候 Gemini 2.5 Flash 有一個免費額度可以使用,詳細可參考 Gemini Developer API 定價 ,但目前 AI 服務變化太快,未來就沒辦法保證了)。 怎麼串接 Gemini API? 前置作業 在開始寫程式碼之前,你必須先完成底下幾個重要步驟,相關設定也可以參考 Gemini API 說明文件 。 擁有一個 Google 帳戶:這一定要的吧,哪家不是這樣。 申請 Google Cloud 帳戶:去 Google Cloud 註冊一個帳戶,開通免費試用額度。 取得 Gemini API 金鑰:登入 Google AI Studio 後,它會要求同意一些服務條款。 建立 API Key:完成上一個步驟後,理論上可以看到 Create API Key 的按鈕,點下去就對了。 記下 API Key:完成後你會得到一組可以呼叫 Gemini API 的 Key,請記下它(忘記了其實也沒關係,管理介面這邊還可以看到),等等開發的時候會用到。 測試 API Key 拿到 API 照...