跳至主要內容
ESC
Study Jam:GenAI 開發者實戰 — 第 15/29 篇

Gemini 開發者指南

Gemini 開發者指南

課程概述

呼叫 Gemini API 不難,真正容易踩雷的是把 Demo 直接當成正式服務。這堂課從開發者會遇到的選擇切入:什麼時候用完整回應、串流、結構化輸出或 Function Calling,以及認證、驗證、重試和監控應該放在哪一層。

Gemini API 開發架構:應用以驗證過的文字、圖片、音訊和影片請求選擇快速或高能力模型,可取得完整回應、串流 Token,或讓模型提出 Function Calling 結構化工具要求,經應用驗證執行後再生成答案

完整回應最簡單,Streaming 改善首字延遲,Function Calling 則把「模型決定意圖」與「應用安全執行工具」分開。對話狀態、安全過濾、重試、限流與用量遙測都應放在 API 閘道周圍,而不是交給模型自行處理。

你將學到

  • 使用 Google Gen AI SDK(google-genai)初始化 Gemini 模型並發送請求
  • 處理多模態輸入:文字 + 圖片、文字 + 影片、文字 + 音訊
  • 實作串流回應(Streaming)以提升使用者體驗
  • 運用 Function Calling 讓 Gemini 呼叫外部 API 與工具
  • 依任務品質、延遲、成本與支援模態選擇合適模型

核心概念

Gemini 模型家族

Gemini 有偏重複雜推理的 Pro、重視速度與成本的 Flash,以及更適合高流量工作的 Flash-Lite 等系列;另有提供裝置端能力的模型,但不能把它當成雲端 API 裡單純可互換的選項。模型名稱和生命週期變動很快,正式開發時應先列出目前可用模型,再用自己的測試集比較品質、首字延遲、總回應時間、Token 用量與支援模態,不要只看系列名稱決定。

多模態輸入的實作

Gemini 可以在一次請求裡接收文字與其他模態,例如把架構圖連同「請找出潛在單點故障」一起送出。檔案可以直接帶入、以内嵌資料提供,或先放在服務支援的儲存位置;實際格式、大小與上傳方式要看所選 API 和模型。圖片、音訊與影片都會占用上下文與費用,送出前應先縮小範圍,不要把整段影片丟進去只問其中五秒的畫面。

Function Calling 機制

Function Calling 讓模型提出「想呼叫哪個函式、要帶哪些參數」的結構化要求。真正執行函式的仍是你的應用程式,因此參數驗證、使用者授權、逾時、重試、冪等性與稽核紀錄都不能交給模型。執行完成後,再把成功結果或可處理的錯誤回傳給模型整理答案。Google Gen AI SDK 也能自動呼叫直接傳入的 Python 函式,但牽涉付款、刪除或外部寫入時,手動控制通常比較安心。

串流回應(Streaming)

一般呼叫會等回應完成後一次傳回;串流則會陸續送出內容片段,能改善使用者感受到的等待時間,但不一定縮短整體生成時間。用 Google Gen AI SDK 時,可透過 generate_content_stream() 取得同步串流。前端還要處理中途中斷、使用者取消、錯誤狀態,以及內容尚未完整時不要提早解析半截 JSON。

回應模式由下游需求決定:人閱讀長答案可用串流,程式要接資料可用 Schema,碰到外部工具則由 Function Calling 提出要求、應用程式負責安全執行。

實作重點

  • 安裝 google-genai SDK(from google import genai),完成認證並初始化 Client;舊 Vertex AI SDK 的生成式模組已於 2026 年 6 月 24 日移除,舊程式應依官方遷移資訊改用 Google Gen AI SDK
  • 撰寫一個同時傳入文字與圖片的多模態請求,測試圖片理解能力
  • 定義兩個 Function(如天氣查詢、匯率轉換),實作完整的 Function Calling 流程
  • 從目前可用模型挑選兩個候選者,用同一份測試集比較品質、首字延遲、總時間與成本
  • 在 Cloud Run 上部署一個簡單的 Gemini API 後端服務

Lab 導讀

Lab 連結Gemini for Application Developers — Google Cloud Skills Boost

這個 Lab 主要是動手寫程式,會在 Jupyter Notebook 裡用 Python 呼叫 Gemini API。若教材仍出現舊版 SDK,先對照目前的 google-genai 寫法,不要混用兩套物件。Function Calling 的重點是把四個角色分清楚:應用定義工具、模型提出呼叫、應用驗證並執行、模型整理結果。模型從頭到尾都不該直接握有未受限制的系統權限。

延伸學習

Study Jam:GenAI 開發者實戰 — 15/29 完成 查看系列全覽 →

留言討論

徽章解鎖!