コンテンツにスキップ

クイックスタート (ストリーミング / Python)

このクイックスタートでは、簡単なエージェントを作成し、ADKストリーミングを使用して、低遅延かつ双方向の音声・ビデオ通信を実現する方法を学びます。ADKのインストール、基本的な「Google Search」エージェントの設定、adk webツールを使ったエージェントの実行を試した後、ADKストリーミングとFastAPIを使用して簡単な非同期ウェブアプリを自作する方法を説明します。

注: このガイドは、Windows、Mac、Linux環境でのターミナル使用経験があることを前提としています。

音声/ビデオストリーミングでサポートされているモデル

ADKで音声/ビデオストリーミングを使用するには、Live APIをサポートするGeminiモデルを使用する必要があります。Gemini Live APIをサポートするモデルIDは、以下のドキュメントで確認できます。

1. 環境設定とADKのインストール

仮想環境の作成と有効化(推奨):

# 作成
python -m venv .venv
# 有効化 (新しいターミナルごと)
# macOS/Linux: source .venv/bin/activate
# Windows CMD: .venv\Scripts\activate.bat
# Windows PowerShell: .venv\Scripts\Activate.ps1

ADKのインストール:

pip install google-adk

2. プロジェクト構造

以下のフォルダ構造で空のファイルを作成します。

adk-streaming/  # プロジェクトフォルダ
└── app/ # ウェブアプリフォルダ
    ├── .env # Gemini APIキー
    └── google_search_agent/ # エージェントフォルダ
        ├── __init__.py # Pythonパッケージ
        └── agent.py # エージェントの定義

agent.py

以下のコードブロックを agent.py にコピー&ペーストしてください。

modelについては、前述のモデルのセクションで説明したように、モデルIDを再確認してください。

from google.adk.agents import Agent
from google.adk.tools import google_search  # ツールをインポート

root_agent = Agent(
   # エージェントの一意な名前
   name="basic_search_agent",
   # エージェントが使用する大規模言語モデル (LLM)
   model="gemini-2.0-flash-exp",
   # model="gemini-2.0-flash-live-001",  # 2025年2月時点の新しいストリーミングモデルバージョン
   # エージェントの目的の簡単な説明
   description="Google Searchを使って質問に答えるエージェント",
   # エージェントの振る舞いを設定するための指示
   instruction="あなたは熟練の研究者です。常に事実に忠実に行動してください。",
   # Google検索によるグラウンディングを行うためにgoogle_searchツールを追加
   tools=[google_search]
)

注: テキストと音声/ビデオの両方の入力を有効にするには、モデルがgenerateContent(テキスト用)とbidiGenerateContentメソッドをサポートしている必要があります。これらの機能については、モデル一覧のドキュメントを参照して確認してください。このクイックスタートでは、デモンストレーション目的でgemini-2.0-flash-expモデルを利用します。

agent.pyには、すべてのエージェントのロジックが保存され、root_agentを定義する必要があります。

Google検索によるグラウンディング機能がいかに簡単に統合できるかにお気づきでしょうか。Agentクラスとgoogle_searchツールがLLMとの複雑なやり取りや検索APIによるグラウンディングを処理してくれるため、あなたはエージェントの目的振る舞いに集中できます。

intro_components.png

以下のコードブロックを __init__.py ファイルにコピー&ペーストしてください。

__init__.py
from . import agent

3. プラットフォームの設定

エージェントを実行するために、Google AI StudioまたはGoogle Cloud Vertex AIのいずれかのプラットフォームを選択します。

  1. Google AI StudioでAPIキーを取得します。
  2. (app/内にある) .env ファイルを開き、以下のコードをコピー&ペーストします。

    .env
    GOOGLE_GENAI_USE_VERTEXAI=FALSE
    GOOGLE_API_KEY=ここに実際のAPIキーを貼り付け
    
  3. ここに実際のAPIキーを貼り付け の部分を、実際のAPIキーに置き換えてください。

  1. 既存のGoogle Cloudアカウントとプロジェクトが必要です。
  2. (app/内にある) .env ファイルを開きます。以下のコードをコピー&ペーストし、プロジェクトIDとロケーションを更新してください。

    .env
    GOOGLE_GENAI_USE_VERTEXAI=TRUE
    GOOGLE_CLOUD_PROJECT=ここに実際のプロジェクトIDを貼り付け
    GOOGLE_CLOUD_LOCATION=us-central1
    

4. adk webでエージェントを試す

これでエージェントを試す準備ができました。次のコマンドを実行して開発用UIを起動します。まず、カレントディレクトリがappになっていることを確認してください。

cd app

また、後の音声・ビデオテストで必要になるため、以下のコマンドでSSL_CERT_FILE変数を設定します。

export SSL_CERT_FILE=$(python -m certifi)

次に、開発用UIを実行します。

adk web

Windowsユーザーへの注記

_make_subprocess_transport NotImplementedError が発生した場合は、代わりに adk web --no-reload の使用を検討してください。

提供されたURL(通常は http://localhost:8000 または http://127.0.0.1:8000)を直接ブラウザで開きます。この接続は完全にローカルマシン上で完結します。google_search_agentを選択してください。

テキストで試す

UIに以下のプロンプトを入力して試してみてください。

  • ニューヨークの天気は?
  • ニューヨークの時間は?
  • パリの天気は?
  • パリの時間は?

エージェントはgoogle_searchツールを使用して最新の情報を取得し、これらの質問に答えます。

音声とビデオで試す

音声で試すには、ウェブブラウザをリロードし、マイクボタンをクリックして音声入力を有効にし、同じ質問を音声で尋ねます。リアルタイムで答えが音声で返ってきます。

ビデオで試すには、ウェブブラウザをリロードし、カメラボタンをクリックしてビデオ入力を有効にし、「何が見える?」のような質問をします。エージェントはビデオ入力で見えるものを答えます。

ツールを停止する

コンソールでCtrl-Cを押してadk webを停止します。

ADKストリーミングに関する注記

Callback、LongRunningTool、ExampleTool、およびシェルエージェント(例:SequentialAgent)の機能は、ADKストリーミングの将来のバージョンでサポートされる予定です。

おめでとうございます! これでADKを使用して最初のストリーミングエージェントの作成と対話が正常に完了しました!

次のステップ: カスタムストリーミングアプリの構築

カスタム音声ストリーミングアプリのチュートリアルでは、ADKストリーミングとFastAPIで構築されたカスタム非同期ウェブアプリのサーバーとクライアントのコードを概説し、リアルタイムで双方向の音声・テキスト通信を可能にする方法を説明します。