建立自己的 MCP Server 並在 Gemini CLI 中使用

前置需求 在開始之前,請確保你的系統已經安裝: Python 3.8 或更高版本 Gemini CLI (透過 npm install -g @google/gemini-cli 安裝) 若是在學校的環境使用,可能會遇到系統限安全限制,請在 PowerShell 中執行以下命令: 1 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser 步驟 1:建立 Python 虛擬環境 1 2 3 4 5 6 7 8 9 10 11 python -m venv venv #若在系統中有多個Python環境,請使用以下指令來指定環境版本 C:\Users\user\AppData\Local\Programs\Python\Python312\python.exe -m venv venv #啟動虛擬環境 # Windows venv\Scripts\activate # macOS/Linux source venv/bin/activate 步驟 2:安裝所需套件 1 pip install fastmcp 步驟 3:建立 MCP Server 建立 mcp_server.py: ...

October 21, 2025 · 2 分鐘 · WenSheng

什麼是 Fine-tuning?

微調是什麼? 微調 (fine-tuning) 指的是微調語言模型,是在預訓練模型(已經訓練好的語言模型)的基礎上,用較少的資料對模型的全部或是部分參數做調整,來讓模型能在特定的領域有較好的能力。 為什麼要微調? 像是平常接觸到的語言模型如 GPT、Claude、Gemini 等都是由大量的通用資料訓練而來,具有非常強大的語言理解和生成能力,能夠處理各種不同的自然語言任務。但這些模型在特定的專業領域上表現可能並不理想。 通用的語言模型資料覆蓋廣,但對於特定領域的知識或專業術語並不夠深入,像是若今天要製作一個台灣機場的客服 AI,若直接串接 GPT:「可以帶豬肉製品入境嗎?」可能會得到「這個問題的答案取決於您所在的國家和您要進入的國家的法律和規定。 通常來說,豬肉製品可能會受到限制或禁止進入某些國家,特別是那些出現豬瘟或其他豬肉疾病的國家。」 這個回答其實不錯,但太過廣泛了,並不是針對台灣機場的規定。如果想要 GPT 針對台灣機場的規定回答,會需要在指令 (Prompt) 中多加描述,例如改成「你現在是名台灣機場相關規範的專家,我要去桃園機場,請問我可以帶豬肉製品入境嗎?」,但這會出現 Token 過長的問題,對於實際應用場景並不理想。 長文本、資料庫、微調的區別 現在大多數的語言模型都可以支援超長上下文,從一開始的 1k 到現在 1000k,是否可以使用一個完整的提示詞 (prompt) 或者建立一個完整的資料庫來完成任務? 那就需要先理解這三種方式的差異。 長文本 其實就是大多數用戶使用語言模型的方式,用戶直接丟一份文件或是文章給 AI 來處理,並做後續的操作或問答。優點就是非常簡單每個人都會,也可以通過優化提示詞 (prompt) 來得到更好的回答,適合用來處理或理解長篇複雜的文章。 缺點就是只有在當前的對話有效,處理長文本也會需要更多的記憶體和運算資源,對於一些模型本身上下文窗口 (context window) 不夠大時,可能無法完整閱讀整篇文章,從而丟失細節訊息。 長文本比較適合用在像是: 閱讀與理解一篇文章或文件:如報告、合約、法條、學術論文等,一次性地請 AI 幫你摘要、翻譯、重寫或解釋內容。 快速處理臨時問題:像是貼上一段錯誤訊息或原始碼,請 AI 協助除錯或分析。 Prompt 工程實驗:透過精心設計提示詞,提升模型在閱讀長文、理解邏輯或執行指令上的表現。 低技術門檻的應用:無需安裝程式或建立系統,任何人只要有一個 ChatGPT、Claude、Gemini 就能直接操作。 資料庫 傳統的語言模型像 GPT,主要靠它們訓練時吸收的大量資料來回答問題,但這些知識是固定且有限的,有時候模型也可能會憑空產生不準確的答案。 RAG 的想法是先從外部的知識庫或文件中找出和問題相關的資料,然後把這些資料當作背景資訊,給語言模型參考,讓它生成的回答更準確、更有依據。這樣一來,即使是最新的資訊或非常專業的內容,也能被用來輔助回答,而不需要頻繁重新訓練模型。但缺點就是資料庫越大,查詢速度越慢。 簡單來說,RAG 就像是一個會先去查書或查資料的助理,再根據查到的資訊回答問題,讓回答更真實且可信。這種方法在客服系統、專業領域問答、企業內部文件搜尋等場景特別有用,因為它能把龐大的資料變成有用的知識,直接回饋給使用者。 微調 微調(Fine-tuning)是指在已有的預訓練語言模型基礎上,利用特定領域或特定任務的小規模資料,再進行一次針對性的訓練。這樣做的目的是讓模型更熟悉特定的語言風格、知識或任務需求,從而提升在該領域或任務上的表現。 預訓練模型通常是在大規模通用語料庫上訓練,具備廣泛的語言理解能力,但對於某些專業領域或特定應用來說,可能表現不夠理想。微調就是利用少量與目標任務相關的資料,調整模型參數,讓模型能更準確地回答特定領域的問題或完成特定的任務。微調後的模型在特定場景下能提供更專業、更貼合需求的回應。 簡單來說,微調就像是在一台通用型機器上裝配專門模組,讓它能做更專精的工作,而不需要從頭開始訓練整個模型,既省時又省資源。

July 22, 2025 · 1 分鐘 · WenSheng