コンテンツに移動
AI & 機械学習

Gradio で生成 AI エージェントのアプリケーションを迅速に構築する

2023年10月25日
Google Cloud Japan Team

※この投稿は米国時間 2023 年 10 月 17 日に、Google Cloud blog に投稿されたものの抄訳です。

ローコードまたはノーコードのアプリケーション開発という新時代の到来を受け、アプリケーションの拡張や、機能強化、モダナイゼーションに至るまで、AI を使った加速化が進んでいます。テクノロジーの動向は絶えず変化しており、顧客とのつながりやエンゲージメントの促進から、分析やエクスペリエンスの最適化および強化まで、新たな可能性や機会が広がっています。そのようななか、先進的企業は新しいアプリケーションをいち早く開発しようと躍起になっています。企業の狙いは、生成 AI テクノロジーを活用する、競争力を維持するなどさまざまですが、アプリケーション開発において AI を活用することは、現在の市場で成功するための条件として急速に広がっています。

このブログ投稿では、オープンソースのフロントエンド フレームワークである Gradio を Vertex AI Conversation と組み合わせて使用する方法を説明します。Vertex AI Conversation を使えば、ML のスキルが限られているデベロッパーでも対話型 AI テクノロジーを利用して、生成 AI の概念実証(PoC)アプリケーションをシームレスに開発できます。これらの 2 つのツールを活用することで、お客様をあっと言わせるような魅力的な生成 AI エクスペリエンスの PoC を簡単にデプロイし、開発チームに発想のヒントを与えられます。

生成 AI を使った chatbot は、自社の非構造化データから学習して、状況に即した説得力のある会話を実現します。一方、Gradio のフロントエンド フレームワークは直感的なインターフェースを特徴としており、インタラクティブなカスタム アプリケーションを構築して、ML モデルを簡単に共有し、デモを行うことができます。

Vertex AI Conversation

Gradio フレームワークの主な機能は、誰でも使いやすいウェブ インターフェースでデモ用のウェブアプリを既存のモデルから作成し、ユーザーからすぐにフィードバックをもらえるようにすることです。たとえば、Vertex AI Conversation 上に構築した生成 AI エージェントを Gradio アプリに組み込めば、主要機能のデモを行い、個々のニーズやユーザーのフィードバックに応じて微調整することが可能になります。プログラミングと自社データを使うことで、chatbot の会話にきめ細かなパーソナライゼーションや背景情報を盛り込んで、迅速にデモを展開できます。

Gradio

生成 AI の未曽有のブームを背景に、ML モデル、API、データ サイエンスのワークフローを検証するための使いやすいシームレスなインターフェースが求められるようになってきています。chatbot は大規模言語モデル(LLM)に基づく人気のアプリケーションです。LLM とのやりとりは自然で直感的であるため、音声起動型の chatbot や音声 bot などの会話インターフェースに注目が集まっています。特に、入力するよりも話しかけるほうがずっと楽であるという理由から、便利な音声 bot の人気が高まっています。

Gradio はオープンソースの Python フレームワークです。Gradio を活用すれば、chatbot や音声起動型の bot、さらには本格的なウェブ アプリケーションなどのインターフェースを簡単に構築して、ML モデルや API、データ サイエンス ワークフローを顧客や共同開発者に共有できます。Gradio なら Python で数行のコードを記述するだけで、このようなデモを簡単に構築して共有することが可能です。Gradio について詳しくはこちらをご覧ください。

Vertex AI Conversation と Gradio アプリケーションの統合

Vertex AI Conversation のデータ取り込みツールは、コンテンツを解析し、LLM を使って仮想エージェントを生成します。次に、エージェントは、エンドユーザーの状況に合うパーソナライズされたやり取りを行うために組織のデータを使用して会話を生成します。Gradio フレームワークを使えば、ウェブブラウザからアプリをシームレスにデプロイして、デモンストレーションを簡単に行えます。

仕組み

Gradio を使うと、各種データベースに基づいて質問に回答する chatbot を構築できます。そのためには、Vertex AI Conversation を使ってミドルウェアを構築し、ユーザーの入力処理とエージェントからのレスポンス生成を行います。エージェントは、社内ナレッジベースなどの文書データストアから質問への回答を検索します。

回答が見つかったら、エージェントはそれを要約して Gradio アプリのユーザーに表示します。情報源へのリンクも併せて表示して、ユーザーが詳細を参照できるようにすることもできます。

処理の流れは以下のとおりです。

  1. ユーザーが chatbot に質問します。
  2. ミドルウェアが Dialogflow API を使って、生成 AI エージェントに質問を送信します。
  3. 生成 AI エージェントが、データストアから回答を検索します。
  4. エージェントは見つかった回答を要約して、ソースへのリンクを渡します。
  5. ミドルウェアが Dialogflow AP を使って、要約とリンクを Gradio アプリに送信します。
  6. Gradio アプリがユーザーに要約とリンクを表示します。

以下のアーキテクチャ概要図は、コア機能のみの MVP(最小実装製品)の基本構成要素を示しています。

https://storage.googleapis.com/gweb-cloudblog-publish/images/Blog_GenAI_Gradio_-_Blog_2_HighLevel.max-2200x2200.jpg

この chatbot アーキテクチャは、以下のコンポーネントから構成されています。

  • バックエンド
    • 認証: ユーザーの ID を検証します。
    • ミドルウェア: すべてのリクエストおよびレスポンスを中間処理して、回答を生成します。
  • 回答生成: エンタープライズ データに基づき、仮想エージェントからのレスポンスを生成します。以下のコンポーネントとプロダクトが基盤となります。
    • Vertex AI
      • Vertex AI Conversation: 自然言語で理解、応答できる生成 AI エージェントを作成します。
      • Dialogflow CX: Dialogflow で会話を処理します。
    • Cloud Storage: エンタープライズ データのストレージ
    • データストア: Vertex AI Conversation が自動生成するストレージ インデックス データ。エンタープライズ データをインデックス化して、Dialogflow からのクエリに対応できるようにします。
  • 音声入力: ユーザーの音声録音をテキストに変換し、回答生成コンポーネントに渡せる形式にします。
  • Gradio フロントエンド
    • chatbot: キーボード入力と音声入力両方のメッセージに対応する、音声起動型の chatbot。Gradio フレームワークを使用してインターフェースを作成します。
    • 音声録音: ユーザーが音声入力したメッセージを送信できるようにします。

ユーザー インターフェース

リリースされたアプリケーションのインターフェースは、以下のように表示されます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/2-bot.max-2200x2200.jpg

マイクからの録音(Record from microphone): 音声入力を受け付けます。
新しい会話を開始(Start a new conversation): チャットの履歴を消去して、新しい会話を始めます。
ソース(Source): レスポンスの情報源のリンクが表示されます(ユーザー マニュアルなど)。

GitHub リポジトリ genai-gradio-example で実装例をご覧いただけます。

このコードは、Vertex AI に Gradio のカスタム UI UX ポータルを組み合わせた実装例で、基本機能を紹介する PoC アプリケーションをすぐにデプロイできることがおわかりいただけます。次のステップとして、Vertex AI を使って、ユーザーを中心に据えた製品のアイデアを練ってみてはいかがでしょうか。Google にどうぞご相談ください

まとめ

この投稿では、Vertex AI Conversation を使って Gradio の会話インターフェースに生成 AI エージェントを組み込む方法を説明しました。この方法によって、生成 AI の PoC アプリケーションをすばやく構築し、生成 AI の活用方法について社内で議論を始めるためのきっかけ作りができます。Google は、皆様がすぐに構築を始められるよう、アプリケーションを含むアーキテクチャの概要やサンプルコードも提供しています。この投稿が、生成 AI を活用したアプリケーションの迅速な構築を望むデベロッパーの皆様のお役に立てば幸いです。生成 AI はまだ初期段階のテクノロジーですが、顧客とのつながり方から、エンゲージメント、サポートの方法まで、すでにさまざまな変化をもたらしています。このように急速に進化するテクノロジーにおいては、大胆に取り組んでいくことが吉を呼び込むことでしょう。

ー クラウド エンジニア Carolina Hernandez

ー クラウド エンジニア Pushpdeep Gupta

投稿先