概述
Google 提供@google/genai(JavaScript / TypeScript)和 google-genai(Python)兩套官方 SDK,涵蓋 Gemini API 的全部端點。將 baseUrl 指向 AIHubMix 閘道並替換為平台 API Key,即可透過原生 SDK 呼叫 Interactions、Embeddings、Context Caching 等 OpenAI 相容層未覆蓋的能力,無需改動任何業務程式碼。
快速開始
安裝
初始化用戶端
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 編碼的圖像資料。
response_format 參數:
串流輸出
傳入stream: true 啟用 Server-Sent Events(SSE)串流傳輸。事件按以下順序到達:
event.delta.text 取得,事件類型欄位為 event_type。
JavaScript
非同步模式(Background Interactions)
傳入background: true 發起背景推理。請求立即返回 Interaction 物件,status 為 in_progress,id 為該任務的控制代碼,模型在背景繼續推理。用 interactions.get(id) 輪詢取得結果,建議間隔 3 到 5 秒。適用於耗時較長的推理,無需保持長連線。
取消與刪除
JavaScript
Embeddings
透過embedContent 端點取得文字或多模態內容的向量表示(embedding)。
embedContent
批次取得 Embeddings
向embedContent 的 contents 參數傳入 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 僅支援隱式快取。建立 CachedContent
透過caches.create() 建立快取。ttl(Time-To-Live)控制快取有效期,到期後自動清除。
在 generateContent 中引用快取
將cache.name 傳入 cachedContent(JS)或 cached_content(Python)參數,即可在推理時命中快取。命中的 token 數會體現在 usageMetadata.cachedContentTokenCount 中。
查詢與刪除
已支援能力矩陣
常見問題
呼叫 interactions.create() 報 legacy schema 錯誤
呼叫 interactions.create() 報 legacy schema 錯誤
SDK 版本過低。
@google/genai 須 >= 2.0.0,google-genai 須 >= 2.0.0。執行 npm install @google/genai@latest 或 pip install -U google-genai 升級至最新版本。模型返回 404 Not Found
模型返回 404 Not Found
部分早期模型名稱(如
gemini-2.5-flash-image-preview)在 Interactions API 上已下線。請使用當前可用的模型識別碼,如 gemini-3.1-flash-image(Nano Banana 2)。generateContent API 不受影響。response_modalities 報 400 Bad Request
response_modalities 報 400 Bad Request
Interactions API 的
response_modalities 值必須為小寫("text"、"image")。大寫 "TEXT" / "IMAGE" 是 generateContent API 的寫法,在 Interactions API 中不被接受。非同步任務輪詢時返回 400 / 403
非同步任務輪詢時返回 400 / 403
任務結果尚未就緒。非同步任務在生成完成前,
interactions.get() 會返回 400 或 403,繼續按 3 到 5 秒間隔輪詢即可,不要當作失敗終止。返回 200 時讀取 status 判斷終態。刪除非同步任務報 409
刪除非同步任務報 409
任務還沒到達終態。先用
interactions.get() 輪詢取回終態結果,再呼叫 interactions.delete()。vertexai: true 是否可用?
vertexai: true 是否可用?
不可用。SDK 的
vertexai: true 模式要求 GCP OAuth + project / location 參數,與 apiKey 互斥(SDK 拋出 Project/location and API key are mutually exclusive)。透過 AIHubMix 接入時使用 Gemini Developer API 形態即可,後端自動路由。建立快取報 context caching is not available for model
建立快取報 context caching is not available for model
閘道對未配置儲存定價的模型會攔截
caches.create() 請求,以防止儲存費用漏收。主流模型(gemini-2.5-flash、gemini-2.5-pro 等)均已配置;如遇此錯誤,請確認該模型是否支援顯式快取。更新時間:2026-08-14