文本系列
Gemini 原生(文字)
使用 Google Gemini 原生格式呼叫 API
POST
簡介
Gemini 原生 API 採用 Google Gemini 的請求與回應格式,適用於 Google 官方客戶端(如google-generativeai SDK)或需要直接使用 Gemini 資料結構的情境。
若使用 OpenAI 相容客戶端(如 OpenAI SDK),請使用 /v1/chat/completions 介面。
與 OpenAI 格式的差異
| 特性 | Gemini 原生 | OpenAI 相容 |
|---|---|---|
| 訊息結構 | contents[].parts[] | messages[].content |
| 角色名稱 | user / model | user / assistant |
| 串流參數 | URL 參數 ?alt=sse | Body 參數 stream: true |
| 系統提示 | systemInstruction | messages[0].role: "system" |
| 多模態 | parts[] 陣列混合 | content[] 陣列混合 |
API 端點
| 功能 | 方法 | 路徑 |
|---|---|---|
| 文字生成(非串流) | POST | /v1beta/models/{model}:generateContent |
| 文字生成(串流) | POST | /v1beta/models/{model}:streamGenerateContent?alt=sse |
| 單條 Embedding | POST | /v1beta/models/{model}:embedContent |
| 批次 Embedding | POST | /v1beta/models/{model}:batchEmbedContents |
認證
支援兩種認證方式:| 方式 | Header | 範例 |
|---|---|---|
| Bearer Token(推薦) | Authorization | Bearer sk-xxxxxxxxxx |
| Google 風格 | x-goog-api-key | sk-xxxxxxxxxx |
請求參數
| 參數 | 類型 | 必需 | 描述 |
|---|---|---|---|
contents | array | 是 | 對話內容陣列 |
generationConfig | object | 否 | 生成設定參數 |
safetySettings | array | 否 | 安全過濾設定 |
systemInstruction | object | 否 | 系統指令 |
tools | array | 否 | 工具定義(函式呼叫、搜尋等) |
cachedContent | string | 否 | 快取內容名稱 |
generationConfig 參數
| 參數 | 類型 | 描述 |
|---|---|---|
temperature | number | 隨機性(0-2) |
topP | number | 核取樣(0-1) |
topK | integer | Top-K 取樣 |
maxOutputTokens | integer | 最大輸出 token 數 |
stopSequences | array | 停止序列 |
candidateCount | integer | 候選回應數量 |
thinkingConfig | object | 思考模式設定 |
基礎範例
- cURL(非串流)
- cURL(串流)
- Python
- Node.js
進階功能
- 思考模式
- 多模態輸入
- 工具呼叫
- Google 搜尋
- 串流輸出
- Context Caching
- 圖像生成
思考模式(Thinking)
Gemini 2.5 Pro 和 Gemini 3 Pro 支援思考模式,使模型在回答前進行深度推理。Gemini 2.5 Pro - 使用thinkingBudget:thinkingLevel:| 參數 | 適用模型 | 可選值 |
|---|---|---|
thinkingBudget | Gemini 2.5 Pro | 1-24576(token 數量) |
thinkingLevel | Gemini 3 Pro | LOW / MEDIUM / HIGH |
Embedding API
單條 Embedding
批次 Embedding
回應格式
錯誤處理
| HTTP 狀態碼 | 錯誤類型 | 描述 |
|---|---|---|
| 400 | INVALID_ARGUMENT | 請求參數無效 |
| 401 | UNAUTHENTICATED | API 金鑰無效或缺失 |
| 403 | PERMISSION_DENIED | 無權存取該模型 |
| 404 | NOT_FOUND | 模型不存在 |
| 429 | RESOURCE_EXHAUSTED | 超出速率限制 |
| 500 | INTERNAL | 伺服器內部錯誤 |
與 OpenAI 格式對比
| 特性 | Gemini 原生 | OpenAI 相容 |
|---|---|---|
| Base URL | https://api.mixroute.ai/v1beta | https://api.mixroute.ai/v1 |
| 訊息結構 | contents[].parts[] | messages[].content |
| 角色名稱 | user / model | user / assistant |
| 系統提示 | systemInstruction | messages[0].role: "system" |
| 串流請求 | URL 參數 ?alt=sse | Body 參數 stream: true |
| 溫度範圍 | 0-2 | 0-2 |
| 函式呼叫 | tools[].functionDeclarations | tools[].function |
| 搜尋增強 | tools[].googleSearch | 不支援 |
| 思考模式 | thinkingConfig | 不支援 |