生成AIエージェントでのSQLツールの作成

生成AIエージェントでは、各エージェントに1つ以上のツールが必要です。エージェントの作成中または作成後にエージェントのツールを作成できます。どちらのオプションでも、ツールの作成手順は同じです。この項では、SQLツールを作成するステップを示します。

SQLツールを作成する前に、生成AIエージェントのSQLツール・ガイドラインを確認し、必要なタスクを完了します。

SQLツールの作成

  1. 「ツールの作成」を選択し、「SQL」を選択します。
  2. このSQLツールの名前と説明を入力します。
    このツールのデータベース・スキーマの説明は、エージェントがSQL問合せ文の生成方法をよりよく理解するのに役立ちます。
  3. 「データベース・スキーマ構成のインポート」で、次のいずれかのオプションを選択して、このツールに使用するデータベース・スキーマを指定します。スキーマは、データベース内のオブジェクトの編成を定義するために、表、列、データ型および関係を含む必要があるSQL文のセットです。
    • インライン: SQL文を含む文字列を入力します。文字列は、CREATEALTERなどの有効なSQLキーワード、または開きカッコ(で始まる必要があります。
    • オブジェクト・ストレージから選択: コンパートメントおよびバケットを選択します。次に、SQL文を含む.sqlファイルを選択します。
  4. 「モデルのカスタマイズ」で、次のいずれかのオプションを選択します。
    • : 「2025年1月の売上合計の取得」などの単純な問合せに選択します。小規模なモデルでは、応答時間が短縮され、コンピュート・コストが削減される場合があります。
    • : 「地域別にグループ化されたQ1 2023で、パフォーマンスが上位5の製品の平均売上を表示」など、より複雑な問合せに選択します。大規模なモデルでは、精度が向上しますが、レイテンシとコンピュート・コストが高くなります。
  5. 「方言」で、次のいずれかのオプションを選択します。
    • SQLite: SQLite構文ルールと一致するSQL問合せを生成する場合に選択します。たとえば: SELECT * FROM users LIMIT 5;
    • Oracle SQL: Oracle SQL構文ルールと一致する問合せを生成する場合に選択します。たとえば: SELECT * FROM users FETCH FIRST 5 ROWS ONLY;

      このオプションにより、生成されたSQLがOracle Databaseの構文および実行環境と完全に互換性が確保されます。

  6. (オプション)コンテキスト内学習の例では、次のオプションのいずれかを選択して、提供されているスキーマのコンテキストでユーザーが尋ねる自然言語問合せの例と、生成するSQL問合せの例を提供します。
    • インライン: サンプル質問を含む文字列を自然言語および予想されるSQL問合せで入力します。

      たとえば:

      Question: Show all employees who were born in CA.
      Oracle SQL: SELECT * FROM Employees WHERE BIRTHSTATE = 'CA';
    • オブジェクト・ストレージから選択: コンパートメントおよびバケットを選択します。次に、データベース・スキーマのコンテキストで質問と回答の例を含む.txtファイルを選択します。
    • なし: 提供する例はありません。
  7. (オプション)「データベース・ツール接続」で、コンパートメントを選択し、メニューから接続を選択します。

    選択した接続が機能することを確認するには、「接続のテスト」を選択します。

    接続は、チャット・セッション中にSQLの実行または自己修正を有効にする場合にのみ必要です。

    ヒント

    このツールで接続を選択した後にその接続を使用しない場合は、メニューの最後にあるxを選択して接続を削除します。
  8. (オプション)「SQL実行の有効化」で、SQL実行をオンまたはオフにする場合に選択します。

    SQL実行が有効な場合、エージェントはSQL問合せ文を生成し、問合せを実行し、チャット・セッション中にユーザーにレスポンスを送信します。結合、複数条件および集計を含むSELECT問合せのみが生成および実行されます。実行に失敗すると、エージェントは、生成されたSQL問合せとともにORAコード(ORA-00933など)を含むデータベース実行エラーを返します。

    ヒント

    オブジェクト・ストレージ・バケットに100行を超える結果を格納するには、エージェント・エンドポイントで「大きな出力結果の記憶域の有効化」を選択します。
  9. (オプション)「SQL修正の有効化」で、自己修正をオンまたはオフにする場合に選択します。

    実行中にエラーが戻った場合に、自己修正を有効にして問合せを修正します。より単純な問合せで高速に実行するために、自己修正を有効にしないことを検討してください。

  10. (オプション)「カスタム手順」に、エージェントがより具体的な方法で動作するように求めるテキストを入力します。

    たとえば:

    Always use aggregators such as COUNT, SUM, AVG, MIN, MAX in Oracle SQL queries that contain GROUP BY.

  11. (オプション)「表および列の説明」で、次のいずれかのオプションを選択して、データベースで使用される表および列の詳細な説明を指定します。
    • インライン: 文字列を入力します。

      たとえば:

      birthYear      Year employee was born
      birthMonth     Month employee was born
    • オブジェクト・ストレージから選択: コンパートメントおよびバケットを選択します。次に、データベース表および列の説明テキストを含む.txtファイルを選択します。
    • なし: 指定する説明がありません。
  12. 「ツールの作成」を選択します。
ヒント

次のいずれかのアクションを行います:

  • エージェントを作成する場合は、「生成AIエージェントでのエージェントの作成」に戻って、別のツールまたはエンドポイントを作成します。
  • ツールを既存のエージェントに追加した場合、ツールがアクティブになった後、エージェントの詳細ページで「チャットを起動」を選択し、このツールを使用してエージェントとチャットします。
  • エンドポイントなしでエージェントを作成した場合は、エージェントを使用する準備ができたら、このエージェントのエンドポイントを作成します。
ノート

生成された問合せをユーザーに送信する前にヒューマン・レビューアがモニターおよび編集できるようにするには、エージェント・エンドポイントでオプションの機能「ループでヒューマンを有効化」を選択します。