Skip to main content

概述

Google 提供 @google/genai(JavaScript / TypeScript)和 google-genai(Python)兩套官方 SDK,涵蓋 Gemini API 的全部端點。將 baseUrl 指向 AIHubMix 閘道並替換為平台 API Key,即可透過原生 SDK 呼叫 Interactions、Embeddings、Context Caching 等 OpenAI 相容層未覆蓋的能力,無需改動任何業務程式碼。

快速開始

安裝

Interactions API 要求 @google/genai >= 2.0.0google-genai >= 2.0.0。低版本 SDK 的請求會被 Google 後端拒絕(legacy Interactions schema no longer supported)。

初始化用戶端

baseUrl 固定為 https://aihubmix.com/gemini,與 OpenAI 相容端點 https://aihubmix.com/v1 不同。

Interactions API

Interactions 是 Gemini 新一代推理介面,返回結構化的 Interaction 物件,支援文字生成、原生圖像生成(Nano Banana)及多步推理。同步模式interactions.create())與非同步模式(Background Interactions:create(background: true) + get / cancel / delete)均已支援。

文字生成

呼叫 interactions.create() 發起推理,返回的 Interaction 物件提供 output_text 便捷屬性,直接取得模型最後一段文字輸出。

原生圖像生成

透過 response_format 配置輸出模態為圖像。返回的 Interaction 物件提供 output_image 便捷屬性,其 data 欄位為 Base64 編碼的圖像資料。
  • 推薦模型 gemini-3.1-flash-image(Nano Banana 2,通用生圖模型)。
  • response_modalities 值必須為小寫 ['text', 'image'];大寫為 generateContent API 的寫法,在 Interactions API 中會返回 400
  • 勿傳 delivery: 'inline'400 Image delivery mode is not supported),Interactions API 預設即以 inline 方式返回圖像資料。
response_format 參數:

串流輸出

傳入 stream: true 啟用 Server-Sent Events(SSE)串流傳輸。事件按以下順序到達:
增量文字透過 event.delta.text 取得,事件類型欄位為 event_type
JavaScript

非同步模式(Background Interactions)

傳入 background: true 發起背景推理。請求立即返回 Interaction 物件,statusin_progressid 為該任務的控制代碼,模型在背景繼續推理。用 interactions.get(id) 輪詢取得結果,建議間隔 3 到 5 秒。適用於耗時較長的推理,無需保持長連線。
任務結果尚未就緒時,get() 會返回 400403。這表示結果還沒生成完,應繼續輪詢,不要當作失敗終止。只有返回 200status 才是終態(completed / failed / cancelled)。
idiact1_ 開頭,請原樣保存,後續 get / cancel / delete 都用它,不要截斷或改寫。

取消與刪除

JavaScript
  • backgroundstream 不能同時使用。兩者同傳時 stream 不生效,返回普通 JSON 回應,SDK 會因取不到串流物件而報錯。
  • 圖像模型(如 gemini-3.1-flash-image)不支援非同步模式,傳入 background: true 返回 400 Model 'xxx' does not support background interactions。圖像生成請用同步模式。

Embeddings

透過 embedContent 端點取得文字或多模態內容的向量表示(embedding)。
如需 OpenAI 相容的 /v1/embeddings 端點,請參閱 向量嵌入

embedContent

批次取得 Embeddings

embedContentcontents 參數傳入 Content 陣列,即可一次呼叫取得多條文字的 embedding:
JavaScript

可用模型與參數

gemini-embedding-001 支援透過 config.taskType 指定嵌入用途,最佳化特定下游任務的向量品質:
gemini-embedding-2-preview 不支援 taskType 參數,改為在 prompt 中透過前綴指定任務類型(如 search_query: ...search_document: ...)。

Context Caching(顯式快取)

顯式快取(Explicit Caching)允許開發者手動建立、查詢、引用和刪除 CachedContent 物件,適用於需要在多次請求間複用同一段長上下文的場景。與隱式快取不同,顯式快取由應用側主動管理生命週期。
顯式快取僅適用於 generateContent API。Interactions API 僅支援隱式快取。
未配置儲存定價的模型會被閘道攔截快取建立請求(context caching is not available for model),以防止儲存費用漏收。主流模型(gemini-2.5-flash、gemini-2.5-pro 等)均已配置。

建立 CachedContent

透過 caches.create() 建立快取。ttl(Time-To-Live)控制快取有效期,到期後自動清除。

在 generateContent 中引用快取

cache.name 傳入 cachedContent(JS)或 cached_content(Python)參數,即可在推理時命中快取。命中的 token 數會體現在 usageMetadata.cachedContentTokenCount 中。

查詢與刪除


已支援能力矩陣


常見問題

SDK 版本過低。@google/genai 須 >= 2.0.0,google-genai 須 >= 2.0.0。執行 npm install @google/genai@latestpip install -U google-genai 升級至最新版本。
部分早期模型名稱(如 gemini-2.5-flash-image-preview)在 Interactions API 上已下線。請使用當前可用的模型識別碼,如 gemini-3.1-flash-image(Nano Banana 2)。generateContent API 不受影響。
Interactions API 的 response_modalities 值必須為小寫("text""image")。大寫 "TEXT" / "IMAGE"generateContent API 的寫法,在 Interactions API 中不被接受。
任務結果尚未就緒。非同步任務在生成完成前,interactions.get() 會返回 400403,繼續按 3 到 5 秒間隔輪詢即可,不要當作失敗終止。返回 200 時讀取 status 判斷終態。
任務還沒到達終態。先用 interactions.get() 輪詢取回終態結果,再呼叫 interactions.delete()
不可用。SDK 的 vertexai: true 模式要求 GCP OAuth + project / location 參數,與 apiKey 互斥(SDK 拋出 Project/location and API key are mutually exclusive)。透過 AIHubMix 接入時使用 Gemini Developer API 形態即可,後端自動路由。
閘道對未配置儲存定價的模型會攔截 caches.create() 請求,以防止儲存費用漏收。主流模型(gemini-2.5-flash、gemini-2.5-pro 等)均已配置;如遇此錯誤,請確認該模型是否支援顯式快取。

更新時間:2026-08-14