跳到正文

Gemini 對話

通過 OpenAI Chat Completions、OpenAI Responses 與 Anthropic Messages 調用 Gemini 模型。

用途端點
Base URLhttps://api.hop-base.com/v1(Anthropic Messages 用 https://api.hop-base.com)
對話(OpenAI Chat Completions)POST /v1/chat/completions
對話(OpenAI Responses)POST /v1/responses
對話(Anthropic Messages)POST /v1/messages

兩種 Gemini 套餐分組的可用參數不同,接入前請先看下方「兩個分組的差異」。

第一個請求

Gemini 對話模型可以用 OpenAI Chat Completions、OpenAI Responses 與 Anthropic Messages 三種協議調用,下面以 Chat Completions 為例。鑑權用 Authorization: Bearer sk-你的金鑰,也接受 x-api-key。

curl https://api.hop-base.com/v1/chat/completions \
  -H "Authorization: Bearer sk-你的金鑰" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3.8-flash",
    "messages": [{"role": "user", "content": "你好"}]
  }'

不同套餐分組可用的 Gemini 型號可能不同。請先用當前金鑰調用 GET /v1/models,只使用實際返回的完整 ID。

不支援 x-goog-api-key 與 /v1beta/models/{model}:generateContent。兩個 Gemini 分組都可用 /v1/chat/completions、/v1/responses 與 /v1/messages;「Gemini 官方直連」另提供 /v1/messages/count_tokens(本地估算,不計費)。兩組在各協議下的細節不同,見下方「兩個分組的差異」。

可用模型

系列模型 ID定位
Gemini 4gemini-4-argonGemini 4 代 · 1M 上下文
Gemini 3.8gemini-3.8-flash最新 Flash · 預設推薦
Gemini 3.7 / 3.6gemini-3.7-flash / gemini-3.6-flash上一代 Flash
Gemini 3.5gemini-3.5-flash / gemini-3.5-flash-lite穩定 Flash / 低成本
Gemini 3.1 Progemini-3.1-pro-preview
gemini-3.1-pro-preview-customtools
高階推理預覽 / 工具調用預覽
Gemini 3.1gemini-3.1-flash-lite / gemini-3.1-flash-lite-preview輕量版 / 輕量預覽
Gemini 3gemini-3-flash-preview3 代 Flash 預覽
Gemini 2.5gemini-2.5-pro
gemini-2.5-flash
gemini-2.5-flash-lite
穩定版

推薦順序:日常預設使用 gemini-3.8-flash;所有 ID 含 preview 的型號均按預覽版使用,不作穩定性承諾。

不同套餐分組的價格不同,以當前金鑰所屬分組及登入後「模型廣場」為準。

兩個分組的差異

能力Gemini 官方直連Gemini 全系(含生圖)
端點/v1/chat/completions、/v1/responses、/v1/messages 均可用(Claude Code 可經 CC Switch 直連,模型名須填 Gemini 型號 ID)/v1/chat/completions、/v1/responses、/v1/messages 均可用(Claude Code 可直連;不支援 Codex CLI)
請求體格式各協議的標準格式;/v1/chat/completions 另接受 Gemini 原生 contents僅 OpenAI messages
工具調用三協議均支援 tools 與 tool_choice,含並行調用與多輪;Responses 另支援 custom 自由文字工具支援,返回 tool_calls
結構化輸出支援:Chat 用 response_format,Responses 用 text.format,Messages 用 output_format / output_config.format支援 response_format
stop / nstop 生效;n 可取 1–8,返回多條 choicesstop 生效;n 只返回 1 條
圖片輸入僅 base64(Chat 為 data URL,Messages 為 base64 來源)data URL 與公網 https 連結
串流三協議均支援;可能整段生成完畢後才分塊下發逐字串流
單次時限約 100 秒未完成即判逾時並自動換號重試不設固定上限
可用型號上表全部較少,以 GET /v1/models 為準

「Gemini 全系(含生圖)」的結構化輸出支援 response_format 的 json_object 與 json_schema。

「Gemini 官方直連」:Chat Completions 參數

  • messages:內容分片支援 text、image_url、input_audio、file、refusal,其他類型返回 400。image_url 只接受 base64 data URL;file 的 file_data 須為 data URL,不支援 file_id。role: "tool" 的結果作為函式結果送給模型。
  • tools / tool_choice:tool_choice 支援 auto、none、required、指定函式與 allowed_tools;支援並行工具調用與多輪。parallel_tool_calls: false 時只保留第一個調用。舊版 functions / function_call 也相容。工具參數 schema 按完整 JSON Schema 接收,$ref、$defs、anyOf、additionalProperties 等無需改寫。
  • response_format:支援 json_object 與 json_schema。
  • stop:字串或陣列。n:1–8,返回同等數量的 choices。
  • max_tokens / max_completion_tokens:同時傳時以 max_tokens 為準;思考 token 計入此上限,建議不低於 4096。
  • temperature / top_p:按模型官方範圍原樣轉發;seed、top_k 也支援。
  • presence_penalty / frequency_penalty:為 0 時忽略;非 0 時原樣下發,目前 Gemini 型號會返回 400 Penalty is not enabled for this model。
  • reasoning_effort:換成思考預算,見下方「思考」。
  • 返回 400 的欄位:logprobs、top_logprobs、logit_bias、modalities、audio、web_search_options(modalities 僅在含 text 以外的取值時報錯)。
  • 忽略且不影響輸出的欄位:user、metadata、store、service_tier、safety_identifier、prompt_cache_key、stream_options、prediction、verbosity。

通用欄位說明見 API 參考 Chat Completions。

「Gemini 官方直連」:Responses 與 Anthropic Messages

Responses(POST /v1/responses)
  • 工具:支援 function 工具與 custom 自由文字工具(如 Codex 的 apply_patch);內建 / 託管工具(web_search、file_search、code_interpreter、computer 等)返回 400。tool_choice 取值同 Chat Completions;max_tool_calls 會截斷調用數。
  • 無狀態:previous_response_id、conversation、background、prompt 範本與 item_reference 返回 400。每次請求都要在 input 裡帶完整歷史(Codex 預設即如此)。
  • 結構化輸出用 text.format。
  • 忽略且不影響輸出的欄位:store、include、user、metadata、safety_identifier、prompt_cache_key、service_tier、truncation、text.verbosity。
Anthropic Messages(POST /v1/messages)
  • Base URL 填 https://api.hop-base.com(不帶 /v1)。Claude Code 可經 CC Switch 直連,模型名須填 Gemini 型號 ID(如 gemini-3.8-flash),claude-* 名字不會自動對應。
  • tool_choice 支援 auto、any、tool、none;disable_parallel_tool_use: true 時只保留第一個調用。
  • image / document 只接受 base64 來源,url 來源返回 400;tool_result 可以帶圖片。
  • 結構化輸出用 output_format 或 output_config.format(json_schema)。
  • /v1/messages/count_tokens 為本地估算,不計費。
  • 忽略且不影響輸出的欄位:metadata、service_tier、cache_control、context_management。

思考簽名(工具調用多輪)

Gemini 3 及以上型號的工具調用會帶「思考簽名」,在各協議裡的位置:

協議位置
Chat Completionstool_calls[].extra_content.google.thought_signature
Responsesreasoning 輸出項的 encrypted_content
Anthropic Messagesredacted_thinking 塊

下一輪把助手訊息原樣帶回即可。用戶端丟了這些欄位也不會報錯:網關會盡量找回,找不回則按官方方式跳過校驗,推理連貫性可能略有下降。

串流輸出(SSE,加 "stream": true)

curl https://api.hop-base.com/v1/chat/completions \
  -H "Authorization: Bearer sk-你的金鑰" \
  -H "Content-Type: application/json" \
  -d '{"model": "gemini-3.1-pro-preview", "stream": true,
    "messages": [{"role": "user", "content": "你好"}]}'

「Gemini 官方直連」分組的三個協議都支援 "stream": true,事件格式分別符合 OpenAI Chat Completions、OpenAI Responses 與 Anthropic Messages 規範,含工具調用的增量。串流可能在整段生成完畢後才集中分塊下發,首塊到達時間約等於完整生成時間,三個協議都是如此。Chat Completions 的最後一塊固定帶 usage。

「Gemini 全系(含生圖)」分組是逐字串流,需要用量時加 stream_options.include_usage。

非串流回應的 usage 裡帶本次扣費:cost_usd 為從餘額實際扣除的美元金額,cost 為同一筆的人民幣金額,currency 為 cost 的幣別(恆為 CNY);回應標頭 X-HopBase-Cost / X-HopBase-Cost-USD / X-HopBase-Currency 同值;串流回應都不帶,扣費請到主控台「使用記錄」查看。見扣費說明。

思考(Thinking)

Gemini 模型預設開啟思考且無法完全關閉,思考 token 計入輸出上限。max_tokens 設得太小會出現 finish_reason=length 而正文只有幾個字,建議不低於 4096。

OpenAI 格式下思考 token 已包含在 completion_tokens 裡,另在 completion_tokens_details.reasoning_tokens 單列(「Gemini 官方直連」的 Responses 在 output_tokens_details.reasoning_tokens)。原生格式在 usageMetadata.thoughtsTokenCount 單列。

「Gemini 官方直連」分組把 reasoning_effort 換成思考預算:

reasoning_effort思考預算
none / minimal0
medium8192
high24576
low 及其他取值沿用模型預設

gemini-4-argon 只接受思考檔位,不按上表換算:none / minimal → low,medium → medium,high → high;low 與不傳一樣按模型預設檔位。無法完全關閉思考。

Responses 開啟 reasoning.summary 時返回 reasoning 摘要;Anthropic Messages 的 thinking.type 為 enabled 或 adaptive 時返回 thinking 塊,budget_tokens 超過 24576 時按 24576 截斷。

「Gemini 官方直連」的計費口徑:思考 token 計入輸出;內建工具回灌給模型的 token(toolUsePromptTokenCount)計入輸入。usage 按各協議的標準形態返回,其中 Anthropic Messages 的 input_tokens 不含快取讀取,快取讀取在 cache_read_input_tokens。

「Gemini 全系(含生圖)」分組傳 none 可明顯減少思考量。

Gemini 原生格式透傳

從 Gemini SDK 遷移的存量請求體可以直接送:「Gemini 官方直連」分組的同一端點也接受 Gemini 原生 contents 欄位,回程按原生結構返回。

curl https://api.hop-base.com/v1/chat/completions \
  -H "Authorization: Bearer sk-你的金鑰" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3.8-flash",
    "contents": [{"role": "user", "parts": [{"text": "你好"}]}]
  }'

原生格式只接受官方的頂層欄位:

contents, systemInstruction, generationConfig, safetySettings, tools,
toolConfig, cachedContent, labels, serviceTier, model

出現 store、max_tokens、messages 等其他欄位會返回 400 Unknown name …。原生格式不支援串流,請勿帶 "stream": true。

下一步