Gemini API入門 — 5分で始めるAIアプリ開発
はじめに
生成AIの進化は留まるところを知りません。特にGoogleが提供する**Gemini(ジェミニ)**は、テキストだけでなく画像、音声、動画まで理解する「ネイティブマルチモーダル」なAIとして注目を集めています。
開発者にとって嬉しいのは、この強力なモデルをGemini APIを通じて簡単に自分のアプリケーションに組み込める点です。しかも、無料枠が非常に充実しており、個人の開発やプロトタイピングには最適な選択肢と言えます。
この記事では、Pythonを使ってGemini APIを叩き、実際にAIアプリを作るまでの手順を完全ガイドします。単なる「Hello World」だけでなく、チャットボットの構築や画像認識まで、実践的なスキルを身につけましょう。
Gemini APIの3つの強み
開発者がGeminiを選ぶべき理由は主に3つあります。
- 圧倒的なコストパフォーマンス: Gemini 2.0 Flashなどのモデルは、高性能でありながら非常に安価(または無料)で提供されています。
- マルチモーダル性能: テキストと画像を同時に渡して解析させるといったタスクが得意です。
- 巨大なコンテキストウィンドウ: 100万トークン以上の入力を扱えるため、本1冊分のテキストや長時間の動画を一度に処理できます。
準備編:環境構築
まずは開発環境を整えましょう。Python 3.9以上がインストールされている前提で進めます。
1. APIキーの取得
Gemini APIを使うにはGoogle AI StudioでAPIキーを取得する必要があります。
- Google AI Studioにアクセスし、Googleアカウントでログインします。
- 左サイドバーの「Get API Key」をクリックします。
- 「Create API Key in new project」を選択します。
- 生成されたAPIキーをコピーし、安全な場所に保管してください。
[!WARNING] APIキーはパスワードと同じです。GitHubなどの公開リポジトリには絶対にコミットしないでください。
2. プロジェクトのセットアップ
フォルダを作成し、仮想環境を用意します。これにより、他のプロジェクトとライブラリが競合するのを防げます。
# プロジェクトフォルダの作成
mkdir gemini-app
cd gemini-app
# 仮想環境の作成 (Windowsの場合は python -m venv venv)
python3 -m venv venv
# 仮想環境の有効化 (Windowsの場合は venv\Scripts\activate)
source venv/bin/activate
3. ライブラリのインストール
Google公式のPythonライブラリをインストールします。
pip install google-genai python-dotenv
google-genai: Gemini APIを扱うための公式SDKpython-dotenv: APIキーを環境変数として管理するためのライブラリ
実践編:コードを書いてみよう
環境変数の設定
プロジェクトルートに .env というファイルを作成し、先ほど取得したAPIキーを記述します。
GEMINI_API_KEY=your_api_key_here
1. 基本的なテキスト生成
まずは最もシンプルな、「質問を投げて回答を得る」スクリプトを作ってみましょう。basic.py というファイルを作成します。
import os
from dotenv import load_dotenv
from google import genai
from google.genai import types
# .envファイルを読み込む
load_dotenv()
client = genai.Client(api_key=os.getenv("GEMINI_API_KEY"))
def generate_text():
response = client.models.generate_content(
model="gemini-2.0-flash",
contents="AIを使ったWebアプリのアイデアを3つ提案してください。"
)
print(response.text)
if __name__ == "__main__":
generate_text()
これを実行すると、以下のような出力が得られます。
python basic.py
出力例:
- AIパーソナルスタイリスト: ユーザーの持っている服の写真をアップロードすると、その日の天気や予定に合わせて最適なコーディネートを提案してくれるアプリ。
- スマート議事録作成ツール: 会議の録音データをアップロードするだけで、発言者ごとのテキスト化、要約、次のアクションアイテムの抽出を自動で行うツール。
- 冷蔵庫の中身レシピ提案: 冷蔵庫に残っている食材を写真に撮ると、それらで作れるレシピを提案し、不足している調味料なども教えてくれるアプリ。
たった数行のコードで、ここまで具体的なアイデアを出してくれるのは驚きですね。
2. ストリーミングレスポンスの実装
長い文章を生成する場合、完了まで待つとユーザー体験が悪くなります。ChatGPTのように、生成された文字から順次表示する「ストリーミング」を実装してみましょう。
stream.pyを作成します。
# ... (インポートとクライアント設定は省略) ...
def stream_text():
response = client.models.generate_content_stream(
model="gemini-2.0-flash",
contents="Pythonの勉強方法について、初心者向けに2000文字程度で詳しく解説してください。"
)
print("回答生成中...", end="", flush=True)
for chunk in response:
print(chunk.text, end="", flush=True)
if __name__ == "__main__":
stream_text()
generate_content_stream メソッドを使うことで、AIが考えている最中でも文字がパラパラと表示されるようになります。
3. 画像認識(マルチモーダル)
Geminiの真骨頂はマルチモーダル機能です。画像を渡して、その内容について質問してみましょう。
画像ファイル(例: food.jpg)を用意し、以下のコードを実行します。
from PIL import Image
# ... (その他のインポート) ...
def analyze_image():
# 画像を開く
img = Image.open('food.jpg')
response = client.models.generate_content(
model="gemini-2.0-flash",
contents=[
"この料理のカロリーを推定し、栄養バランスについてアドバイスしてください。",
img
]
)
print(response.text)
このコードを実行すると、画像に写っている料理を認識し、カロリー推定や栄養アドバイスを返してくれます。これを応用すれば、「手書きメモのデジタル化」や「図表の解説」なども可能です。
応用編:チャットボットを作る
一問一答ではなく、文脈(コンテキスト)を理解するチャットボットを作るには、履歴を管理する必要があります。SDKの start_chat 機能を使うと簡単です。
chat.py を作成します。
def start_chat_session():
chat = client.chats.create(model="gemini-2.0-flash")
print("Gemini ChatBot (終了するには 'quit' と入力)")
print("-" * 50)
while True:
user_input = input("You: ")
if user_input.lower() in ['quit', 'exit']:
break
response = chat.send_message(user_input)
print(f"Gemini: {response.text}")
print("-" * 50)
if __name__ == "__main__":
start_chat_session()
このスクリプトを実行すると、対話形式でAIと会話できます。前の会話の内容を覚えているので、「さっきのアイデアをもう少し具体的にして」といった指示も通じます。
開発のヒントと注意点
モデルの選び方
Geminiにはいくつかのモデルバリエーションがあります。用途に合わせて使い分けましょう。
| モデル名 | 特徴 | おすすめの用途 |
|---|---|---|
| Gemini 2.0 Flash | 最速かつ低コスト。十分賢い。 | チャットボット、要約、データ抽出 |
| Gemini 1.5 Pro | 推論能力が高く、長文に強い。 | 複雑なタスク、コード生成、論文解析 |
| Gemini 1.5 Flash-8B | 超軽量・超高速。 | 非常に単純なタスクの大量処理 |
安全設定(Safety Settings)
AIは稀に不適切な発言をすることがあります。APIでは安全性フィルタの強度を調整できます。
from google.genai.types import SafetySetting, HarmCategory, HarmBlockThreshold
safety_settings = [
SafetySetting(
category=HarmCategory.HARM_CATEGORY_HARASSMENT,
threshold=HarmBlockThreshold.BLOCK_ONLY_HIGH
)
]
まとめ
この記事では、Gemini APIの取得から基本的な使い方、そしてチャットボットの実装までを解説しました。
Gemini APIは非常に使いやすく、かつパワフルです。アイデア次第で、
- 自分専用の学習アシスタント
- 会議の自動議事録システム
- 画像からWebサイトを生成するツール
など、無限の可能性があります。
次は、このスクリプトをWebアプリ化して、世界中に公開する方法を学びましょう。FastAPIを使ったWebアプリ構築については、FastAPIで作るAI Webアプリの完全テンプレートの記事で詳しく解説しています。
ぜひ、あなただけのAIアプリを作ってみてください!