フィードバック

Select AIを使用すると、フィードバックを提供して、選択したLLMがより正確なSQLクエリを生成する機能を改善できます。

ノート

ノート:この機能は、Oracle AI Database 26aiでのみ使用できます。これは、既存のSelect AIアクション(runsqlshowsqlおよびexplainsql)とともに使用できます。AIプロファイルがRAGではなくNL2SQL生成用に構成されていることを確認します。

feedbackアクションまたはDBMS_CLOUD_AI.FEEDBACKプロシージャを使用して、生成されたSQLの精度を向上させるフィードバックを提供できます。Select AIは、フィードバック機能を初めて使用するときに、デフォルトの属性を持つ<profile_name>_FEEDBACK_VECINDEXという名前のデフォルトのベクトル索引を作成します。この索引は、提供されたフィードバックに基づいて将来生成されたSQLを絞り込むのに役立ちます。詳細は、「FEEDBACKのベクトル索引」を参照してください。

ヒント: DBMS_CLOUD_AI.FEEDBACKプロシージャは、指定したLLMが正しいSQL問合せの生成に失敗するか、NL2SQL SELECT AIアクションのいずれかから予想される結果を返さない場合に使用します。DBMS_CLOUD_AI.FEEDBACKプロシージャを使用して、正しいSQLをベクトル表に直接追加することもできます。これは、同様のプロンプトの参照として機能することで、将来のSQL生成をガイドするのに役立ちます。

次のタイプのフィードバックが受け入れられます。

  • 肯定的なフィードバック: 生成されたSQLの正確性を承認および確認します。確認済みのクエリーが後で参照できるように保存されます。

  • ネガティブ・フィードバック: NL2SQL SELECT AIアクションの結果が正しいSQLの生成に失敗した場合は、SELECT AI feedback <feedback>またはDBMS_CLOUD_AI.FEEDBACKプロシージャを使用して、問合せのエラーを識別するか、proseで想定された内容に関するガイダンスを提供することで、必要なSQL問合せの改善を提供できます。システムはLLMを使用してクエリーを絞り込み、将来の Select AIクエリー生成用に洗練されたバージョンを格納します。格納された洗練された問合せは、ヒントとして使用され、拡張プロンプトの一部としてLLMに送信されます。

詳細は、FEEDBACKプロシージャおよび例: Select AIフィードバックを参照してください。

フィードバックの利点

Select AIのフィードバック・アクションおよびプロシージャには、SQL問合せ生成の精度を高めるプロンプト・チューニング・メカニズムが導入されています。

AIプロファイルの所有者は、生成されたSQL問合せに対するフィードバックを提供でき、Select AIシステムは時間の経過とともにユーザー・インタラクションから学習します。この学習では、現在のプロンプトと同様のプロンプトを識別するためにベクトル検索が使用されるプロンプトおよびフィードバック・コンテンツのリポジトリを収集します。上位の一致例は、拡張プロンプトの一部としてLLMへのメタデータとして提供されます。利点は次のとおりです。

  • SQL問合せの精度を向上できます。

  • AIプロファイルの所有者は、正しい問合せを確認したり、適切な問合せを生成するためのセマンティックな意図またはビジネス定義を提供して修正を提案することで、フィードバックを提供できます。

  • 履歴フィードバックを将来の問合せ生成のヒントとして使用し、ニーズに適応します。

フィードバックの使用方法

Select AIでは、feedbackアクションを使用するか、DBMS_CLOUD_AI.FEEDBACKプロシージャをコールして、フィードバックを入力できます。

注意: AIプロファイルを所有する単一のデータベース・ユーザーで複数のユーザーがデータベース・セッションを共有するアプリケーションでは、フィードバック・アクションを使用しないでください。AIプロファイルの所有者は、修正されたクエリーがそのプロファイルのすべてのユーザーに適切であることを確認したあとでのみ、フィードバックを提供するようにしてください。

次の情報を含めることでフィードバックを提供できます。

  • SQL_TEXT: 現在のSQL問合せのフィードバックを引用符で囲みます。または、V$MAPPED_SQLビューを問い合せることで、特定の問合せのSQL_TEXTを取得できます。

  • SQL_ID: V$MAPPED_SQLビューを問い合せることで、SQL_IDを取得できます。

  • 最後に生成されたSQLの使用: フィードバックを自然言語で提供します。

ノート

ノート:最後のsqlを使用するには、Oracle SQL*PlusまたはOracle SQLclでサーバーの出力をオフに設定してください。sys.v_$session表およびv_$mapped_sql表に対するREAD権限が必要です。

GRANT READ ON SYS.V_$MAPPED_SQL TO ADB_USER;
GRANT READ ON SYS.V_$SESSION TO ADB_USER;

詳細は、FEEDBACKプロシージャおよび例: Select AIフィードバックを参照してください。