🌉

Google Colabから無料で使えるようになったGeminiはどこまで使えるのか

に公開

はじめに

Google ColabですべてのユーザがGeminiモデルをAPIキー不要で使えるようになりました。

All Colab users now get access to Gemini and Gemma models via Colab Python library at no cost

これまではPro/Pro+ユーザーのみに提供されていた機能が、無料ユーザーにも利用可能になったことで、APIキー不要でLLMを活用できる環境が整いました。

本記事では、実際にGoogle Colab上でGeminiを使用した検証結果をもとに、利用可能な機能と制約をまとめした。

できること・できないこと

Google ColabのGeminiは、OpenAI互換APIとして実装されたModel Proxy Service経由で提供されています。検証の結果、一部に制約があることが確認されました。

利用可能な主要機能

  • 基本的なテキスト生成とストリーミング出力
  • Temperature調整による出力の多様性制御
  • Structured Outputs方式による構造化データ取得
  • 会話履歴管理
  • 非同期処理

利用できない機能

  • Tool Calling(カスタムツールの呼び出し)
  • MCP統合(Tool Callingに依存)

基本的な使い方

Google Colabでは google.colab.ai を通じてGeminiにアクセスできます。

シンプルなテキスト生成

from google.colab import ai

response = ai.generate_text("What is the capital of France?")
print(response)

利用可能なモデル

# モデル一覧の表示
ai.list_models()

執筆時点(2025年11月)では、以下のモデルが利用できます。

  • gemini-2.5-flash
  • gemini-2.5-flash-lite

Pro/Pro+ユーザーはより多くのモデルと高い使用量制限にアクセスできます。

ストリーミング出力

stream = ai.generate_text("Tell me a short story.", stream=True)
for text in stream:
    print(text, end='')

google.colab.aiの内部実装

google.colab.ai の実装を把握することで、ほかのAIフレームワークなどを利用するための手がかりとなります。

OpenAI互換プロキシとしての実装

google.colab.aiは内部でOpenAI SDKを使用しています。

from openai import OpenAI

def generate_text(prompt: str, model_name: str = 'google/gemini-2.5-flash', ...):
    # Model Proxy認証情報を取得
    model_proxy_token = _get_model_proxy_token()

    # OpenAIクライアントを作成
    client = OpenAI(
        base_url=f'{_get_model_proxy_host()}/models/openapi',
        api_key=model_proxy_token,
    )

    # OpenAI Chat Completions APIを呼び出し
    response = client.chat.completions.create(
        model=model_name,
        messages=[{'role': 'user', 'content': prompt}],
        stream=stream,
    )

この実装により、GeminiモデルがOpenAI Chat Completions API互換のエンドポイント経由で提供されていることがわかります。

Model Proxy Serviceのアーキテクチャ

Google Colabでは、以下の環境変数が自動的に設定されます。

  • MODEL_PROXY_HOST: Model Proxy Serviceのエンドポイント(Colab環境で自動設定)
  • MODEL_PROXY_API_KEY: 認証トークン(google.colab.aiのインポート時に自動設定)

データフローは以下のようになります。

ユーザーコード

google.colab.ai.generate_text()

OpenAI Client (base_url={MODEL_PROXY_HOST}/models/openapi)

Model Proxy Service (OpenAI互換API)

Gemini/Gemma バックエンド

AIフレームワークとの統合

OpenAI互換APIとして実装されていることを活用し、各種AIフレームワークから直接Geminiモデルにアクセスできるcolab-ai-bridgeパッケージを作成しました。

colab-ai-bridgeは以下のAIフレームワークに対応しています。

  • Pydantic AI: 型安全な構造化出力とバリデーション
  • LangChain: エージェントとチェーン構築
  • DSPy: プロンプト最適化とメトリクス評価

本記事では、これらの中からPydantic AIに焦点を当てて解説します。

応用例:Pydantic AIとの統合

Pydantic AIを使用することで、型安全な構造化出力や依存性注入などの高度な機能を利用できます。

セットアップ

!pip install -q --no-warn-conflicts "colab-ai-bridge[pydantic-ai] @ git+https://github.com/drillan/colab-ai-bridge"

基本的な使用例

from colab_ai_bridge.pydantic_ai import ColabPydanticAIModel
from pydantic_ai import Agent

# モデルの作成(セットアップは自動実行される)
model = ColabPydanticAIModel()
agent = Agent(model)

result = agent.run_sync("フランスの首都は?")
print(result.output)

colab-ai-bridgeパッケージをインポートすると、以下の処理が自動的に実行されます。

  • google.colab.aiの初期化
  • イベントループのネスト許可(nest_asyncio.apply()

構造化出力

OpenAI互換APIには、Tool Calling方式とStructured Outputs方式の2つの構造化出力手法があります。Google Colab Model Proxy ServiceではTool Calling方式は使用できませんが、Structured Outputs方式をサポートしており、Pydanticモデルを使用した型安全な出力が可能です。

from pydantic import BaseModel

class CityInfo(BaseModel):
    name: str
    country: str
    population: int
    famous_landmarks: list[str]

# モデルの作成
model = ColabPydanticAIModel("google/gemini-2.5-flash")
agent = Agent(model, output_type=CityInfo)

# 構造化された出力を取得
result = agent.run_sync("東京の情報を教えてください")
print(f"都市名: {result.output.name}")
print(f"国: {result.output.country}")
print(f"人口: {result.output.population:,}人")
print(f"有名な観光地: {', '.join(result.output.famous_landmarks)}")

レスポンスの型安全性が保証され、実行時のバリデーションも自動的に行われます。

その他の高度な機能

Pydantic AIを使用することで、Temperature調整、Dependency Injection、Logfire統合などの高度な機能も利用できます。

Temperature調整

モデルの出力の多様性を制御できます。

# 決定的な出力(同じプロンプトで一貫した結果)
model_low = ColabPydanticAIModel(
    "google/gemini-2.5-flash",
    settings={'temperature': 0.0}
)

# 創造的な出力(毎回異なる結果)
model_high = ColabPydanticAIModel(
    "google/gemini-2.5-flash",
    settings={'temperature': 1.5}
)

Dependency Injection

from dataclasses import dataclass
from pydantic_ai import RunContext
from datetime import datetime

@dataclass
class UserContext:
    user_name: str
    user_role: str
    timestamp: datetime

agent = Agent(model, deps_type=UserContext)

@agent.system_prompt
def dynamic_prompt(ctx: RunContext[UserContext]) -> str:
    return f"""
    あなたは親切なアシスタントです。
    現在のユーザー: {ctx.deps.user_name}
    役割: {ctx.deps.user_role}
    時刻: {ctx.deps.timestamp.strftime('%Y-%m-%d %H:%M')}
    """

# 実行時に依存性を渡す
deps = UserContext(
    user_name="太郎",
    user_role="premium",
    timestamp=datetime.now()
)
result = agent.run_sync("おすすめの機能を教えてください", deps=deps)

Logfire統合

import logfire

# セットアップ(Colab SecretsにLOGFIRE_TOKENを設定)
logfire.configure()
logfire.instrument_pydantic_ai()

# 以降、すべてのリクエストが自動的に記録される
agent = Agent(model)
result = agent.run_sync("質問内容")

Logfireダッシュボードでは、各ステップのレイテンシ、トークン使用量、メッセージ履歴、パフォーマンスメトリクスなどを確認できます。

まとめ

Google ColabのGeminiがModel Proxy ServiceがOpenAI互換APIとして実装されていることで、Pydantic AI、LangChain、DSPyなどの既存AIフレームワークのモデルとして利用できます。

これにより、各フレームワークが提供する機能の一部を活用できます。
例えば、Pydantic AIの型安全な構造化出力とバリデーション、LangChainのエージェント構築機能、DSPyのプロンプト最適化とメトリクス評価などです。

ユースケースとして、学習、プロトタイピング、データ分析、ハンズオンなどの用途で幅広く活用できそうです。

参考リンク

Discussion