Gemini API でマルチターンの会話(チャット)を構築する


Gemini API を使用すると、複数のターンにわたる自由形式の会話を構築できます。Vertex AI for Firebase SDK は、会話の状態を管理することでプロセスを簡素化するため、generateContentStream()generateContent() とは異なり、会話履歴を自分で保存する必要はありません。

始める前に

まだ Vertex AI for Firebase SDK のスタートガイドをまだ読んでいない場合は、これを行ってください。次のすべてが完了していることを確認します。

  • 新規または既存の Firebase プロジェクトを設定します(Blaze お支払いプランの使用や必要な API の有効化など)。

  • アプリを Firebase に接続する(アプリの登録、アプリへの Firebase 構成の追加など)。

  • SDK を追加し、アプリで Vertex AI サービスと生成モデルを初期化します。

アプリを Firebase に接続し、SDK を追加して、Vertex AI サービスと生成モデルを初期化したら、Gemini API を呼び出す準備は完了です。

チャット プロンプト リクエストを送信する

マルチターンの会話(チャットなど)を作成するには、まず startChat() を呼び出してチャットを初期化します。次に、sendMessageStream()(または sendMessage())を使用して新しいユーザー メッセージを送信します。これにより、メッセージとレスポンスもチャット履歴に追加されます。

会話のコンテンツに関連付けられた role には、次の 2 つのオプションがあります。

  • user: プロンプトを提供するロール。この値は sendMessageStream()(または sendMessage())の呼び出しのデフォルトであり、別のロールが渡されると、関数は例外をスローします。

  • model: レスポンスを提供するロール。このロールは、既存の historystartChat() を呼び出すときに使用できます。

レスポンスをストリーミングするか(sendMessageStream)、結果全体が生成されるまでレスポンスを待つか(sendMessage)を選択します。

ストリーミング

モデル生成の結果全体を待機するのではなく、ストリーミングを使用して部分的な結果を処理すると、より高速なインタラクションを実現できます。

次の例は、sendMessageStream() を使用してモデルからのレスポンスをストリーミングする方法を示しています。

ストリーミングなし

または、ストリーミングする代わりに結果全体を待機することもできます。結果は、モデルが生成プロセス全体を完了した後にのみ返されます。

次の例は、sendMessage() を使用して新しいユーザー メッセージを送信する方法を示しています。

ユースケースとアプリに適した Gemini モデルを選択し、必要に応じてロケーションを選択する方法をご確認ください。

Google アシスタントの機能

  • 長いプロンプトをモデルに送信する前にトークンをカウントする方法を学習する。
  • Cloud Storage for Firebase を設定し、Cloud Storage URL を使用してマルチモーダル リクエストにサイズの大きいファイルを含められるようにします。ファイルには、画像、PDF、動画、音声を含めることができます。
  • 権限のないクライアントによる Gemini API の不正使用から保護するための Firebase App Check の設定など、本番環境への準備を始めましょう。

Gemini API のその他の機能を試す

コンテンツ生成を制御する方法の詳細

Vertex AI Studio を使用して、プロンプトとモデル構成を試すこともできます。

Gemini モデルの詳細

さまざまなユースケースで利用可能なモデルと、その割り当てと料金について学習する。


Vertex AI for Firebase に関するフィードバックを送信する