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 價格計算。
usage 物件,跨模型協議統一從 usage.cost 讀取本次呼叫費用。cost 是可選的費用預覽;價格預覽暫時不可用時,模型回應仍會正常回傳,但可能不包含該欄位。最終帳單以用量記錄為準。
Streaming(串流)
傳送 POST 請求至/v1beta/models/{model}:streamGenerateContent?alt=sse:
usageMetadata 和正規化的 usage,費用仍位於 usage.cost:
data: [DONE]。如果終態價格預覽暫時不可用,usage 仍會回傳 token 用量,但會省略 cost。
支援的模型
進階功能
系統指令
生成設定
JSON 模式
思考模式(Thinking)
支援思考功能的模型(如 gemini-2.5-flash、gemini-2.5-pro)可以啟用思考模式:函數呼叫
多輪對話
圖片理解
安全設定
可透過safetySettings 控制內容過濾:

