Skip to main content

概要

Google は @google/genai(JavaScript / TypeScript)と google-genai(Python)の 2 つの公式 SDK を提供しており、Gemini API のすべてのエンドポイントをカバーしています。baseUrl を AIHubMix ゲートウェイに向け、プラットフォームの API Key に置き換えるだけで、ネイティブ SDK を通じて Interactions、Embeddings、Context Caching など OpenAI 互換レイヤーではカバーされない機能を呼び出すことができます。ビジネスコードの変更は一切不要です。

クイックスタート

インストール

Interactions API は @google/genai >= 2.0.0 または google-genai >= 2.0.0 が必要です。古いバージョンの SDK からのリクエストは Google バックエンドに拒否されます(legacy Interactions schema no longer supported)。

クライアントの初期化

baseUrlhttps://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()400 または 403 を返します。これは生成がまだ完了していないことを示すため、失敗として終了させず、ポーリングを続けてください。200 が返された場合にのみ status が終了状態(completed / failed / cancelled)になります。
idiact1_ で始まります。そのまま保存し、以降の get / cancel / delete はすべてこの id を使用してください。切り詰めたり書き換えたりしないでください。

キャンセルと削除

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 配列を渡すことで、1 回の呼び出しで複数のテキストの embedding を取得できます:
JavaScript

利用可能なモデルとパラメータ

gemini-embedding-001config.taskType を通じて埋め込みの用途を指定し、特定のダウンストリームタスクのベクトル品質を最適化できます:
gemini-embedding-2-previewtaskType パラメータをサポートしていません。代わりにプロンプト内のプレフィックスでタスクタイプを指定します(例: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.namecachedContent(JS)または cached_content(Python)パラメータに渡すことで、推論時にキャッシュをヒットさせることができます。ヒットしたトークン数は usageMetadata.cachedContentTokenCount に反映されます。

照会と削除


サポート済み機能マトリックス


よくある質問

SDK バージョンが低すぎます。@google/genai は >= 2.0.0、google-genai は >= 2.0.0 が必要です。npm install @google/genai@latest または pip 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()400 または 403 を返します。失敗として終了させず、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