Gemini を使用して AI データ探索エージェントを構築する

AI を活用したビジネス向けチャット インターフェースを構築 システム プログラミング インターフェースで、 説明します。組織のデータを分析して報告することは、 ビジネス運営の改善に欠かせない要素です。問題の発見、 分析、トレンド、結果の調査はすべて適切なデータがあれば可能ですが、 コーディングなしで同僚が適切なデータを発見 できるようにすることで 困難です。

SQL Talk 生成 AI テクノロジーを使用して、 ビジネスデータに関する質問に回答します。このプロジェクトでは、Gemini API と 関数呼び出し機能を使用して ビジネスデータの質問を SQL クエリと API 呼び出しに変換してから、 わかりやすい言葉に変換しますこのプロジェクトはプロジェクトとして データ エージェントを構築する際の出発点として、 使い回しコードを大量に記述しなくても、同僚が回答を得られるようにできます。

プロジェクトの概要と拡張方法(分析情報を含む)の動画 ご覧ください。 AI データ エージェント |Google AI で構築する。 それ以外の場合は、次のコマンドを使用してプロジェクトの拡張を開始できます。 できます。

SQL Talk プロジェクト アプリケーションのユーザー インターフェース

図 1. SQL Talk プロジェクト アプリケーションのユーザー インターフェース。

プロジェクトの設定

ここでは、SQL Talk プロジェクトのセットアップについて順を追って説明します。 開発とテストに集中できます一般的な手順は、SQL Talk を作成することです。 Google Cloud Shell エディタを設定します。 Google Cloud プロジェクト ID を取得し、 スクリプトを使用してプロジェクトの設定を構成します。ここでは、Google Chat の設定を Cloud Shell エディタを使用してプロジェクトを設定します。これにより、 プロジェクトを迅速かつ簡単に更新できます。

プロジェクトの Cloud Shell インスタンスを作成する

SQL Talk プロジェクトを設定するには、プロジェクトのリポジトリを Cloud Shell インスタンスです。このプロセスでは、仮想開発環境を設定する インスタンスを作成し、そのクローンを作成し、 その仮想環境にコード リポジトリを追加します。

SQL Talk 用の Cloud Shell インスタンスを作成するには:

このリンクをクリックすると、Google Cloud Shell エディタ インスタンスがセットアップされ、 SQL Talk のリポジトリを インスタンスに追加します

SQL Talk プロジェクト コードが表示された Google Cloud Shell エディタ

図 2. Google Cloud Shell エディタにクローンが作成された SQL Talk プロジェクト 開発環境です。

Cloud プロジェクト ID を取得する

SQL Talk プロジェクトは、Google Cloud プロジェクト ID を使用して Google Cloud に接続します。 幅広いサービスを提供しています。プロジェクト ID は アプリケーションがこれらのサービスに接続できるようにする Cloud Shell エディタ。

Cloud Shell エディタをプロジェクト ID に接続するには:

  1. Google Cloud し、必要に応じてログインします。
  2. 既存の Cloud プロジェクトを選択します。または 新しいものを作成します
  3. プロジェクトの Cloud プロジェクト ID をメモしておきます。
  4. エディタ インスタンスをプロジェクトに接続し、プロジェクトを構成します。 Cloud Shell エディタ ウィンドウで、ターミナルパネルで次のコマンドを入力します。

    gcloud config set project YOUR_PROJECT_ID
    
で確認できます。

SQL Talk プロジェクトを構成する

SQL Talk プロジェクトは、次のような Google Cloud サービスを使用してプロジェクトを実行します。 BigQuery データベース サービスと Gemini モデルに接続するための Vertex AI API。 SQL Talk プロジェクトには、プロジェクトを構成する setup.sh スクリプトが含まれています。 実行され、デフォルト バージョンの VM が起動します。 できます。

プロジェクトの Cloud Shell エディタ インスタンスを構成して実行するには:

  1. Cloud Shell エディタ ウィンドウのターミナル パネルで、Cloud Shell エディタの Shell SQL Talk(/sql-talk-app)のプロジェクト ディレクトリ:

    cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
    
  2. ターミナルパネルで、次のコマンドを入力します。

    bash setup.sh
    

設定スクリプトが正常に完了すると、次のようなメッセージが表示されます。 Cloud Shell エディタのターミナル ウィンドウで次のように入力します。このメッセージ セットアップ プロセスが成功し、SQL Talk アプリケーションが正常になったことを示します。 実行中:

You can now view your Streamlit app in your browser.
Network URL: http://##.##.##.##:8080
External URL: http://##.##.##.##:8080

プロジェクトをテストする

SQL Talk プロジェクトの設定が完了したら、 アプリケーションが期待どおりに機能していることを確認します。設定スクリプト は、実行時にアプリケーションを自動的に起動します。また、再起動すると、 アプリケーションを作成します。

SQL Talk アプリケーションを実行するには:

  1. Cloud Shell エディタがアイドル状態で接続が切断されている場合は、 Cloud プロジェクト ID に再接続します。

    gcloud config set project YOUR_PROJECT_ID
    
  2. Cloud Shell エディタ ウィンドウのターミナル パネルで、Cloud Shell エディタの Shell SQL Talk プロジェクト ディレクトリです。

    cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
    
  3. ターミナルパネルで次のコマンドを入力します。

    ~/miniforge/bin/streamlit run app.py --server.enableCORS=false \
        --server.enableXsrfProtection=false --server.port 8080
    
  4. SQL Talk アプリケーションを表示します。Cloud Shell エディタの右上では [ウェブでプレビュー] ボタンをクリックし、 ポート 8080 でプレビュー

[ウェブでプレビュー] ボタンがハイライト表示されている Cloud Shell エディタのヘッダー

SQL Talk アプリケーションの更新を表示するには:

  • SQL Talk ウェブ アプリケーションのウェブ プレビューで、ブラウザを再読み込みするか、 アクセスできます。

SQL Talk アプリケーションを停止するには:

  • Cloud Shell エディタ ウィンドウのターミナル パネルで、Ctrl+C キーを押します。

アプリケーションを変更する

SQL Talk アプリケーションの動作を変更して機能を追加できます。 アプリケーションの Python コードを変更します。このセクションでは、 SQL Talk アプリケーションに新しい関数呼び出しを追加します。

Gemini API の関数呼び出し Feature では、特定の構文を使用して、Generative AI Studio で使用する関数を モデルを使用して学習します。この構文は、構成に 実際の API 呼び出しの構文と完全に一致している必要があります。代わりに Function を 生成モデルに特定のデータ入力または特定のデータ入力の提供を強制する特徴量の呼び出し API 呼び出し構文に準拠したパラメータを作成し、それらのパラメータを アプリケーション コード内で実際の API 呼び出しを実行します。

この実装例では、関数呼び出しの定義を作成する方法を示します。 最近のデータベース クエリやジョブを一覧表示して、その定義を SQL Talk アプリケーションコード内で 実際の API 呼び出しを行います

関数呼び出しの定義を追加する

最近のデータベース クエリまたはジョブを一覧表示するための新しい関数呼び出しを追加します。この 生成モデルでは、API 呼び出しが何をするかを理解するために 必要な入力パラメータを指定します。この関数定義の例は、 パラメータなしで定義できます。

アプリケーションに新しい関数呼び出しを追加するには:

  1. Cloud Shell エディタ ウィンドウで、sql-talk-app/app.py コードファイルを開きます。
  2. list_datasets_func 関数の宣言の後に、 FunctionDeclaration

    list_jobs_func = FunctionDeclaration(
        name="list_jobs",
        description="Get a list of the 10 most recent database requests to help answer the user's question",
        parameters={
            "type": "object",
            "properties": {
      },
    },
    )
    
  3. 新しい関数を sql_query_tool オブジェクトに追加します。

    sql_query_tool = Tool(
        function_declarations=[
            sql_query_func,
            list_datasets_func,
            List_jobs_func,  # add this new function
            list_tables_func,
            get_table_func,
        ],
    )
    

新しい関数の API 呼び出しを実行するコードを追加するには:

  • sql-talk-app/app.py コードファイルで、新しい if 句を while function_calling_in_process:ループ。

    if response.function_call.name == "list_datasets":
        ...
    
    # add this if clause for list_jobs function
    if response.function_call.name == "list_jobs":
        api_response = client.list_jobs(max_results=10)  # API request(s)
        api_response = str([job.job_id for job in api_response])
        api_requests_and_responses.append(
          [response.function_call.name,params, api_response])
    

参考情報

SQL クエリ プロジェクトについて詳しくは、このモジュールの コード リポジトリ 詳細については、 Cloud コミュニティ ブログ投稿 詳しく見ていきますアプリケーションの構築についてサポートが必要な場合や、 他のデベロッパーとのコラボレーションを検討している場合は、Google Developers Community Discord サーバーGoogle Cloud AI/ML フォーラム。 その他の Build with Google AI プロジェクトについては、 動画再生リスト