Gemini ガイド
Geminiの描画とビデオ生成ガイド
Gemini 呼び出し方法
Geminiシリーズでは、ネイティブ呼び出しとOpenAI互換の2種類の呼び出し方法を提供しています。
使用する前に、pip install google-genai
またはpip install -U google-genai
を実行して、ネイティブの依存関係をインストール(更新)してください。
1️⃣ ネイティブ呼び出しの場合、主にAiHubMixキーとリクエストリンクを内部に渡します。このリンクは通常のbase_url
の書き方とは異なることに注意してください。例を参照してください。
2️⃣ OpenAI互換形式の場合、汎用v1
エンドポイントを維持します。
3️⃣ 2.5シリーズの場合、推論プロセスを表示する必要がある場合は、以下の2つの方法を使用できます。
- ネイティブ呼び出し:
include_thoughts=True
を渡す - OpenAI互換方式:
reasoning_effort
を渡す
関連する詳細な呼び出しは、以下のコード例を参照してください。
Gemini 2.5 シリーズの「推論」の説明
- 2.5シリーズはすべて推論モデルです。
- 2.5 Flashはハイブリッドモデルで、Claude Sonnet 3.7に似ており、
thinking_budget
を使用して推論予算を制御することで最適な効果を得ることができます。 - 2.5 Proは純粋な推論モデルであるため、思考をオフにしたり、推論予算を明示的に渡したりすることはできません。
Python呼び出しの例は以下の通りです。
Gemini 2.5 Flash サポート
OpenAI互換方式の呼び出しは以下の通りです。
- 複雑なタスクの場合、モデルIDをデフォルトで思考が有効になっている
gemini-2.5-flash-preview-04-17
に設定するだけで済みます。 - Gemini 2.5 Flashは
budget
(思考予算)によって思考の深さを制御します。範囲は0〜16Kで、現在の転送ではデフォルトの予算1024が使用されており、最適な限界効果は16Kです。
マルチメディアファイル
Aihubmixは現在、inline_data
を使用してアップロードされた20MB未満のマルチメディアファイル(画像、音声、ビデオ)のみをサポートしています。
20MBを超えるマルチメディアはFile API(未サポート)を使用する必要があります。upload_url
を返すために、ステータスの追跡が完了するのを待っています。
コード実行
自動コード解析器のユースケースの例:
コンテキストキャッシュ
Geminiは、ネイティブAPIの下でデフォルトで暗黙的なコンテキストキャッシュを有効にしており、開発者が手動で操作する必要はありません。generate_content
リクエストごとに、システムは自動的に入力コンテンツのキャッシュを作成します。後続のリクエストが以前のコンテンツと完全に一致する場合、キャッシュが直接ヒットし、前回の推論結果が返され、応答速度が大幅に向上し、トークン消費を節約できる可能性があります。
- キャッシュは自動的に有効になり、手動設定は不要です。
- キャッシュは、コンテンツ、モデル、パラメータが完全に一致する場合にのみ有効になります。いずれかのフィールドが異なる場合、新しいリクエストとして扱われ、キャッシュはヒットしません。
- キャッシュの有効期限(TTL)は開発者が設定できます。設定しないことも可能です。指定しない場合、デフォルトは1時間です。最小または最大期間の制限はなく、費用はキャッシュされたトークン数とキャッシュ時間によって異なります。
- Google公式はTTLに上限を設定していませんが、当社は転送プラットフォームであるため、限られたTTL設定範囲のみをサポートしており、永続的な有効性を保証するものではありません。
注意事項
-
コスト削減の保証なし:キャッシュされたトークンの課金は入力元の価格の25%であり、理論的には入力部分で最大75%のコストを節約できますが、Google公式は必ずしも節約を保証していません。実際の請求は、キャッシュヒット率、トークンタイプ、ストレージ期間を総合的に評価する必要があります。
-
キャッシュヒット条件:キャッシュヒット率を高めるために、重複するコンテキストをリクエストの先頭に配置し、変動するコンテンツ(ユーザー入力など)を後部に配置することをお勧めします。
-
キャッシュヒットフィードバック:応答結果がキャッシュにヒットした場合、
response.usage_metadata
にcache_tokens_details
フィールドが含まれ、cached_content_token_count
が表示されます。開発者はこれに基づいて、今回のリクエストがキャッシュにヒットしたかどうかを判断できます。 応答フィールドの例(キャッシュヒット時):
コード例:
キャッシュヒット時、
response.usage_metadata
は以下の構造を含みます。
**核心的な結論:**暗黙的なキャッシュは自動ヒットとヒットフィードバックをサポートします。開発者はusage_metadataを通じてヒット状況を判断できます。コスト削減は保証されず、実際の結果はリクエスト構造と使用シナリオによって異なります。
関数呼び出し
OpenAI互換方式でGeminiの関数呼び出し機能を使用する場合、リクエストボディ内にtool_choice="auto"
を渡す必要があります。そうしないとエラーが発生します。
出力結果の例:
トークン使用量追跡
- GeminiはネイティブAPIで
usage_metadata
を使用して使用されたトークンを追跡します。そのフィールドは以下の通りです。
- prompt_token_count: 入力トークン数
- candidates_token_count: 出力トークン数
- thoughts_token_count: 推論に使用されたトークン数。性質上、これも出力トークンです。
- total_token_count: 総トークン使用量(入力+出力)
- OpenAI互換形式の場合、
.usage
を使用して追跡します。フィールドは以下の通りです。
- usage.completion_tokens: 入力トークン数
- usage.prompt_tokens: 出力トークン数(推論に使用されたトークン数を含む)
- usage.total_tokens: 総トークン使用量
使用方法は以下の通りです。