メインコンテンツへスキップ
アプリケーションがすでにGemini形式でリクエストを送っている場合は、Geminiネイティブの generateContent エンドポイントを使います。Google Gen AI SDKまたはリクエストの送信先を https://api.laozhang.ai にし、LaoZhang APIのキーを使ってください。 エンドポイントは次のとおりです。
アプリケーションがOpenAI形式の messages を使っている場合は、代わりにOpenAIプロトコルでGeminiモデルを呼び出してください。

認証情報とモデルの選択

トークン管理でモデル用のAPIキーを作成します。課金方式は、従量優先(推奨。コンソールの表示は「按量优先」)または従量課金(「按量计费」)にしてください。作成したキーは、ターミナルで環境変数に設定します。
モデルカタログのEndpointsにGeminiと表示されているモデルが、この形式に対応しています。例では gemini-3.8-flash を使います。トークングループで利用できるかどうかは、モデルと料金で確認してください。 Geminiネイティブのリクエストでは、Authorization: Bearer と x-goog-api-key のどちらの認証も使えます。Google Gen AI SDKは、APIキーのヘッダーを自動で付けます。

テキストを生成する

GoogleのAPIキー用ヘッダーを使う場合は、Authorization ヘッダーを次の行に置き換えます。
回答に connected が含まれます。GoogleのSDKのベースURLに /v1 を付けたり、このエンドポイントでVertex AIのプロジェクト・ロケーション・パブリッシャーのパスを使ったりしないでください。

回答をストリーミングする

回答をストリーミングするには、同じ本文を https://api.laozhang.ai/v1beta/models/gemini-3.8-flash:streamGenerateContent?alt=sse に送ります。各server-sent eventには、同じ candidates 構造の部分的なレスポンスが入ります。

リクエストの構造

contents には、メッセージが順番に入ります。各メッセージには role と、1つ以上の parts があります。 REST JSONでは inlineData や mimeType のようにcamelCaseを使います。Python SDKのプロパティは inline_data や mime_type のような名前です。呼び出すインターフェースに合った表記を使ってください。任意の設定とメディアへの対応は、モデルによって異なります。

画像を含める

gemini-3.8-flash のように画像入力に対応するモデルでは、同じメッセージにテキストのパートと inlineData のパートを入れます。次のコードは、ローカルの input.png を読み込み、JSONのリクエストを書き出します。
このファイルをリクエスト本文として送ります。
MIMEタイプは、実際の画像と一致させてください。data には、data:image/png;base64, のプレフィックスを付けない、生のBase64を入れます。 画像の説明と画像の生成は別の操作です。Geminiの画像モデルで画像を作成・編集する方法は、Nano Bananaの概要を参照してください。OpenAI形式でビジョンモデルに画像を送る方法は、画像理解APIを参照してください。

PDFや音声ファイルを送る

PDFと音声も、画像と同じように inlineData に入れます。変わるのは mimeType だけです。 次の例は、カレントディレクトリの invoice.pdf を読み込みます。音声の場合は、ファイル名を audio.mp3 に、mimeType を audio/mp3 に変更し、プロンプトを調整してください。
リクエスト本文を書き出します。
続いて、送信します。
音声はトークン単位で課金され、usageMetadata.promptTokensDetails に AUDIO として表示されます。文字起こしだけが必要で、追加の推論が不要なら、音声文字起こしAPIも使えます。

動画を理解させる

MP4動画も inlineData に入れ、mimeType を video/mp4 にします。公開URLや公開されたYouTube動画は、代わりに fileData で渡します。モデルは、フレームと音声トラックを合わせて読み取ります。
完全な例とよくあるタスクは、動画理解APIのページにあります。
  • ローカルの動画を送る、または動画のURLを分析する。
  • 動画をタイムスタンプ付きのチャプターに分ける、または構造化されたJSONを返す。
  • videoMetadata で区間を切り出す、またはフレームレートを変える。
  • 動画を比較する、回答をストリーミングする、OpenAI SDKで呼び出す。

レスポンスを読み取る

テキストの回答は、その他のメタデータを省くと、次のような形です。
テキストは、候補の content.parts から読み取ります。パートが複数あることもあります。Python SDKの response.text ヘルパーは、テキストをまとめて取り出します。メディア、ツール呼び出し、会話履歴が必要なアプリケーションでは、候補のコンテンツ全体を保持してください。 レスポンスにテキストがない場合は、promptFeedback、finishReason、テキスト以外のパートを確認してください。コンテンツのブロック、出力の上限、ツール呼び出しは、ネットワークエラーとは別の処理が必要です。使用量の詳細は、含まれている場合は usageMetadata にあります。アカウントの課金額は呼び出しログで確認できます。

会話を続ける

contents に、前回のユーザーメッセージ、モデルの回答の全体、新しいユーザーメッセージを順に入れて送ります。Geminiではモデルの回答のロールは assistant ではなく model です。 モデルを使った処理を続けるときは、返ってきたパートを保持してください。thoughtSignature を返すモデルでは、署名を対応するパートに付けて、変更せずに返します。 ツール呼び出しに対応するモデルでは、それぞれの functionCall に対応する functionResponse を組にして返してください。テキストの要約では、ツール結果の構造の代わりにはなりません。これらのメッセージ形式は、GoogleのgenerateContentリファレンスを参照してください。

トラブルシューティング

  • 401: APIキーと認証ヘッダーを確認してください。アカウント管理用のAccessTokenではなく、モデル用のAPIキーを使います。
  • 404、またはモデルが見つからない: v1beta、正確なモデルID、トークングループでのGeminiネイティブの利用権限を確認してください。
  • 400: contents、parts、メッセージのロール、メディアのエンコード、エラーに挙げられた任意の設定を確認してください。
  • テキストのないレスポンス: candidates、finish reason、ブロックのフィードバック、テキスト以外のコンテンツを確認してください。
  • 「Cannot fetch content from the provided URL」の400: 画像や動画のURLを直接ダウンロードできません。ログイン不要で、サイトの robots.txt にブロックされていない公開の直リンクを使うか、inlineData でファイルを送ってください。
  • 413: リクエスト本文が大きすぎます。リクエスト全体を20MB以内に収め、大きなファイルは fileData でリンクを渡してください。
  • ファイルのアップロードでWebページまたは404が返る: File APIは利用できません。代わりに inlineData か fileData のURLを使ってください。
  • cURLでは動くがSDKでは失敗する: SDKのベースURLとAPIバージョンを確認してください。最終的なURLには、/v1beta/models/ が1回だけ含まれるはずです。
タイムアウトや一時的なサーバーエラーが出たときは、再試行する前に呼び出しログを確認してください。サポートに連絡するときは、リクエストの時刻、モデル、認証情報を伏せたエラーを添えてください。

よくある質問

Gemini APIの料金は? Googleアカウントは必要?

Googleアカウントも、AI StudioのAPIキーも不要です。LaoZhang APIのキーだけで利用でき、Geminiのテキストモデルは、プリペイド残高からトークン単位で課金されます。2026年10月14日時点の公開価格で、1Mトークンあたりの金額です。
  • gemini-4-argon:入力$2、出力$10
  • gemini-3.8-flash:入力$0.75、出力$3.75
  • gemini-2.5-flash:入力$0.3、出力$2.4
そのほかのGeminiモデルと長いコンテキストの段階料金はモデルカタログと料金に、リクエストごとの課金額は呼び出しログにあります。同時リクエストにプラットフォーム側の上限はなく、スロットリングもありません。429 が出るのは上流の処理能力によるものです。同時リクエストと429を参照してください。

OpenAI互換のエンドポイントで送れるメディアは?

/v1/chat/completions でGeminiモデルを使う場合は次のとおりです。
  • 画像:image_url にURLまたはBase64のデータURLを入れて送ります。画像理解APIを参照してください。
  • 動画:video_url にBase64のデータURLを入れて送ります。OpenAI SDKで呼び出すを参照してください。
  • file パートのPDFと input_audio パートの音声は破棄されます。リクエストは200を返しますが、モデルがファイルを見ないまま回答することがあります。代わりに、このページの inlineData で送ってください。

GeminiモデルでResponses APIは使えますか?

いいえ。Geminiモデルは /v1/responses で400を返します。OpenAI SDKではChat Completionsを呼び出してください。PDF、音声、動画、動画のURLには、このページのネイティブエンドポイントを使います。

GoogleのFile APIには対応していますか?

いいえ。次のいずれも利用できません。
  • /upload/v1beta/files のアップロードエンドポイント
  • files/... による参照
  • SDKの client.files.upload()
ローカルのファイルは inlineData で、公開されている動画は fileData のURLで送ってください。

メディア入力はどう課金されますか?

Geminiのテキストモデルは、トークン単位で課金されます。画像、PDF、音声、動画はいずれも入力トークンに変換され、usageMetadata.promptTokensDetails に IMAGE、AUDIO、VIDEO などの種類別で表示されます。価格はモデルカタログに、リクエストごとの課金額は呼び出しログにあります。

VeoやNano Banana Proをネイティブで呼び出せますか?

  • Nano Banana Pro: gemini-3-pro-image は、ネイティブの generateContent で利用できます。Nano Banana Proを参照してください。
  • Veo: 2026年9月28日時点で、Veoは公開モデルカタログに載っておらず、ネイティブの predictLongRunning リクエストは利用可能なチャネルがないというエラーを返します。動画生成にはWan 2.7かSeedance 2.0を使ってください。

AI StudioとVertex AIのどちらですか?

AI Studioです。LaoZhang APIは、GeminiのテキストモデルとNano Bananaの画像モデルを、Vertex AIではなくGoogleのGemini API(AI Studio)経由で呼び出しています。そのため、次のようになります。
  • モデルID、提供終了日、安全ポリシーは、Googleのdeprecationsページなど、Gemini APIドキュメントに従います。
  • リクエストは、AI Studio形式の v1beta パスを使い、Vertexのプロジェクトやロケーションは使いません。
  • 上流の障害が疑われるときは、Gemini APIのインシデントについてAI Studioのステータスページを確認してください。

関連ドキュメント