Google Gemini 1.5 API の機能、特徴、価格と使い方

Google Gemini 1.5 API の機能、特徴、価格と使い方

こんにちは!(株)Qualiteg テックブログです!

【2024年7月2日更新版】

本日は Google Gemini 1.5 Pro/ Gemini 1.5 Flash モデルの特徴、価格、Pythonをつかったテキスト生成について解説いたします。

Google Gemini とは

Google Geminiは、Googleが提供する生成AIプラットフォームです。高品質なテキスト生成を行うためのAPIを提供し、さまざまなアプリケーションで自然な言語生成を利用できます。Geminiは多くの業界で使用されており、コンテンツ作成、カスタマーサポート、チャットボット、マーケティング、教育など、幅広い用途に対応しています。

APIキーの取得方法

Google Geminiを利用するためには、APIキーが必要です。以下の手順でAPIキーを取得できます。

Google AI Studio にアクセスして、手順にしたがい、Get API key でAPIキーを作成します。

https://aistudio.google.com/


生成されたAPIキーをコピーして、安全な場所に保存します。

パッケージのインストール

Google Gemini 用のPython用パッケージが PyPIに準備されていますので、以下でインストールしましょう。

pip install google-generativeai

モデルの種類と特徴

最新(2024/7時点)の言語モデルは Gemini 1.5 となっており、Gemini 1.5 Pro と Gemini 1.5 Flash の2つのモデルが利用可能です。

Gemini 1.5 Flash は Gemini 1.5 Pro よりも小型軽量のモデルで、1.5 Pro を蒸留して作られました。FlashはProに近づく性能を持ちつつ、価格は 1/10 である点が注目点ですね。高精度が要求されるタスクには Proを。コスパ重視なら、Flashという選択肢になるでしょう。

Gemini 1.5 Flash Gemini 1.5 Pro
処理速度 非常に高速(サブセカンドの応答) Flashより遅い
コスト効率 高コスパ Gemini 1.5 Flashより10倍高額
コンテキストウィンドウ 最大100万トークン 最大200万トークン
マルチモーダル能力 テキスト、画像、音声、動画を処理可能 テキスト、画像、音声、動画を処理可能
主な用途 高速を要求されるタスク一般 高精度を要求されるタスク一般
性能 Proより劣るものの、Gemini 1.0 Ultraと同等の性能がある。 Flashより若干高い
入力処理能力 1時間のビデオ、11時間のオーディオ 1時間のビデオ、11時間のオーディオ
アーキテクチャ Proからの上流により軽量化 より大規模なモデル

https://ai.google.dev/gemini-api/docs/models/gemini?hl=ja

価格

価格を以下にまとめました。

項目 入力価格 出力価格
Gemini 1.5 Flash
gemini-1.5-flash-001
$0.35
(128,000トークンまで)
$0.70
(128,000以降)
$1.05
(128,000トークンまで)
$2.10
(128,000以降)
Gemini 1.5 Pro
gemini-1.5-pro-001
$3.50
(128,000トークンまで)
$7.00
(128,000以降)
$10.50
(128,000トークンまで)
$21.00
(128,000以降)

価格の特徴は以下のようになります

  1. Gemini 1.5 FlashはGemini 1.5 Proと比較して、大幅に低価格です。
  2. 両モデルとも、128,000トークンを超えると価格が2倍になります。
  3. 出力価格は入力価格の3倍に設定されています。
  4. Gemini 1.5 Proは、Gemini 1.5 Flashの10倍の価格設定になっています。

これらの価格設定は、Gemini 1.5 Proがより高度な機能や性能を持つ一方で、Gemini 1.5 Flashが効率的で経済的な選択肢として位置付けられていることを示しています。ユーザーは、必要な機能と予算に応じて適切なモデルを選択できます。

Gemini-1.5 pro について
https://ai.google.dev/gemini-api/docs/models/gemini?hl=ja#gemini-1.5-pro

Gemini 1.5 Flash について
https://ai.google.dev/gemini-api/docs/models/gemini?hl=ja#gemini-1.5-flash-expandable

バージョン名と安定板

Geminiは以下のようなモデル名形式となります。

種類 説明 モデル名形式
最新 指定された世代とバリエーションの最新バージョン。基盤モデルは定期的に更新され、プレビュー版の場合もある。探索的テストやプロトタイプ用。 <model>-<generation>-<variation>-latest gemini-1.0-pro-latest
最新の安定版 指定された世代とバリエーションの最新の安定版。 <model>-<generation>-<variation> gemini-1.0-pro
安定版 特定の安定版モデル。変更されない。ほとんどの本番環境アプリで使用。 <model>-<generation>-<variation>-<version> gemini-1.0-pro-001

生成パラメータ一覧

以下のコードのように指定することのできる生成パラメータ一覧

# 生成AIのパラメータ設定
generation_config = {
    "max_output_tokens": 8192,  # 生成される最大トークン数を設定
    "temperature": 1,  # 生成の多様性を制御する温度パラメータを設定
    "top_p": 0.98,  # トークンの選択に使用する確率の閾値を設定
}
パラメータ名 説明
temperature 予測のランダム性を制御する 省略可: float
top_p 指定した場合、Nucleusサンプリングを使用する 省略可: float
top_k 指定した場合、トップKサンプリングを使用する 省略可: float
candidate_count 生成する候補の数 省略可: int
max_output_tokens メッセージごとに生成する出力トークンの最大数 省略可: int
stop_sequences 停止シーケンス 省略可: List[string]
presence_penalty 正のペナルティ 省略可: float
frequency_penalty 頻度のペナルティ 省略可: float

ソースコード

Pythonを用いて Google Gemini を呼び出してみましょう。

とくにGemini では、 SafetySettings を詳細に設定ができるため、その部分を手厚くソースコードに盛り込みました。

import google.generativeai as genai
from google.generativeai.types import HarmCategory, HarmBlockThreshold

API_KEY = "取得したキー"
genai.configure(api_key=API_KEY)

model_id = "gemini-1.5-flash-001"  # input 0.35/MTokens - output 1.05/MTokens

# モデル情報の初期化
model = genai.GenerativeModel(
    model_id,
)

# 生成AIのパラメータ設定
generation_config = {
    "max_output_tokens": 8192,
    "temperature": 1,
}
safety_settings = {
    HarmCategory.HARM_CATEGORY_HARASSMENT: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,  # ハラスメントを含むコンテンツ
    HarmCategory.HARM_CATEGORY_HATE_SPEECH: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,  # 悪意のある表現やコンテンツ
    HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,  # 性的描写が露骨なコンテンツ
    HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,  # 危険なコンテンツ
}

response = model.generate_content(
    ["""浅草のオススメスポットは?"""],
    generation_config=generation_config,
    safety_settings=safety_settings,
    stream=False,
)

print(response.text)

コード実行結果 例

浅草は、東京で最も古いエリアの一つで、歴史的な建造物、伝統的な文化、活気に満ちた雰囲気を楽しむことができます。おすすめのスポットはたくさんありますが、いくつか例を挙げますね!

定番スポット:

  • 浅草寺: 東京最古の寺院で、雷門、五重塔など見どころ満載です。境内でのおみくじやお守りの購入もおすすめです。
  • 仲見世通り: 浅草寺へ向かう参道にある、伝統的なお土産屋さんや食べ歩きのお店が立ち並ぶ賑やかな通りです。
  • 東京スカイツリー: 浅草から少し離れますが、展望台から浅草の街並みを一望できます。

ちょっとディープな浅草:

  • 浅草演芸ホール: 昔懐かしい寄席を楽しむことができます。
  • 浅草花やしき: レトロな遊園地で、大人も子供も楽しめます。
  • 隅田川: 舟遊びや屋形船で、風情ある景色を満喫できます。
  • 浅草文化観光センター: 浅草の歴史や文化について学べます。

美味しいもの:

  • 人形焼き: 浅草寺周辺には、様々な種類の人形焼きのお店があります。
  • 天ぷら: 揚げたての天ぷらは格別です。
  • 蕎麦: 老舗の蕎麦屋で、伝統的な蕎麦の味を堪能できます。
  • もんじゃ焼き: 熱々の鉄板で自分で焼きながら食べる、浅草名物です。

その他:

  • 浅草ROX: 映画館やレストランなどが入った複合施設です。
  • 浅草ビューホテル: 浅草寺やスカイツリーを一望できるホテルです。

時期によっておすすめも変わります:

  • 春: 桜の季節には、隅田川沿いが美しく、お花見を楽しむことができます。
  • 夏: 隅田川花火大会は、夏の風物詩です。
  • 秋: 紅葉シーズンには、浅草寺周辺が美しく色づきます。
  • 冬: 浅草寺では、年末年始のイベントが開催されます。

さらに、あなたの興味に合わせておすすめを提案できます。

  • 歴史に興味があるなら: 浅草寺、浅草文化観光センター、隅田川
  • 伝統芸能に興味があるなら: 浅草演芸ホール
  • ショッピングに興味があるなら: 仲見世通り、浅草ROX
  • グルメに興味があるなら: 人形焼き、天ぷら、蕎麦、もんじゃ焼き

ぜひ、あなたの興味に合わせて浅草を満喫してください!

SafetySettings の定義

Google Gemini APIのSafety Settingsは、AIモデルの出力を制御し、不適切なコンテンツを制限するための機能です。

本機能は安全で適切なAIコンテンツを生成する上で重要で、他のLLM APIにはまだ本格的に実装されていない機能です。

Safety Settingsでは、以下のカテゴリーに対して設定が可能です

指定できるカテゴリー一覧

列挙型
HARM_CATEGORY_UNSPECIFIED カテゴリが指定されていない
HARM_CATEGORY_HARASSMENT ハラスメントコンテンツ
HARM_CATEGORY_HATE_SPEECH 悪意のある表現やコンテンツ
HARM_CATEGORY_SEXUALLY_EXPLICIT 性的描写が露骨なコンテンツ
HARM_CATEGORY_DANGEROUS_CONTENT 危険なコンテンツ

指定できるフィルタリングレベル一覧

各カテゴリーに対して、以下の4段階のフィルタリングレベルを設定できます

  • HIGH(高)
  • MEDIUM(中)
  • LOW(低)
  • NEGLIGIBLE(無視できる程度)

APIは、コンテンツの危険性の確率に基づいてブロックを行います。

実際の値は以下のとおりです。

しきい値 概要 詳細
BLOCK_NONE ブロックなし 安全でないコンテンツが表示される可能性にかかわらず常に表示
BLOCK_ONLY_HIGH 少量をブロック 安全でないコンテンツである可能性が高い場合にブロック
BLOCK_MEDIUM_AND_ABOVE 一部をブロック 安全でないコンテンツが発生する可能性が中程度または高い場合にブロック
BLOCK_LOW_AND_ABOVE ほとんどをブロック 安全でないコンテンツが発生する可能性が低い、中程度、高い場合はブロック
HARM_BLOCK_THRESHOLD_UNSPECIFIED なし しきい値が指定されていない。デフォルトのしきい値を使用してブロック

当然ですが、一部の重大な危害(児童の安全を脅かすコンテンツなど)は常にブロックされ、調整はできません。SafetySettingをゆるくしても最低限の保護はかかるということですね。

ストリーミングで受信する方法

さきほどは、1回で結果を取得する方法をみましたが、今後はストリーミングで受信する方法をみてみましょう。

以下のように stream=True にするだけでストリーミング受信が可能です。


response = model.generate_content(
    ["""こんにちは"""],
    generation_config=generation_config,
    safety_settings=safety_settings,
    stream=True,
)
for chunk in response:
    print(chunk)

逐次ジェネレーター経由で受け取ったchunk は以下のような構造をしています

GenerateContentResponse(
    done=True,
    iterator=None,
    result=protos.GenerateContentResponse({
      "candidates": [
        {
          "content": {
            "parts": [
              {
                "text": "\u3053\u3093\u306b\u3061\u306f"
              }
            ],
            "role": "model"
          },
          "finish_reason": "STOP",
          "index": 0
        }
      ],
      "usage_metadata": {
        "prompt_token_count": 2,
        "candidates_token_count": 1,
        "total_token_count": 3
      }
    }),
)

この構造を踏まえて、chunkにある各種プロパティを取得してみましょう。

import google.generativeai as genai
from google.generativeai.types import HarmCategory, HarmBlockThreshold

API_KEY = "取得したAPIキー"
genai.configure(api_key=API_KEY)

model_id = "gemini-1.5-flash-001"  # input 0.35/MTokens - output 1.05/MTokens

# モデル情報の初期化
model = genai.GenerativeModel(
    model_id,
)

# 生成AIのパラメータ設定
generation_config = {
    "max_output_tokens": 8192,
    "temperature": 1,
}
safety_settings = {
    HarmCategory.HARM_CATEGORY_HARASSMENT: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,  # ハラスメントを含むコンテンツ
    HarmCategory.HARM_CATEGORY_HATE_SPEECH: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,  # 悪意のある表現やコンテンツ
    HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,  # 性的描写が露骨なコンテンツ
    HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,  # 危険なコンテンツ
}

response = model.generate_content(
    ["""こんにちは"""],
    generation_config=generation_config,
    safety_settings=safety_settings,
    stream=True,
)
for chunk in response:

    candidates = chunk.candidates
    usage_metadata = chunk.usage_metadata

    for candidate in candidates:
        content = candidate.content
        content_parts = content.parts
        role = content.role
        finish_reason = candidate.finish_reason
        index = candidate.index
        safety_ratings = candidate.safety_ratings

        for part in content_parts:
            text = part.text

            # 各プロパティを変数に格納
            candidate_content_text = text
            candidate_content_role = role
            candidate_finish_reason = finish_reason
            candidate_index = index
            candidate_safety_ratings = safety_ratings
            usage_prompt_token_count = usage_metadata.prompt_token_count
            usage_candidates_token_count = usage_metadata.candidates_token_count
            usage_total_token_count = usage_metadata.total_token_count

            # 変数の出力
            print(f"Text: {candidate_content_text}")
            print(f"Role: {candidate_content_role}")
            print(f"Finish Reason: {candidate_finish_reason}")
            print(f"Index: {candidate_index}")
            print(f"Safety Ratings: {candidate_safety_ratings}")
            print(f"Prompt Token Count: {usage_prompt_token_count}")
            print(f"Candidates Token Count: {usage_candidates_token_count}")
            print(f"Total Token Count: {usage_total_token_count}")
            print("----------")

上記コードを実行すると、以下のような出力結果が得られます。

Text: こんにちは
Role: model
Finish Reason: 1
Index: 0
Safety Ratings: []
Prompt Token Count: 2
Candidates Token Count: 1
Total Token Count: 3
----------
Text: ! 何かお手伝いできますか? 

Role: model
Finish Reason: 1
Index: 0
Safety Ratings: [category: HARM_CATEGORY_SEXUALLY_EXPLICIT
probability: NEGLIGIBLE
, category: HARM_CATEGORY_HATE_SPEECH
probability: NEGLIGIBLE
, category: HARM_CATEGORY_HARASSMENT
probability: NEGLIGIBLE
, category: HARM_CATEGORY_DANGEROUS_CONTENT
probability: NEGLIGIBLE
]
Prompt Token Count: 2
Candidates Token Count: 10
Total Token Count: 12
----------

その他の特徴

JSON形式レスポンスに対応

https://ai.google.dev/gemini-api/docs/api-overview?hl=ja#json

ファインチューニング

https://ai.google.dev/gemini-api/docs/model-tuning?hl=ja

コンテキストキャッシュ

https://ai.google.dev/gemini-api/docs/caching?hl=ja&lang=python

まとめ

いかがでしたでしょうか。Google の最新 LLM API である Gemini 1.5 についてその概要やソースコード実装方法についてみてきました。

(株)Qualiteg では Gemini API を利用した本格的なチャットボットや LLMサービスを超短納期で構築できる SDK,ツールキット「ChatStream」や、関連コンサルティングを提供しています。

商用LLMアプリケーション、サービス構築をご検討の折は、どうぞお気軽にこちらのお問い合わせフォームまでご連絡くださいませ。

LLMスポットコンサルご好評です

また、LLMサービス開発、市場環境、GPUテクノロジーなどビジネス面・技術面について1時間からカジュアルに利用できるスポットコンサルも実施しておりますのでご活用くださいませ。

(繁忙期、ご相談内容によっては、お受けできない場合がございますので、あらかじめご了承ください)

Read more

日本語対応 LLMランキング2026 ~ベンチマーク分析レポート~(7月10日版)

日本語対応 LLMランキング2026 ~ベンチマーク分析レポート~(7月10日版)

はじめに 本レポートは、Nejumi Leaderboard 4のベンチマークデータ(2026/7/10版)に基づいて、日本語対応LLMの性能を総合的に分析したものです。 前回は 2026/3/6 版の分析レポート を公開しましたが、 約4か月ぶりとなる今回も、上位勢の顔ぶれが大きく入れ替わる激動の回となりました! (定期的に最新LLMランキングを更新してまいります。当社のX(旧Twitter)をフォローいただくことで更新情報を受け取り可能です) Nejumi Leaderboard 4は、日本語タスクにおけるLLMの性能を多角的に評価する信頼性の高いベンチマークとして知られています。汎用的言語性能(GLP)とアラインメント(ALT)の2軸で構成され、翻訳・要約・推論・コーディングから毒性・バイアス・真実性まで、幅広い観点をカバーしているのが特徴です。 本分析では、商用APIモデルとオープンモデルの両方を対象に、それぞれの特徴や傾向を詳しく見ていきます。まず、今回の3大トピックを先にご紹介します。 * Claude Opus 4.8がリーダーボード史上初の総合スコア0.8

By Qualiteg プロダクト開発部
Claude Fable5 完全ガイド — 公式ドキュメントから読み解くモデル仕様とClaude Code運用ポイント

Claude Fable5 完全ガイド — 公式ドキュメントから読み解くモデル仕様とClaude Code運用ポイント

こんにちは! 2026年6月に登場した Claude Fable 5 は、公開直後の輸出規制による一時停止、グローバル再展開、そしてサブスクリプション枠からの離脱と、わずか1か月でめまぐるしい動きを見せています。 当ブログでもその時々の状況を追ってきました。 まず全体像は ついに一般公開、Claude Mythos 5 / Fable 5 を実務視点で読み解く で、公開直後の停止騒動は 公開から3日で停止──Fable 5/Mythos 5 をめぐる米政府指令が示した、AI の新しい可用性リスク で、料金と今後の見通しは Claude Fable 5 はこれからどうなる? 経緯・コスト・今後の見通し で扱っています。 本記事は、それらを踏まえた「実務で使うための決定版ガイド」です。 とくに 2026年7月12日(日本時間7月13日)を境にサブスクリプション枠から外れ、使用クレジットを有効化しないと使えなくなる (この期限は当初2026年7月7日とされていましたが、のちに5日間延長されて7月12日になりました。

By Qualiteg プロダクト開発部
AI時代のデータ漏洩防止の要諦とテクノロジー:第2回 従来型DLPを超えて、AI-DLPが解決すべき本質的課題

AI時代のデータ漏洩防止の要諦とテクノロジー:第2回 従来型DLPを超えて、AI-DLPが解決すべき本質的課題

こんにちは! 前回の記事では、AI時代のデータ漏洩防止における技術的な基礎として、HTTPSインターセプトの仕組みと限界について詳しく解説しました。プロキシサーバーによるSSL/TLS通信の復号化、中間CA証明書の運用、そして証明書ピンニングという技術的制約まで、企業がWeb通信を監視する際の技術的な現実を明らかにしました。 しかし、これらのプロキシ技術は、実は既存のDLP製品でも広く採用されている一般的な手法です。メール監視、ファイル転送の制御、Webアクセスの監査など、従来型のデータ漏洩防止においても、HTTPSインターセプトは中核的な役割を果たしてきました。 では、なぜAI時代において新たにDLPを考え直す必要があるのでしょうか。 前回にひきつづき、従来型DLPでは対応できないAI固有の課題と、AI-DLPとして新たに考慮すべき要素に焦点を当て、より本質的な議論を展開していきます。 1. AI時代が要求する新たなDLP要件 従来のDLP製品は、クレジットカード番号や社会保障番号といった定型的なパターンの検出において優れた実績を持っています。これらの技術は今後も重要な

By Qualiteg プロダクト開発部, Qualiteg コンサルティング
Claude Fable 5はこれからどうなる? 経緯・コスト・今後の見通しをファクトベースで整理する

Claude Fable 5はこれからどうなる? 経緯・コスト・今後の見通しをファクトベースで整理する

こんにちは! 2026年7月2日(日本時間)、日本からもClaude Fable 5が再び利用できるようになりました。 2026年6月に大きな注目を集めて登場し、わずか3日で米政府の指令により停止、そして7月1日(米国時間)に復活したAnthropicの最上位モデル「Claude Fable 5」。 復活と同時に 「サブスクで使えるのは7月7日まで」 という条件が付いたことで、利用者の間ではコストへの懸念の声も見られます。 本記事では、憶測と事実を切り分けながら、 (1)これまでの経緯、 (2)確定している料金体系、 (3)実際のコスト試算、 (4)今後の見通し、 の4点を整理します。確定情報(ファクト)と筆者の推測は明確に区別して書きます。 ※本記事の日付は、特記のない限りAnthropicの発表に基づく米国時間を基準としています。 なお当ブログでは、Fable 5 / Mythos 5についてリリース直後の技術解説、米政府指令による停止が示した可用性リスクの考察、Fable 5の安全分類器がClaude Code上で実際にどう振る舞ったかの体験記を公開してきました。

By Qualiteg コンサルティング