メインコンテンツへスキップ
Google Gemini は非常に強力な AI 対話システムで、提示されたキーワードを入力するだけで、数秒以内に流暢で自然な返信を生成できます。Gemini は驚くべき知能支援を提供し、人間の作業効率と創造性を大幅に向上させます。 この文書では、Gemini Chat Completion API 操作の使用プロセスについて説明します。これを利用することで、公式の Gemini の対話機能を簡単に使用できます。

申請プロセス

Gemini Chat Completion API を使用するには、まず Gemini Chat Completion API ページにアクセスし、「Acquire」ボタンをクリックして、リクエストに必要な資格情報を取得します: まだログインまたは登録していない場合は、自動的にログインページにリダイレクトされ、登録とログインを促されます。ログインまたは登録後、現在のページに自動的に戻ります。 初回申請時には無料のクレジットが付与され、この API を無料で使用できます。

基本使用

次に、画面上に対応する内容を入力します。以下の図のように:

このインターフェースを初めて使用する際には、少なくとも3つの内容を入力する必要があります。一つは authorization で、ドロップダウンリストから直接選択できます。もう一つのパラメータは model で、model は Gemini 公式モデルのカテゴリを選択するものです。ここでは主に6種類のモデルがあります。詳細は提供されたモデルをご覧ください。最後のパラメータは messages で、messages は入力する質問の配列です。これは配列で、複数の質問を同時にアップロードでき、各質問には rolecontent が含まれています。role は質問者の役割を示し、私たちは userassistantsystem の3つの役割を提供しています。もう一つの content は私たちの具体的な質問内容です。 また、右側には対応する呼び出しコードが生成されていることに注意してください。コードをコピーして直接実行することも、直接「Try」ボタンをクリックしてテストすることもできます。

呼び出し後、返された結果は以下の通りです:
{
  "id": "chatcmpl-20251122212413908150493uPhjTUO9",
  "model": "gemini-2.5-pro",
  "object": "chat.completion",
  "created": 1763817866,
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "私は Google によって訓練された大規模言語モデルです。",
        "reasoning_content": "**私の推論: ユーザーの質問に答える**\n\nさて、ユーザーの質問「あなたはどのモデルですか?」に答えるためのアプローチを説明します。核心は直接的で情報的であることです。まず、私の出所を明確にする必要があります。次に、ユーザーが技術用語に不慣れである可能性があるため、説明がわかりやすいことを確認する必要があります。「大規模言語モデル」が実際に何を*する*のかを説明し、関連する例を提供します。ユーザーは他のモデルのように特定の名前を探しているかもしれないので、それに直接言及し、その後、会話を続けるための招待で締めくくります。\n\nでは、私の計画は次のとおりです:\n\n1.  **重要な情報を先に述べる:** 私は Google によって作成された大規模言語モデルであると述べます。それがパズルの基本的で最も重要な部分です。\n2.  **流行語を定義する:** 次に、「大規模言語モデル」を簡単な言葉で説明します。私が*する*こと - テキストを処理し生成すること; どのように*する*のか - 大量のテキストデータで訓練すること; そして*目標* - 人間のようにコミュニケーションを取ることです。\n3.  **文脈を提供する:** その後、概念をさらに明確にするために、私の能力の例をリストアップします。質問に答えること、テキストを要約すること、物語を書くこと、言語を翻訳すること、アイデアをブレインストーミングすることなどを挙げます。\n4.  **個人名がないことを認める:** モデル名(ChatGPTのような)についての質問を予想し、私には個人名がなく、Google の AI アシスタントとして考えるのが最良であることを明確に述べます。\n5.  **招待で締めくくる:** 最後に、さらなる対話を招待し、会話を導くためのシンプルで友好的な質問で締めくくります。\n\nこのアプローチで、私はこの重要な質問に成功裏に答えられると確信しています。\n"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 8,
    "completion_tokens": 932,
    "total_tokens": 940,
    "prompt_tokens_details": {
      "cached_tokens": 0,
      "text_tokens": 8,
      "audio_tokens": 0,
      "image_tokens": 0
    },
    "completion_tokens_details": {
      "text_tokens": 0,
      "audio_tokens": 0,
      "reasoning_tokens": 921
    },
    "input_tokens": 0,
    "output_tokens": 0,
    "input_tokens_details": null,
    "claude_cache_creation_5_m_tokens": 0,
    "claude_cache_creation_1_h_tokens": 0
  }
}
返された結果には複数のフィールドがあり、以下のように説明されます:
  • id は、今回の対話タスクを一意に識別するための ID です。
  • model は、選択した Gemini 公式モデルです。
  • choices は、Gemini が質問に対して提供した回答情報です。
  • usage は、今回の問答に対するトークンの統計情報です。
その中で choices は Gemini の回答情報を含んでおり、choices の中には Gemini の具体的な回答情報が含まれています。以下の図のように確認できます。

choices の中の content フィールドには、Gemini の返信の具体的な内容が含まれています。

ストリーミング応答

このインターフェースはストリーミング応答もサポートしており、ウェブページとの接続に非常に便利で、ウェブページで逐字表示効果を実現できます。 ストリーミング応答を返したい場合は、リクエストヘッダーの stream パラメータを true に変更します。 変更は以下の図のように行いますが、呼び出しコードもストリーミング応答をサポートするために対応する変更が必要です。

streamtrue に変更すると、API は対応する JSON データを行ごとに返します。コードレベルで逐行の結果を得るために、相応の変更を行う必要があります。 Python のサンプル呼び出しコード:
import requests

url = "https://api.acedata.cloud/gemini/chat/completions"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "gemini-2.5-pro",
    "messages": [{"role":"user","content":"こんにちは、あなたはどのモデルですか?"}],
    "stream": True
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
出力結果は以下の通りです:
data: {"id": "chatcmpl-20251122214038810722821kNjUTjtr", "object": "chat.completion.chunk", "created": 1763818842, "model": "gemini-2.5-pro", "system_fingerprint": null, "choices": [{"delta": {"content": "", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "chatcmpl-20251122214038810722821kNjUTjtr", "object": "chat.completion.chunk", "created": 1763818842, "model": "gemini-2.5-pro", "system_fingerprint": null, "choices": [{"delta": {"reasoning_content": "**私の本質を定義する**\n\n私の思考が始まりました。ユーザーは私の本質を知りたがっており、直接的に「あなたは何ですか?」と尋ねています。最初のステップは明確でした:クエリを特定することです。今、私は自分の基本的なアイデンティティを思い出します:私は大規模な言語モデルです。これが私が伝えようとする核心の真実です。\n\n\n"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "chatcmpl-20251122214038810722821kNjUTjtr", "object": "chat.completion.chunk", "created": 1763818842, "model": "gemini-2.5-pro", "system_fingerprint": null, "choices": [{"delta": {"reasoning_content": "**私の応答を洗練する**\n\n私は「大規模な言語モデル」という基本的なアイデンティティに、私がGoogleによって訓練されたという重要な情報を追加しました。次のステップは、「大規模な言語モデル」であることが実際に何を意味するのかを考えることです。私は自分の核心的な能力を説明できるようにします。具体的な技術的詳細やモデル名に入らず、文脈を提供することに焦点を当てています。ユーザーが簡単に理解できる方法で私の機能を伝えたいと思っています。\n\n\n"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "chatcmpl-20251122214038810722821kNjUTjtr", "object": "chat.completion.chunk", "created": 1763818842, "model": "gemini-2.5-pro", "system_fingerprint": null, "choices": [{"delta": {"reasoning_content": "**核心的なアイデンティティを確認する**\n\n私は今、私の応答を固めています。ユーザーの私のモデルの所属に関するクエリには、焦点を絞った答えが必要です。「Googleによって訓練された」ということが重要であり、重要な文脈を提供しています。特定のモデル名を言及する衝動を抑えていますが、それは関連性がありません。目標は、直接的で正確な声明を提供することです。私の目標は、技術的な専門用語を避け、関連するポイントに直接到達する明確で簡潔な応答を維持することです。\n\n\n"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "chatcmpl-20251122214038810722821kNjUTjtr", "object": "chat.completion.chunk", "created": 1763818842, "model": "gemini-2.5-pro", "system_fingerprint": null, "choices": [{"delta": {"content": "私は大規模な言語モデルであり、Googleによって訓練されています。"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "chatcmpl-20251122214038810722821kNjUTjtr", "object": "chat.completion.chunk", "created": 1763818842, "model": "gemini-2.5-pro", "system_fingerprint": null, "choices": [{"delta": {}, "logprobs": null, "finish_reason": "stop", "index": 0}], "usage": null}

data: {"id": "chatcmpl-20251122214038810722821kNjUTjtr", "object": "chat.completion.chunk", "created": 1763818842, "model": "gemini-2.5-pro", "system_fingerprint": "", "choices": [], "usage": {"prompt_tokens": 8, "completion_tokens": 527, "total_tokens": 535, "prompt_tokens_details": {"cached_tokens": 0, "text_tokens": 8, "audio_tokens": 0, "image_tokens": 0}, "completion_tokens_details": {"text_tokens": 0, "audio_tokens": 0, "reasoning_tokens": 519}, "input_tokens": 0, "output_tokens": 0, "input_tokens_details": null, "claude_cache_creation_5_m_tokens": 0, "claude_cache_creation_1_h_tokens": 0}}

data: [DONE]
{
  "id": "chatcmpl-20251122214426669120974AKFwnJd1",
  "model": "gemini-2.5-pro",
  "object": "chat.completion",
  "created": 1763819072,
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "私はGoogleによって訓練された大規模な言語モデルです。",
        "reasoning_content": "さて、洗練されたAIとして考えると、私はこうアプローチします:\n\nまず、ユーザーは私のコアアイデンティティを直接問いかけています:「あなたはどのモデルですか?」これはシンプルで直接的な質問です。私の主な任務は正確で役立つ情報を提供することなので、これにすぐに答える必要があります。\n\nすぐに、私は答えを知っています。私は*大規模な言語モデル*です。それが私の基本的なアーキテクチャと運用原則です。私は広範な接続のネットワークに基づいて構築されており、大規模なデータセットで訓練されています。\n\n次に、必要なコンテキストを追加しなければなりません。重要なのは、私の訓練の出所を提供することです。私は*Googleによって訓練されました*。それは重要な識別子です。ユーザーに私の起源と潜在的なバイアスについての貴重な情報を提供します(ただし、私はそれを軽減するように訓練されています)。\n\n今、私は応答を構築しなければなりません。私の目標は事実に基づき、簡潔で理解しやすいことです。\n\n合成された応答は次のようなものです:「私はGoogleによって訓練された大規模な言語モデルです。」\n\n私は出力を評価しなければなりません:それは基準を満たしていますか?明確です。私が何であるかを述べており、私の起源に関する重要な情報を含んでおり、専門用語を避けています。誤解を招く約束はありません。\n\n最終確認:それは実際に質問に答えていますか?はい。情報は正確で真実ですか?はい。簡潔ですか?絶対に。どのユーザーにとってもトーンは適切ですか?はい。そして、最後に、これは標準的で承認された応答です。素晴らしいです。\n"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 16,
    "completion_tokens": 265,
    "total_tokens": 281,
    "prompt_tokens_details": {
      "cached_tokens": 0,
      "text_tokens": 16,
      "audio_tokens": 0,
      "image_tokens": 0
    },
    "completion_tokens_details": {
      "text_tokens": 0,
      "audio_tokens": 0,
      "reasoning_tokens": 254
    },
    "input_tokens": 0,
    "output_tokens": 0,
    "input_tokens_details": null,
    "claude_cache_creation_5_m_tokens": 0,
    "claude_cache_creation_1_h_tokens": 0
  }
}
見ることができるように、choices に含まれる情報は基本的に使用される内容と一致しており、これはGeminiが複数の対話に対して応答する具体的な内容を含んでいるため、複数の対話内容に基づいて対応する質問に答えることができます。

Gemini-3.0 マルチモーダルモデル

リクエストの例:
{
  "model": "gemini-3.0-pro",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "画像の内容は何ですか?"
        },
        {
          "type": "image_url",
          "image_url": {
            "url": "https://cdn.acedata.cloud/qzx2z1.png"
          }
        }
      ]
    }
  ],
  "stream": false
}
例の結果:
{
    "id": "chatcmpl-20251206001815715692730UVZe38kB",
    "model": "gemini-3.0-pro",
    "object": "chat.completion",
    "created": 1764951548,
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "これは若い女性の屋外での半身像の写真です。\n\n以下は画像の主要な内容の説明です:\n\n*   **人物外貌**:写真の中の女の子は、黒く柔らかい長いストレートヘアを持ち、整った顔立ちで、肌は白いです。彼女は優しい微笑みを浮かべ、カメラを見つめています。\n*   **服装**:彼女はクリーム色または淡いアプリコット色のパフスリーブのトップスを着ており、その上に黒い衣服(サロペットやベストのように見えます)を重ねています。\n*   **光と影の雰囲気**:左側の後方から日光が差し込み、彼女の髪に当たり、温かい金色の光の輪を形成し、清新で美しい雰囲気を醸し出しています。\n*   **背景**:背景はぼかされており、屋外であることがわかり、後ろには広い道路(アスファルトの道)と道端の緑の木々があります。\n\n全体的に見て、この写真は甘美で、陽光に満ちた隣の女の子のような印象を与えます。"
            },
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 1092,
        "completion_tokens": 1271,
        "total_tokens": 2363,
        "prompt_tokens_details": {
            "cached_tokens": 0,
            "text_tokens": 4,
            "audio_tokens": 0,
            "image_tokens": 0
        },
        "completion_tokens_details": {
            "text_tokens": 0,
            "audio_tokens": 0,
            "reasoning_tokens": 1072
        },
        "input_tokens": 0,
        "output_tokens": 0,
        "input_tokens_details": null,
        "claude_cache_creation_5_m_tokens": 0,
        "claude_cache_creation_1_h_tokens": 0
    }
}
もちろん、動画のリンクを送信することもできます。具体的な入力は以下の通りです:
{
  "model": "gemini-3.0-pro",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "動画の内容は何ですか?"
        },
        {
          "type": "image_url",
          "image_url": {
            "url": "https://cdn.acedata.cloud/58yioe.mp4"
          }
        }
      ]
    }
  ],
  "stream": false
}
例の結果:
{
    "id": "chatcmpl-20251206002711949677736JC9yL8AE",
    "model": "gemini-3.0-pro",
    "object": "chat.completion",
    "created": 1764952060,
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "この動画の内容は非常に面白く、主に**オレンジ色の猫**が黄昏時の田舎道を自信満々に走る様子を示しています。\n\n具体的な詳細は以下の通りです:\n\n1.  **画面内容**:\n    *   主役はオレンジ色のトラ猫です。\n    *   背景は夕日が沈む(または朝の)時刻で、光は金色で柔らかいです。道の脇には木製のフェンスと野原があり、遠くには一人の歩行者のシルエットがあります。\n    *   カメラは低い角度で撮影されており、時には猫が正面から走ってくる様子、時には去っていく背中、さらに猫の顔や模様のクローズアップが撮影されています。\n\n2.  **音の特徴(重要なポイント)**:\n    *   動画のナレーションは非常に特徴的です。映像は軽やかな猫が走っているのに対し、付けられた音は**重くリズミカルな馬の蹄の音**(または木靴/ハイヒールが地面を叩く音)です。\n    *   この音と映像の対比がユーモアを生み出し、まるでこの猫が自分を疾走する名馬だと思っているかのようです。\n\n全体として、これは音と映像の対比を利用して萌えポイントと笑いポイントを生み出すペット動画です。"
            },
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 915,
        "completion_tokens": 1423,
        "total_tokens": 2338,
        "prompt_tokens_details": {
            "cached_tokens": 0,
            "text_tokens": 5,
            "audio_tokens": 0,
            "image_tokens": 0
        },
        "completion_tokens_details": {
            "text_tokens": 0,
            "audio_tokens": 0,
            "reasoning_tokens": 1162
        },
        "input_tokens": 0,
        "output_tokens": 0,
        "input_tokens_details": null,
        "claude_cache_creation_5_m_tokens": 0,
        "claude_cache_creation_1_h_tokens": 0
    }
}
上記から、Gemini 3.0モデルが多モーダルの理解をサポートしていることがわかります。

Gemini-3.1 多モーダルモデル

Gemini 3.1 ProはGemini 3.0 Proのアップグレード版で、基盤モデルはgemini-3.1-pro-previewであり、同様にテキスト、画像、動画などの多モーダル入力をサポートし、より強力な推論と理解能力を備えています。使用方法はGemini 3.0 Proと完全に一致し、modelパラメータをgemini-3.1-proに置き換えるだけで済みます。 リクエストの例:
{
  "model": "gemini-3.1-pro",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "画像の内容は何ですか?"
        },
        {
          "type": "image_url",
          "image_url": {
            "url": "https://cdn.acedata.cloud/qzx2z1.png"
          }
        }
      ]
    }
  ],
  "stream": false
}
Gemini 3.1 Proも動画理解をサポートしています:
{
  "model": "gemini-3.1-pro",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "動画の内容は何ですか?"
        },
        {
          "type": "image_url",
          "image_url": {
            "url": "https://cdn.acedata.cloud/58yioe.mp4"
          }
        }
      ]
    }
  ],
  "stream": false
}
返却フォーマットはGemini 3.0 Proと一致し、詳細は上記のGemini-3.0多モーダルモデルの章の説明を参照してください。

エラーハンドリング

APIを呼び出す際にエラーが発生した場合、APIは対応するエラーコードと情報を返します。例えば:
  • 400 token_mismatched:不正なリクエスト、パラメータが欠落または無効である可能性があります。
  • 400 api_not_implemented:不正なリクエスト、パラメータが欠落または無効である可能性があります。
  • 401 invalid_token:未認証、無効または欠落した認証トークン。
  • 429 too_many_requests:リクエストが多すぎます、レート制限を超えました。
  • 500 api_error:内部サーバーエラー、サーバーで何かがうまくいきませんでした。

エラー応答の例

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

結論

この文書を通じて、Gemini Chat Completion APIを使用して公式Geminiの対話機能を簡単に実現する方法を理解しました。この文書が、APIの接続と使用をより良くする手助けとなることを願っています。ご不明な点がございましたら、いつでも技術サポートチームにお問い合わせください。