AIキーワードを使用したプロンプトの入力

AIは、自然言語プロンプトを使用してデータベースと対話するためのSELECT文のキーワードとして使用します。

SELECT文のAIキーワードは、アクティブなAIプロファイルで識別されたLLMを使用して自然言語を処理し、SQLを生成するようにSQL実行エンジンに指示します。

SQL Developer、OMLノートブック、サードパーティ・ツールなどのOracleクライアントとの問合せでAIキーワードを使用して、データベースを自然言語で操作できます。

ノート

AIキーワードを使用して、PL/SQL文、DDL文またはDML文を実行することはできません。

構文

AIプロンプトを実行するための構文は次のとおりです。
SELECT AI action natural_language_prompt

パラメータ

actionパラメータで使用可能なパラメータは次のとおりです。
パラメータ 摘要

runsql

自然言語プロンプトに対して基礎となるSQLコマンドを実行し、取得拡張生成(RAG)をサポートします。これはデフォルトのアクションであり、このパラメータを指定する必要はありません。

showsql

自然言語プロンプトのSQLステートメントが表示されます。

explainsql

プロンプトから生成されたSQLを自然言語で説明します。このオプションでは、生成されたSQLがAIプロバイダに送信され、自然言語の説明が生成されます。

narrate

narrateアクションは、SQLへの自然言語(NL2SQL)とRAGの両方をサポートします。

NL2SQLの場合、narrateは、データベースによって実行されるSQL問合せの結果をLLMに送信し、その結果の自然言語記述を生成します。

RAGの場合、AIプロファイルにベクトル索引が含まれている場合、システムは指定されたトランスフォーマ(またはデフォルトのトランスフォーマ)モデルを使用して、ベクトル・ストアに対するセマンティック類似性検索のプロンプトからベクトル埋込みを作成します。次に、ベクトル ストアから取得したコンテンツがユーザー プロンプトに追加され、LLMに送信されて、この情報に基づいてレスポンスが生成されます。

表データまたはベクトル検索ドキュメントをLLMに送信しない場合、管理者権限を持つユーザーは、特定のデータベースのすべてのユーザーに対してそのようなアクセスを無効にできます。これにより、narrateアクションが無効になります。

chat

ユーザー・プロンプトをLLMに直接渡して、ユーザーに提供されるレスポンスを生成します。

セッション・ベースの短期会話の場合、DBMS_CLOUD_AI.CREATE_PROFILE関数のconversationtrueに設定されている場合、このオプションには、スキーマ・メタデータを含む可能性のある以前の対話またはプロンプトのコンテンツが含まれます。

複数の名前付き会話の場合、チャット関連のプロンプト履歴のみがLLMに送信されます。詳細は、Select AI Conversationsを参照してください。

showprompt

このアクションは、NL2SQLおよびRAGをサポートします。このアクションでは、合成データ生成、explainsqlおよびnarrateはサポートされていません。

生成AIモデルに送信される構成済プロンプトを表示します。

summarize

ユーザー指定のAIプロバイダを使用して、テキストおよび大きなファイルのコンテンツのサマリーを生成します。AIプロファイルがセッションで設定されている場合は、SELECT AI SUMMARIZE <TEXT>を使用できます。

詳細は、Select AIを使用したサマリーの生成および例: Select AIアクションを参照してください。

サマリー生成をカスタマイズする場合は、DBMS_CLOUD_AI.SUMMARIZE関数を使用します。詳細は、「例: Select AI Summarize」を参照してください。

feedback

自然言語でフィードバックを提供することで、LLMのより正確なSQLクエリを生成する能力を向上させることができます。runsqlshowsqlexplainsqlなど、他のSelect AIのアクションと一緒に使用できます。詳細は、フィードバックを参照してください。

ノート

この機能は、Oracle Database 23aiでのみ使用できます。narrateを使用している場合は、RAGではなくSQL生成用にプロファイルが構成されていることを確認してください。

これらのアクションの使用方法を学習するには、Select AIの使用例を参照してください。

使用上のノート

  • Select AIのAIキーワードは、データベース・アクションまたはAPEXサービスではサポートされていません。DBMS_CLOUD_AI.GENERATEファンクションのみを使用できます。

    Database ActionsまたはAPEXサービスでDBMS_CLOUD_AI.SET_PROFILEを使用しないでください。かわりに、DBMS_CLOUD_AI.GENERATEprofile_name引数でAIプロファイルを設定します。

  • AIキーワードは、SELECT文でのみサポートされます。

  • AIキーワードを使用して、PL/SQL文、DDL文またはDML文を実行することはできません。

  • 順序は、SELECTの後にAIが続きます。これらのキーワードでは、大文字と小文字が区別されません。DBMS_CLOUD_AI.SET_PROFILEおよびオプションのアクションを使用してAIプロファイルを設定すると、SELECT AIの後のテキストが自然言語プロンプトになります。AIプロファイルが設定されていない場合、SELECT AIは、SELECT AI文の実行時に次のエラーを報告します。

    ORA-00923: FROM keyword not found where expected
    00923. 00000 -  "FROM keyword not found where expected"
  • Oracleのガイドラインに従って、特殊文字の使用規則が適用されます。たとえば、一文でアポストロフィを使用する場合は、一重引用符を2回使用します。

    select ai how many customers in SF don''t own their own home
  • LLMはハルシネーションの対象であり、結果が常に正しいとはかぎりません。

    • SELECT AIでは、特定の自然言語プロンプトに対して生成されたSQL問合せを実行できない場合があります。

    • SELECT AIでは、特定の自然言語プロンプトのSQL問合せを生成できない場合があります。

    • 自然言語プロンプトでは、LLMによって正しい結果を生成するSQL問合せが生成されない場合があります。

    このようなシナリオでは、SELECT AIは、有効なSQLの生成に役立つ情報で応答することがあります。

  • 自然言語によるSQL生成の結果を改善するには、データベース・ビューまたはコンテキスト列名を持つ表を使用するか、列に格納されている値について説明する列コメントを追加することを検討してください。

  • SELECT AI showsqlと比較して、SELECT AI explainsqlのようにexplainsqlアクションを使用して、SQL文の詳細な説明を取得します。
  • DBAビューまたはUSERビューにアクセスするには、DBMS_CLOUD_AIビューを参照してください。