14 フィードバック

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を改良するのに役立ちます。詳細は、unresolvable-reference.html#GUID-921A9A09-E9BB-43EF-ABCA-803AA1E333A7を参照してください。

ヒント:

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プロシージャを使用して、問合せのエラーを識別するか、文で予期されている内容に関するガイダンスを提供することで、必要なSQL問合せの改良を行うことができます。システムはLLMを使用して問合せを改良し、将来のSelect AIの問合せ生成のために改良されたバージョンを格納します。格納した改良された問合せは、ヒントとして使用され、拡張プロンプトの一部としてLLMに送信されます。

詳細は、unresolvable-reference.html#GUID-0780F523-AAB2-400E-A6A9-0F00D8BDB6ECおよび「例: Select AI Feedback」を参照してください。

トピック

フィードバックの利点

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;

詳細は、unresolvable-reference.html#GUID-0780F523-AAB2-400E-A6A9-0F00D8BDB6ECおよび「例: Select AI Feedback」を参照してください。