Skip to main content
Google Gemini 是一個非常強大的 AI 對話系統,透過輸入提示就能在幾秒內生成流暢自然的回覆。本文檔主要描述 Gemini Generate Content API 的使用方法,這是 Google 官方原生 API 格式,支援 generateContent 和 streamGenerateContent 兩個端點。

與 Chat Completions API 的差異

Gemini Generate Content API 使用 Google 官方原生請求格式(contents 欄位),而不是 OpenAI 相容格式(messages 欄位)。如果你已經使用 Google Gemini SDK 或熟悉官方 API 格式,可以直接使用此 API 而無需修改請求格式。

目前支援範圍

介面接受文字、圖片、影片和音訊輸入(inlineData 或 fileData)、思考設定及自訂函式宣告。音訊輸出、內建工具和明確內容快取等原生欄位尚無統一可用性保證,請以具體模型的實際回傳為準。 使用 fileData.fileUri 提交音訊等檔案時,請確保檔案可透過 HTTPS 直接存取,不依賴登入狀態,並讓簽名連結的有效期覆蓋整個請求處理時間。非串流音訊分析需要在模型完成處理後才回傳結果,可能超過 90 秒;用戶端應按檔案大小和業務情境設定足夠長的總逾時,避免在伺服器端仍在處理時中斷連線。

申請流程

使用 Gemini Generate Content API 前,請先造訪 Gemini Generate Content API 頁面,點擊「取得」按鈕來獲得請求所需的憑證。 如果尚未登入或註冊,會自動跳轉到登入頁面。首次申請會有免費額度。

基本用法

Non-Streaming(非串流)

傳送 POST 請求至 /v1beta/models/{model}:generateContent:
提示:gemini-3.x 系列 flash 為思考模型,會先消耗 reasoning tokens;請把 generationConfig.maxOutputTokens 設至 512 以上,否則可能只回傳空內容。
回傳結果範例:
usageMetadata 中的 token 欄位會按原生 Gemini 語義計費:
  • promptTokenCount 包含 cachedContentTokenCount,快取命中的部分按快取讀取價格計算,不會重複計為一般輸入。
  • promptTokensDetails 與 cacheTokensDetails 會正規化為 usage.prompt_tokens_details 下的 text_tokens、image_tokens、video_tokens、audio_tokens 及對應 cached_* 明細。這些值分別包含在 prompt_tokens 與 cached_tokens 中;不同模態僅按各自價格重新計算,不會重複計費。
  • candidatesTokenCount 和 thoughtsTokenCount 均按輸出 token 價格計算。
  • toolUsePromptTokenCount 是獨立的工具輸入 token,按輸入 token 價格計算。
Ace Data Cloud 額外回傳正規化的 usage 物件,跨模型協議統一從 usage.cost 讀取本次呼叫費用。cost 是可選的費用預覽;價格預覽暫時不可用時,模型回應仍會正常回傳,但可能不包含該欄位。最終帳單以用量記錄為準。

Streaming(串流)

傳送 POST 請求至 /v1beta/models/{model}:streamGenerateContent?alt=sse:
串流回傳會以 SSE(Server-Sent Events)格式逐步回傳內容。中間事件通常只包含增量內容;含權威用量的終態事件會包含 usageMetadata 和正規化的 usage,費用仍位於 usage.cost:
連線關閉即表示串流結束;原生 Gemini 串流不會傳送 data: [DONE]。如果終態價格預覽暫時不可用,usage 仍會回傳 token 用量,但會省略 cost。

支援的模型

進階功能

系統指令

生成設定

JSON 模式

思考模式(Thinking)

支援思考功能的模型(如 gemini-2.5-flash、gemini-2.5-pro)可以啟用思考模式:

函數呼叫

多輪對話

圖片理解

安全設定

可透過 safetySettings 控制內容過濾:

錯誤處理