概要
Google は@google/genai(JavaScript / TypeScript)と google-genai(Python)の 2 つの公式 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 配列を渡すことで、1 回の呼び出しで複数のテキストの embedding を取得できます:
JavaScript
利用可能なモデルとパラメータ
gemini-embedding-001 は config.taskType を通じて埋め込みの用途を指定し、特定のダウンストリームタスクのベクトル品質を最適化できます:
gemini-embedding-2-preview は taskType パラメータをサポートしていません。代わりにプロンプト内のプレフィックスでタスクタイプを指定します(例: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)パラメータに渡すことで、推論時にキャッシュをヒットさせることができます。ヒットしたトークン数は 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