3行でいうと

  • 入口は、Google AI Studioで作るAPIキーです。新しい利用者は、規約に同意するとプロジェクトとキーが自動で作られます。キーは環境変数 GEMINI_API_KEY に入れ、SDKに任せるのが公式の基本です。GEMINI_API_KEY と GOOGLE_API_KEY の両方があると、GOOGLE_API_KEY が勝ちます。
  • 公式の最新のクイックスタートは、新しい「Interactions API」で書かれています。従来の generateContent は、公式が「legacy(従来型)」としつつ「引き続き十分にサポート」と書いています。新しい機能はInteractions側から出る、とあります。Interactionsを使うには、Python・JavaScriptともSDKが2.3.0以上です。
  • 無料枠と有料枠は、料金だけでなく「入れた内容の扱い」が違います。無料(Unpaid)では、送った内容が製品の改善に使われ、人が読むことがあります。有料(Paid)では、改善には使われません。APIキーを使うAI Studioの利用も、課金が有効なプロジェクトが1つでもあると、有料側の規約の下に入る、と書かれています。
  • クラウド側のGemini(公式の文書では「Gemini Enterprise Agent Platform」の名前が出てきます)は、サービスアカウントなどの企業向けの認証と統制を持つ別の入口です。同じSDKで切り替えられますが、読み込みが足りず比べきれない点があります。

この記事は、実際に使って確かめた記録ではありません。運営者はGeminiを入れていますが、使い心地はこの記事には書いていません。この記事は、2026年10月24日に公式ドキュメントを読んでまとめたものです。コードは公式ページの例を読んで写したもので、実行していません。公式ページは取得時に要約されて返るため、読み切れていない部分があります。金額、上限、モデル名は日付で変わります。法律や契約の助言ではなく、規約の解釈は専門家に確認してください。

先に結論

前提:用語をそろえる

入口は2つ:Developer APIと、クラウド側のGemini

公式の「Gemini API products」(ai.google.devの移行の文書)の整理です。

観点 Gemini Developer API クラウド側(Gemini platform API) 確かさ
公式の位置づけ 作って、本番に出して、広げる最短の道。ほとんどの開発者はここから 企業向けの機能とサービスを持つ、Google Cloud上の入口 文書に書かれている
認証 Gemini APIキー サービスアカウント(本番はADCを勧める)。テスト用にGoogle CloudのAPIキーも使える 文書に書かれている
使えるSDK 統一されたGoogle GenAI SDK 同じSDK。クライアントの作り方が違う 文書に書かれている
使える国 提供国・地域の一覧があり(available-regions、2026-10-22更新と表示)、日本は載っている 同じ一覧のページが「一覧にない国ならこちら(Cloud側)を試す」と案内している 文書に書かれている
価格・上限 このガイドの下の節 読めていない 確認できず

「クラウド側」の呼び方について。ai.google.devの移行の文書は「Gemini platform」と書き、文書のURLには「Gemini Enterprise Agent Platform」が使われています。この文書の本文には「Vertex AI」の名前は出てきませんでした。一方で、データの保存を説明するai.google.devのページは、Vertex AIを名指しで勧めている、という要約が返ってきました。名前の関係を説明した公式の文書は、読んだ範囲では見つかりませんでした。このガイドでは、公式の文書の表記に合わせて「クラウド側」と書き、検索で「Vertex AI」の名前で探すときのために、ここに残します。

Google AI Studio:試す場所

公式の「Google AI Studio quickstart」を読んだ範囲では、画面は次のように説明されています。

APIキーに関わる画面は、別のページで説明されています。API keysのページ、Projectsのページ、Dashboardの下のUsageなどです。次の節からは、そこを使います。

APIキー:作る、置く、守る

作る

公式の「Using Gemini API keys」によると、AI Studioの「Get API key」のボタンか、API keysのページ(aistudio.google.com/apikey)から作ります。

置く:環境変数

公式は、SDKが GEMINI_API_KEY か GOOGLE_API_KEY を自動で読む、と書いています。両方あると、GOOGLE_API_KEY が優先されます。公式の手順は次のとおりです。

# macOS(zsh)の例。~/.zshrc に書く
export GEMINI_API_KEY=<YOUR_API_KEY_HERE>
source ~/.zshrc

Linuxのbashなら ~/.bashrc です。Windowsは、検索で「Environment Variables」を開き、ユーザーの環境変数として、名前を GEMINI_API_KEY、値をキーにして追加し、新しい端末を開き直します(ボタンの名前までは確認できていません)。

コードにキーを直接書く方法も公式にありますが、「環境変数が使えないときだけ」とされています(PythonのClientに api_key= を渡す形)。

「ほかのどこかで `GOOGLE_API_KEY` が設定されていないか」を先に見る
  • 公式が書いているのは、両方あると GOOGLE_API_KEY が優先される、という事実だけです。クラウド側のキーの文書も GOOGLE_API_KEY を例に挙げています。
  • ここは僕らの見立てです。別のプロジェクトのためにすでに GOOGLE_API_KEY を端末に置いている人は、AI Studioで作ったキーを GEMINI_API_KEY に入れても、意図しないキーで呼ばれるかもしれません。最初の呼び出しがエラーになるときは、2つの変数を両方確かめるのがよさそうです。

守る:公式の注意

公式は、キーをパスワードのように扱うよう書いています。漏れると、クォータを使われる、思いがけない請求が出る、非公開のリソースが見られる、が起こりえます。

漏れたときの手順(公式のチェックリスト):

  1. AI StudioかCloudのコンソールで、新しいキーを作る。
  2. アプリを新しいキーで配り直す。
  3. 新しいキーが動くと確かめてから、漏れたキーを無効にする。新しいキーが動く前に消すと、止まる。
  4. Cloudの請求ログとAPIの利用を見て、身に覚えのない使われ方がないか調べる。

漏れたキーで呼ぶと、「キーが漏れたと報告された」という内容のエラーが返る、とトラブルシューティングのページにあります。

キーの種類と、日付のある変更

公式の同じページに、次の整理があります。

項目 内容 確かさ
標準キー 請求とクォータをプロジェクトに結びつける。呼び出した主体は特定しない 文書に書かれている
認証キー(auth key) サービスアカウントに結びつき、その主体として動く。既定でGenerative Language APIに制限される。漏れに対する早い無効化の仕組みがある 文書に書かれている
2026年5月7日 長く使われていない、制限のないキーはブロックされ、AI Studioに「Blocked」と出る 文書に書かれている
2026年5月28日 AI Studioで新しく作るキーは、既定で認証キーになる 文書に書かれている
いま 制限のない標準キーでの要求は、Gemini APIが拒否する。制限がある標準キーは使える 文書に書かれている

古い標準キーを認証キーに変える手順も、公式にあります。API keysのページの「Key Type」の列で「Standard」を探し、「Create API key」で新しく作って、コードや環境変数を差し替え、動作を確かめてから、古いキーを消すか無効にします。なお、認証キーでの呼び出しは、Google Cloudのサービスアカウントの利用メトリクスには出ない、とあります。

SDKを選ぶ

公式の「Libraries」のページの整理です。

言語 パッケージ インストール 確かさ
Python google-genai pip install google-genai 文書に書かれている
JavaScript・TypeScript @google/genai npm install @google/genai 文書に書かれている
Go google.golang.org/genai go get google.golang.org/genai 文書に書かれている
Java com.google.genai:google-genai Mavenの依存。例では版 1.0.0 文書に書かれている
C# Google.GenAI dotnet add package Google.GenAI 文書に書かれている

公式は、これらを「安定していて、本番で使える」ものとして勧めています(Google GenAI SDKは2025年5月にGA)。

古いライブラリに注意。 2025年11月30日付で非推奨になったものとして、Pythonの google-generativeai、JavaScriptの @google/generativeai、Goの google.golang.org/generative-ai などが挙がっています。「保守されていない」とされ、Live APIやVeoのような新しい機能がありません。古い解説に従って旧パッケージを入れると、この問題に当たります。

Interactions APIの版の条件。 Interactionsのページには、PythonのSDKは google-genai の2.3.0以上、JavaScriptは @google/genai の2.3.0以上を使うように、と書かれています。クイックスタートの公式のコマンドは pip install -U google-genai で、-U が付いています。すでに古い版が入っている環境では、この -U が効きます。

最小の呼び出し

Pythonの最小の例

公式のクイックスタート(Interactions API)の例です。実行はしていません。

from google import genai

client = genai.Client()

interaction = client.interactions.create(
    model="gemini-3.8-flash",
    input="Explain how AI works in a few words"
)
print(interaction.output_text)

genai.Client() に引数がないのは、環境変数の GEMINI_API_KEY を読むからです。interaction.output_text は、SDKが付けている便利な項目で、最終の文章をそのまま取り出せます。

JavaScript

import { GoogleGenAI } from "@google/genai";

const ai = new GoogleGenAI({});

const interaction = await ai.interactions.create({
  model: "gemini-3.8-flash",
  input: "Explain how AI works in a few words",
});
console.log(interaction.output_text);

REST(SDKなし)

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "gemini-3.8-flash",
    "input": "Explain how AI works in a few words"
  }'

REST(HTTPで直接呼ぶ形)の応答は、メタデータ、使用量、そのターンの段階(step)の履歴を含む、Interactionの全体です。キーは、x-goog-api-key というヘッダーで渡します。

ストリーミング(逐次表示)

SDKでは stream=True(JavaScriptは stream: true)を付けます。RESTでは、URLに ?alt=sse を付け、本文にも "stream": true を入れます。公式は、サーバーがSSE(server-sent events)で送り、文章は step.delta というイベントで届く、と説明しています。

会話を続ける、指示を足す、設定を変える

generateContentは、どう扱うか

公式の移行の文書は、従来の形(generateContent)も当面は使えるとしつつ、新しい機能は新しい側から出る、と書いています。従来の形の呼び出し例(client.models.generate_content(...)、結果は response.text)は、今回の読み込みでは例のコードを直接確認できていません。使う前に公式の例を見てください。

Interactionsには、まだ使えないものがあります(Interactionsのページの記載、2026年10月24日に読んだ内容)。

機能 読んだ内容 確かさ
Batch API まだ使えない 文書に書かれている
Pythonの自動の関数呼び出し まだ使えない 文書に書かれている
明示的なキャッシュ まだ使えない(暗黙のキャッシュは previous_interaction_id を通して効く) 文書に書かれている
リモートMCP Gemini 3ではまだ対応していない 文書に書かれている

ここは僕らの見立てです。Batchで安く大量に回したい人や、キャッシュを自分で管理したい人は、いまのところ generateContent のほうが合うかもしれません。まず、使いたい機能がこの表にないかを見てください。

スキーマの変更とAPIの版
  • 更新履歴の2026年5月6日の項目には、Interactionsのデータの形が変わる予告があります(outputs が steps に、response_format の変更)。新しい形が既定になるのは5月26日、古い形が消えるのは6月8日、と書かれていました。完了したかどうかは、読んだ範囲では書かれていませんでした。
  • InteractionsのGA(一般提供)について、Interactionsのページは「2026年6月からGA、すべての新規プロジェクトに推奨」と書いています。更新履歴には、GAの記載は見つかりませんでした。
  • クイックスタートの要約には、Api-Revision: 2026-05-20 というヘッダーが2つのRESTの例(マルチモーダル入力、バックグラウンド実行の確認)に出る、とありました。このヘッダーがなぜ必要かは、Interactionsのページにも更新履歴にもなく、確認できていません。この記事のRESTの例(クイックスタートとキーのページのもの)には付いていません。
  • 昔の解説で outputs という欄を使っている例は、古い形かもしれません。ここはこの記事の見立てで、確認はしていません。

OpenAIのライブラリで呼ぶ(ベータ)

すでにOpenAIのPythonライブラリで書いたコードがある人向けに、公式の「OpenAI compatibility」の文書があります。基本のURLは https://generativelanguage.googleapis.com/v1beta/openai/ で、api_key にGeminiのキーを渡します。

from openai import OpenAI

client = OpenAI(
    api_key="GEMINI_API_KEY",
    base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)

response = client.chat.completions.create(
    model="gemini-3.8-flash",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Explain to me how AI works"}
    ]
)

print(response.choices[0].message)

公式は、この互換の対応を「ベータ」と書き、機能を広げている途中だとしています。チャット、ストリーミング、関数呼び出し、画像・音声の理解、構造化出力、埋め込み、バッチ(作成、状態、結果)が挙がっています。バッチのファイルのアップロードとダウンロードは、OpenAIのライブラリではできず、genai のクライアントが必要です。reasoning_effort と thinking_level は同時に使えません。コードの GEMINI_API_KEY は、例の文字列です。実際のキーを直接書かない(環境変数から読む)のが、前の節の注意です。

埋め込み(embedding):検索や分類の素材を作る

埋め込みは、文章などを数の並び(ベクトル)に変えて、意味の近さで検索や分類に使うものです。公式の「Embeddings」のガイドによると、次の2つが挙がっています。

モデルID 入力 入力の上限 公式の記載
gemini-embedding-2 文章、画像、動画、音声、PDF 8,192トークン 安定版。最新の更新は2026年4月
gemini-embedding-001 文章のみ 2,048トークン 安定版。文章だけなら引き続き使える

呼び出しは、Interactionsとは別の形で、client.models.embed_content を使います。公式の例です。

from google import genai

client = genai.Client()

result = client.models.embed_content(
        model="gemini-embedding-2",
        contents="What is the meaning of life?"
)

print(result.embeddings)

print(result.embeddings) で何が表示されるかは、公式のページに出力の例がなく、読めていません。値そのものを取り出し、長さを確かめる書き方は、次の例が公式に載っています。

from google import genai
from google.genai import types

client = genai.Client()

result = client.models.embed_content(
    model="gemini-embedding-2",
    contents="What is the meaning of life?",
    config=types.EmbedContentConfig(output_dimensionality=768)
)

[embedding_obj] = result.embeddings
embedding_length = len(embedding_obj.values)

print(f"Length of embedding: {embedding_length}")

公式の出力の例は Length of embedding: 768 です。config=types.EmbedContentConfig(output_dimensionality=768) が次元を指定する書き方、[embedding_obj] = result.embeddings と embedding_obj.values が、1件分の数の並びの取り出し方です。

検索で使う:質問側と文書側の書き方(gemini-embedding-2)

公式のEmbeddingsのガイドは、gemini-embedding-2 では用途を文字列の接頭辞で伝え、検索のように質問と文書を別の形にするものと、同じ形にするものを分けています。

質問側と文書側の書き方は、公式のガイドでは次のとおりです(縦棒 | は接頭辞の一部です)。

公式のページは、同じ用途の中では書き方をそろえること(文書を分類の形で作ったら、質問側も同じ形で作る)を求めています。公式の例の補助関数は、次のとおりです。

# 質問側(用途に合う行を選ぶ)
def prepare_query(query):
    # return f"task: question answering | query: {query}"
    # return f"task: fact checking | query: {query}"
    # return f"task: code retrieval | query: {query}"
    return f"task: search result | query: {query}"

# 文書側(非対称の検索)
def prepare_document(content, title=None):
    if title is None:
        title = "none"
    return f"title: {title} | text: {content}"

gemini-embedding-001 の場合は、これらの接頭辞ではなく config=types.EmbedContentConfig(task_type="SEMANTIC_SIMILARITY") のように task_type を渡します(公式の例は、文章の配列と類似度の行列)。3072以外の次元にしたときの正規化は、公式の例では numpy で値を自分のノルムで割っています。

埋め込みの最初の10分(公式の例だけで組める手順)

  1. 前の節のとおり、環境変数 GEMINI_API_KEY を置き、pip install -U google-genai を実行する。
  2. 公式の最初の例(contents="What is the meaning of life?")を1回動かす。
  3. output_dimensionality=768 を付けた例に変え、Length of embedding: 768 と出るかを確かめる。
  4. 文書側を title: none | text: ...、質問側を task: search result | query: ... の形にそろえて、2本の文字列を作る(動かして近さを測るところは、公式の例の範囲を超えるので、ここでは扱いません)。
  5. あとで別のモデルへ替える可能性があるなら、ベクトルの空間は互換ではない点を思い出し、元の文章を残しておく(ここは僕らの整理です)。

無料枠と有料枠:料金だけでなく、データの扱いが違う

3つの枠

公式の料金ページ(2026年10月24日に確認)は、Free、Paid、Enterpriseに分けています。

枠 公式の説明(言い換え) 入力・出力の扱い 確かさ
Free 一部のモデルの限定的な利用。入力・出力のトークンが無料 製品の改善に使われる 文書に書かれている
Paid 本番向けの高いレート制限、Batch API(費用50%減) 製品の改善に使われない 文書に書かれている
Enterprise Paidのすべてに、専任のサポート、高度なセキュリティとコンプライアンス、確保された処理能力、量に応じた割引が選べる このページには書かれていない 確認できず

単価(標準、有料枠、100万トークンあたり、米ドル)

モデル 無料枠 入力 出力(思考を含む) 確かさ
gemini-4-argon なし(Not available) 2.00ドル(11月30日まで)、4.00ドル(12月1日から) 10.00ドル(11月30日まで)、20.00ドル(12月1日から) 文書に書かれている
gemini-3.8-flash あり(Free of charge) 0.75ドル(12月31日まで)、1.50ドル(2027年1月1日から) 3.75ドル(12月31日まで)、7.50ドル(2027年1月1日から) 文書に書かれている
gemini-3.5-flash-lite あり(Free of charge) 0.30ドル 2.50ドル 文書に書かれている

レート制限とTier

公式の「Rate limits」の整理です。

Tier 条件 課金の上限(Billing tier cap)
Free 有効なプロジェクト、または無料トライアル なし
Tier 1 有効な課金アカウントを紐づける 250ドル
Tier 2 100ドルの支払いと、最初の支払いから3日 2,000ドル
Tier 3 1,000ドルの支払いと、最初の支払いから30日 2万ドル〜10万ドル超

上の上限は、課金の文書で「月ごと」と説明されています(前のガイド03では月ごとか読み取れませんでした)。そこに達すると、紐づいた全プロジェクトのサービスがいったん止まり、次の請求サイクルまで待ちます。Tierの引き上げは自動で、Freeから Tier 1 は通常すぐ、そのあとは10分以内です。増やしたいときは、「Request paid tier rate limit increase」のフォームがありますが、増える保証はない、と書かれています。上の表のほかに、10分間のうちに使える金額の上限(Tier 1は10ドル、Tier 2は50ドル、Tier 3は200ドル)も書かれ、超えると 429 RESOURCE_EXHAUSTED が返ります。

課金を始める手順(公式の文書)

  1. AI Studioで、API keysかProjectsのページを開く。
  2. Projectsのページで、無料のプロジェクトの「Billing Tier」の列にある「Set up billing」を押す。
  3. Google Cloudの請求先をまだ持っていなければ、国を選んで規約に同意し、連絡先と支払い方法を入れる。持っていれば選ぶか「Add new billing account」を押す。
  4. 最低5ドルを前払いする(Prepay)。選べる場合は後払い(Postpay)もあり、移行期間のあいだ後払いが割り当てられることもある。

前払いの細部:最小5ドル、最大5,000ドル。未使用のクレジットは購入から12か月で期限が切れ、返金されません(後払いへの切り替えのときは自動で返金される、という記述が別にあります)。「Setup auto-reload」で残高が減ったときの自動の追加ができ、「Monthly Limit」で月の追加額に上限を付けられます。後払いから前払いへは「Switch to Prepay」で変えられます。前払いから後払いへの切り替えは、FAQでは「対応していない」とされる一方、返金の節には切り替えを前提にした記述があり、同じページの中で食い違っています。どちらかに頼る前に、公式の画面で確かめてください。

使った量の見方:AI Studioの「Dashboard」の「Usage」。Cloud Billingのコンソールでも見られます。プロジェクトごとの月の上限は「Spend」のページの「Monthly spend cap」(公式は実験的と書いています)です。請求のアラートの記載は、課金の文書には見つかりませんでした(キーの文書には、Cloudのコンソールで設定する、とあります)。

止まり方と落とし穴(公式の「Warnings」):

入れた内容はどうなるか

規約が書いていること

公式の「Gemini API Additional Terms of Service」を読んだ範囲です。

項目 無料(Unpaid Services) 有料(Paid Services) 確かさ
内容の製品への利用 送った内容と応答を、製品や機械学習の提供・改善・開発に使う 製品の改善には使わない。データ処理の追加条項に従う 文書に書かれている
人が読むか レビュアーが読んだり注釈を付けたりすることがある。Googleアカウント、APIキー、Cloudプロジェクトとのひもづけは先に外す 人のレビューの記載は、読んだ範囲では見つからなかった 文書に書かれている
ログ 読んだ範囲では、別の記載は見つからなかった 禁止された使い方の検知、安全、法令の開示のために、限られた期間、ログを取る。保管の長さは書かれていない。国をまたいで一時的に保管やキャッシュされうる 文書に書かれている
機密・個人情報 「送らないこと」と明記 この警告は、無料の節に書かれている 文書に書かれている

そのほかの条件:

公式の「ゼロデータ保持」のページ

ai.google.devには、ゼロデータ保持(ZDR)の文書があります。公式は、1つの設定ではなく、「条件の集まり」として説明しています。要約として読んだ内容です。

領域 読んだ内容
学習への利用 有料のサービスに限り、プロンプト(システム指示、キャッシュ、ファイルを含む)と応答を製品の改善に使わない
不正利用の検知のログ 有料でも、限られた期間ログを取る。Gemini APIには、これを止める方法は書かれていない
Interactions API 状態の保存が既定でオン。store を false にすると保存しない
暗黙のキャッシュ メモリ上のみで、プロジェクトごとに分けられ、有効期限は24時間。ZDRに反しない、と書かれている
明示的なキャッシュ 利用者が決めた期限まで残る。cached_content の欄を避ければよい
File API アップロードしたファイルは、消すか期限切れまで残る。自分で消す必要がある
Live API SessionResumptionConfig を使わない。使うと、最大24時間、会話の状態が保たれうる

ここに、Interactionsの保存期間の記載が加わります(Interactionsのページ)。既定は store=true で、有料枠は55日、無料枠は1日保存されます。有料のプロジェクトは、AI Studioで保存期間を7、14、28、55日から選べます。store=false にすると、previous_interaction_id も、バックグラウンド実行も使えません。保存された記録は、delete のメソッドで消せます。

AI Studioの「Data logging and sharing」(公式のログの文書)は、課金が有効なプロジェクトで、対応するAPIの呼び出しを、あなたのプロジェクトの中のログとして残す機能です。既定の保持は最大55日(7、14、28、55日から選べる)で、既定では製品の改善には使われません。ログをデータセットとして共有すると、Googleが製品の改善や学習に使うことがあり、人のレビュアーが読むこともあります。オンにする手順や画面の項目は、このページにはありませんでした。ページに画面名として出てくるのは、データセットとして共有するログを選ぶ「Logs and Datasets」だけで、保存期間はAI Studioで変えられる、と書かれています(メニューの名前は書かれていません)。自分の画面で確かめるときは、まずこの名前を探してください。

クラウド側のGeminiとの違い

切り替えは、クライアントの作り方で行う

公式の移行の文書は、同じSDKで2つの入口を切り替えられるとし、クライアントの作り方の違いを示しています。読んだ要約から、形を写します(実行していません)。

# Interactions API:Developer API
client = genai.Client()

# Interactions API:クラウド側
client = genai.Client(enterprise=True, project="your-project-id", location="global")

# generateContent:クラウド側
client = genai.Client(vertexai=True, project='your-project-id', location='us-central1')

JavaScriptにも同じ切り替えがあるとされていますが、書き方の細部は今回確認できていません。Goの従来型は、genai.BackendVertexAI を指定します。

並べて見る

観点 Developer API クラウド側 確かさ
認証 APIキー(x-goog-api-key) サービスアカウント。APIキーはテスト向き、本番はADCを勧める 文書に書かれている
キーの入手 AI Studio Google Cloudのコンソールの「express mode」で作る。新規は無料の90日トライアル、と書かれている。@gmail.com のGoogleアカウントに限る、という記載もある(どこにかかるかは読み切れていない)。Workspaceのアカウントや既存のCloudの利用者は、標準のキーかADCを使う 文書に書かれている
環境変数 GEMINI_API_KEY か GOOGLE_API_KEY キーの文書は GOOGLE_API_KEY を例示。移行の文書は環境変数の名前を出していない 文書に書かれている
場所の指定 なし project と location。Interactionsは、プレビューのあいだ global のみ、と書かれている 文書に書かれている
AI Studioで作ったモデル そのまま 引き継がれず、作り直す 文書に書かれている
データの保存の設定 前の節 学習に、事前の許可なく使わない。リクエストとレスポンスのログは既定でオフで、BigQueryに書く形。暗黙のキャッシュは最大24時間。耐久性のあるキャッシュも24時間以内。store=false は同じ 文書に書かれている
価格・上限 前の節 読めていない 確認できず

読んだ範囲での注意が3つあります。

移行の手順(公式の文書)

Developer APIからクラウド側へ移るときの手順です。

  1. Google Cloudのサービスアカウントの認証を用意する。
  2. いまのAPIキーがあるプロジェクトを使うか、新しく作る。
  3. 地域の対応を確かめる(Interactionsはプレビューのあいだglobalのみ)。
  4. AI Studioで作ったモデルは作り直す。
  5. Developer APIのキーが要らなければ、Cloudの「API Credentials」のページで、キーの「Actions」から「Delete API key」を選び、確認する。反映には数分かかり、そのあと、そのキーの要求は拒否される。

間違って消したときの戻し方として、公式は gcloud beta services api-keys undelete の名前を挙げています。

最初の10分でやること

ここは公式に書かれている手順だけを並べた短い流れです。

  1. AI Studioを開く。規約に同意して、既定のプロジェクトとキーが作られたかをAPI keysのページで見る。
  2. Playgroundで1回、プロンプトを試す。Run settingsのSystem Instructionsも触ってみる。
  3. 環境変数に GEMINI_API_KEY を置く(zshなら ~/.zshrc)。新しい端末を開く。
  4. pip install -U google-genai を実行し、前の節のPythonの5行を動かす。
  5. 同じ呼び出しをcurlでも動かして、REST(x-goog-api-key)の形を見る。
  6. API keysのページで、キーに「Unrestricted」と出ていないかを見て、出ていれば「Restrict to Gemini API only」を付ける。
  7. キーのファイルをGitに入れない設定にする(公式の注意は「バージョン管理に入れない」まで。具体的な書き方は下の「僕らの整理」を参照)。
  8. AI Studioの「Dashboard」の「Usage」を見て、使った量が出るかを確かめる。

ここからは僕らの整理です。7番の具体例として、キーを .env というファイルに書いて使うなら、リポジトリの .gitignore に次の1行を足し、git check-ignore -v .env で無視されているかを確かめる、という手があります。公式のページにこの書き方が載っているわけではなく、Gitの一般的な使い方です。すでにコミットしてしまったキーは、公式の「漏れたときの手順」のとおり、新しいキーに替えるのが先です。

# .gitignore(僕らの整理の例。公式の例ではありません)
.env

課金を有効にするのは、この8つが終わり、無料枠では足りない理由がはっきりしてからで十分、と思います。課金を有効にすると、AI Studioの扱いも変わるからです。

僕らの見立て

気をつけること

エラーと再試行の早見表

公式のTroubleshootingのページは、エラーの全表を別の「API errors」ページに任せていて、そのページは読めていません。このページの本文から読み取れた範囲と、課金の文書で書かれたものを並べます。

HTTPコード 公式が書く原因 再試行 出典
400 無効なAPIキー、前払いクレジットの枯渇、書き方の誤りなど、利用者側の問題としてまとめて挙げられている。課金の文書は、失敗しても課金されないが、クォータには数えられるとする しない Troubleshooting、課金の文書
402 前払いクレジットの枯渇。課金の文書は、残高0で全キーが止まりこのコードが返る、とする しない Troubleshooting、課金の文書
403(PERMISSION_DENIED) プロジェクトのアクセス拒否、未払いの残高、漏れた・ブロックされたキー しない。無料枠の制限ならCloud Billingを結びつける、漏れたキーなら新しいキーを作る、と書かれている Troubleshooting
408 一時的なエラーとして挙げられている 間隔を空けて再試行 Troubleshooting
429(RESOURCE_EXHAUSTED) レート制限。課金の文書は、10分間の金額の上限を超えたときにも返る、とする 指数的に間隔を延ばし、ゆらぎを入れて、回数の上限まで Troubleshooting、レート制限・課金の文書
503(UNAVAILABLE) 一時的に使えない 同上 Troubleshooting
5xx 一時的なサーバーのエラー 間隔を空けて再試行 Troubleshooting

公式は、一時的なエラー(429、408、5xx)だけを再試行し、400、402、403は再試行しないよう書いています。また、PythonのSDKは429と5xxを既定で最大4回まで再試行する、とあります。404、500、504は、このページの本文には出てきませんでした。失敗した要求の課金は、このページには書かれていません(400と500は課金されないとする記述は課金の文書にあります)。

全体の注意

出典