實作筆記:為我的部落格裝上 AI 大腦

|4 min read|Updated: |
AINext.jsGeminiRAG

為什麼要給部落格裝 AI?

在這個 AI 無處不在的年代,我一直在想,如果讀者來到我的部落格,不再只是被動地「閱讀」,而是能跟這些內容「對話」,感覺會更有互動性。 於是我決定動手做一個實驗:在部落格裡內建一個 AI 助理,讓它讀過我寫的所有文章,然後回答讀者的問題。

實作過程,我使用了Google剛出的Antigravity,結果他三兩下就幫我做完了,真的很厲害。

技術架構:RAG + Gemini 2.0

要讓 AI 知道我寫了什麼,最適合的技術就是 RAG (Retrieval-Augmented Generation,檢索增強生成)

原理如下:

  1. 知識庫 (Knowledge Base):把我的 Markdown 文章全部讀進來。
  2. 向量化 (Embedding):使用 Embedding 模型把文字變成一串數字(向量)。
  3. 檢索 (Retrieval):當你問問題時,系統會去尋找跟你的問題「向量最接近」的文章片段。
  4. 生成 (Generation):把找到的片段餵給 LLM (大型語言模型),請它根據這些內容回答你。

使用的工具

  • Framework: Next.js (App Router)
  • LLM: Google Gemini 2.0 Flash (速度快,且目前免費額度很OK)
  • Embedding: Gemini text-embedding-004
  • Vector Store: 因為文章還不多,我直接用一個 JSON 檔案存在本地端,簡單有效。

開發過程中的趣事:AI 的自我認同危機

在開發過程中,發生了一個插曲。

一開始,我沒有特別設定 AI 的角色,只是把文章丟給它。結果當我問它:「你是誰?」的時候,因為它讀到了我的第一篇文章 Hello World,裡面寫著「嗨,我是 Yuunjiee」,於是它就很自信地回答:

「我是 Yuunjiee,這是我的部落格!」

它直接變成了我的 數位分身!雖然這也滿酷的哈哈,但為了避免混淆,我後來還是調整了 Prompt,告訴它:

你是 Yuunjiee 部落格的 AI 助理。當你引用文章內容時,請稱呼作者為 'Yuunjiee',不要使用第一人稱。

現在它終於知道自己是誰了。

結語:從 Coder 到 Architect

這次的功能實作,絕大部分的程式碼其實都是由 AI 輔助生成的。

感覺在目前的 AI 時代,寫程式的方式變了。我們不再需要糾結於每一行語法怎麼寫,而是更專注於 「架構設計」「定義問題」

  • 要用什麼模型?
  • 工作流怎麼跑?
  • 要下什麼 Prompt?

這就是我現在在這個部落格做的事——與 AI 協作,把想法變成現實,並且也在慢慢學習軟體架構設計。

歡迎點擊右下角的按鈕,跟我的 AI 助理聊聊天!

Checkpoint重點複習