Skip to main content
POST
https://console.mixroute.io
/
v1beta
/
models
/
{model}
:generateContent
curl --request POST \
  --url 'https://console.mixroute.io/v1beta/models/gemini-2.5-pro:generateContent' \
  --header 'Authorization: Bearer sk-xxxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data '{
    "contents": [
      {"role": "user", "parts": [{"text": "用一句話介紹人工智慧"}]}
    ],
    "generationConfig": {
      "temperature": 0.7,
      "maxOutputTokens": 1024
    }
  }'
{
  "candidates": [
    {
      "content": {
        "parts": [{"text": "人工智慧是一門研究如何讓電腦模擬和實現人類智慧的學科。"}],
        "role": "model"
      },
      "finishReason": "STOP",
      "index": 0,
      "safetyRatings": []
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 10,
    "candidatesTokenCount": 20,
    "totalTokenCount": 30
  },
  "modelVersion": "gemini-2.5-pro"
}

簡介

Gemini 原生 API 採用 Google Gemini 的請求與回應格式,適用於 Google 官方客戶端(如 google-generativeai SDK)或需要直接使用 Gemini 資料結構的情境。 若使用 OpenAI 相容客戶端(如 OpenAI SDK),請使用 /v1/chat/completions 介面。

與 OpenAI 格式的差異

特性Gemini 原生OpenAI 相容
訊息結構contents[].parts[]messages[].content
角色名稱user / modeluser / assistant
串流參數URL 參數 ?alt=sseBody 參數 stream: true
系統提示systemInstructionmessages[0].role: "system"
多模態parts[] 陣列混合content[] 陣列混合

API 端點

功能方法路徑
文字生成(非串流)POST/v1beta/models/{model}:generateContent
文字生成(串流)POST/v1beta/models/{model}:streamGenerateContent?alt=sse
單條 EmbeddingPOST/v1beta/models/{model}:embedContent
批次 EmbeddingPOST/v1beta/models/{model}:batchEmbedContents

認證

支援兩種認證方式:
方式Header範例
Bearer Token(推薦)AuthorizationBearer sk-xxxxxxxxxx
Google 風格x-goog-api-keysk-xxxxxxxxxx

請求參數

參數類型必需描述
contentsarray對話內容陣列
generationConfigobject生成設定參數
safetySettingsarray安全過濾設定
systemInstructionobject系統指令
toolsarray工具定義(函式呼叫、搜尋等)
cachedContentstring快取內容名稱

generationConfig 參數

參數類型描述
temperaturenumber隨機性(0-2)
topPnumber核取樣(0-1)
topKintegerTop-K 取樣
maxOutputTokensinteger最大輸出 token 數
stopSequencesarray停止序列
candidateCountinteger候選回應數量
thinkingConfigobject思考模式設定

基礎範例

curl -X POST "https://console.mixroute.io/v1beta/models/gemini-2.5-pro:generateContent" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxxxxxxxxx" \
  -d '{
    "contents": [
      {"role": "user", "parts": [{"text": "用一句話介紹人工智慧"}]}
    ],
    "generationConfig": {
      "temperature": 0.7,
      "maxOutputTokens": 1024
    }
  }'

進階功能

思考模式(Thinking)

Gemini 2.5 Pro 和 Gemini 3 Pro 支援思考模式,使模型在回答前進行深度推理。Gemini 2.5 Pro - 使用 thinkingBudget
{
  "contents": [{"role": "user", "parts": [{"text": "給一道幾何題並分步解析"}]}],
  "generationConfig": {
    "maxOutputTokens": 16384,
    "thinkingConfig": {
      "includeThoughts": true,
      "thinkingBudget": 8192
    }
  }
}
Gemini 3 Pro - 使用 thinkingLevel
{
  "contents": [{"role": "user", "parts": [{"text": "解釋量子糾纏的原理"}]}],
  "generationConfig": {
    "maxOutputTokens": 16384,
    "thinkingConfig": {
      "includeThoughts": true,
      "thinkingLevel": "MEDIUM"
    }
  }
}
參數適用模型可選值
thinkingBudgetGemini 2.5 Pro1-24576(token 數量)
thinkingLevelGemini 3 ProLOW / MEDIUM / HIGH

Embedding API

單條 Embedding

curl -X POST "https://console.mixroute.io/v1beta/models/text-embedding-004:embedContent" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxxxxxxxxx" \
  -d '{
    "content": {
      "parts": [{"text": "這是一段需要向量化的文字"}]
    }
  }'
回應範例:
{
  "embedding": {
    "values": [0.0123, -0.0456, 0.0789, ...]
  }
}

批次 Embedding

curl -X POST "https://console.mixroute.io/v1beta/models/text-embedding-004:batchEmbedContents" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxxxxxxxxx" \
  -d '{
    "requests": [
      {
        "model": "models/text-embedding-004",
        "content": {"parts": [{"text": "第一段文字"}]}
      },
      {
        "model": "models/text-embedding-004",
        "content": {"parts": [{"text": "第二段文字"}]}
      }
    ]
  }'
回應範例:
{
  "embeddings": [
    {"values": [0.0123, -0.0456, ...]},
    {"values": [0.0234, -0.0567, ...]}
  ]
}

回應格式

{
  "candidates": [
    {
      "content": {
        "parts": [{"text": "回覆文字"}],
        "role": "model"
      },
      "finishReason": "STOP",
      "safetyRatings": [
        {
          "category": "HARM_CATEGORY_HARASSMENT",
          "probability": "NEGLIGIBLE"
        }
      ]
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 10,
    "candidatesTokenCount": 20,
    "totalTokenCount": 30
  }
}

錯誤處理

HTTP 狀態碼錯誤類型描述
400INVALID_ARGUMENT請求參數無效
401UNAUTHENTICATEDAPI 金鑰無效或缺失
403PERMISSION_DENIED無權存取該模型
404NOT_FOUND模型不存在
429RESOURCE_EXHAUSTED超出速率限制
500INTERNAL伺服器內部錯誤
錯誤回應範例:
{
  "error": {
    "code": 400,
    "message": "Invalid value at 'contents[0].parts[0]'",
    "status": "INVALID_ARGUMENT"
  }
}

與 OpenAI 格式對比

特性Gemini 原生OpenAI 相容
Base URLhttps://console.mixroute.io/v1betahttps://console.mixroute.io/v1
訊息結構contents[].parts[]messages[].content
角色名稱user / modeluser / assistant
系統提示systemInstructionmessages[0].role: "system"
串流請求URL 參數 ?alt=sseBody 參數 stream: true
溫度範圍0-20-2
函式呼叫tools[].functionDeclarationstools[].function
搜尋增強tools[].googleSearch不支援
思考模式thinkingConfig不支援
curl --request POST \
  --url 'https://console.mixroute.io/v1beta/models/gemini-2.5-pro:generateContent' \
  --header 'Authorization: Bearer sk-xxxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data '{
    "contents": [
      {"role": "user", "parts": [{"text": "用一句話介紹人工智慧"}]}
    ],
    "generationConfig": {
      "temperature": 0.7,
      "maxOutputTokens": 1024
    }
  }'
{
  "candidates": [
    {
      "content": {
        "parts": [{"text": "人工智慧是一門研究如何讓電腦模擬和實現人類智慧的學科。"}],
        "role": "model"
      },
      "finishReason": "STOP",
      "index": 0,
      "safetyRatings": []
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 10,
    "candidatesTokenCount": 20,
    "totalTokenCount": 30
  },
  "modelVersion": "gemini-2.5-pro"
}