データベースとの自然言語対話にSelect AIを使用
AIの選択機能により、Autonomous Databaseでは、生成AIを大規模言語モデル(LLM)とともに使用して、ユーザーの入力テキストをOracle SQLに変換できます。「AI」を選択すると、自然言語プロンプトが処理され、プロンプトにメタデータが補足されてから、SQL問合せが生成および実行されます。
- Select AIについて
自然言語を使用したデータベース・データとの対話がLLMで実現できるようになりました。つまり、プレーン英語などの自然言語を使用してデータベースを問い合せることができます。 - DBMS_CLOUD_AIを使用したAIプロファイルの構成
Oracle Autonomous Database Serverlessは、AIプロファイルを使用して、LLMへのアクセスを容易におよび構成し、自然言語プロンプトからSQL文を生成するための設定を行います。 - DBMS_CLOUD_AIパッケージの構成
DBMS_CLOUD_AI
を使用するステップについて説明します。 - AIプロファイルの作成および設定
AIプロファイルを作成および有効化するステップについて説明します。 - AIキーワードを使用したプロンプトの入力
自然言語プロンプトを使用してデータベースを操作するには、SELECT
文のキーワードとしてAI
を使用します。 - Select AIの使用例
OracleのSelect AIを、OpenAI、Cohere、Azure Open AI、OCI Generative AIなどの様々なAIプロバイダーと統合して、自然言語から直接SQLクエリを生成する方法の詳細をご覧ください。 - 用語
AIの選択機能で使用される用語の定義について説明します。
親トピック: 機能
Select AIについて
自然言語を使用したデータベース・データとの対話は、LLMで実現できるようになりました。つまり、プレーン英語などの自然言語を使用してデータベースを問い合せることができます。
「AIの選択」を使用すると、Autonomous Databaseは自然言語をSQLに変換するプロセスを管理します。つまり、データと対話するためのSQLコードのかわりに自然言語プロンプトを提供できます。Select AIは、SQLユーザーと開発者の生産性向上ツールとして機能し、エキスパートではないSQLユーザーがデータ構造や技術言語を理解することなく、データから有用なインサイトを得ることができます。
DBMS_CLOUD_AI
パッケージを使用すると、自然言語プロンプトを使用してSQLコードを生成するためのユーザー指定のLLMとの統合が可能になります。このパッケージは、データベース・スキーマに関する知識をLLMに提供し、そのスキーマと一致するSQL問合せを記述するようLLMに指示するのに役立ちます。DBMS_CLOUD_AI
パッケージは、OpenAI、Cohere、Azure OpenAI Service、Oracle Cloud Infrastructure Generative AIなどのAIプロバイダと連携します。
ユーザーは、AIプロバイダを持つアカウントを持ち、Autonomous Databaseが使用する
DBMS_CLOUD_AI
オブジェクトを介して資格証明を提供する必要があります。
- 使用上のガイドライン
SQL生成の自然言語プロンプトを効果的かつ適切に使用して、ユーザー・エクスペリエンスを向上させるための使用上のガイドラインを提供します。
親トピック: Select AIを使用したデータベースとの自然言語対話
使用ガイドライン
SQL生成の自然言語プロンプトを有効かつ適切に使用して、ユーザー・エクスペリエンスを向上させるための使用ガイドラインを提供します。
使用目的
この機能は、ユーザー指定の自然言語プロンプトによって生成されるSQL問合せの生成および実行を目的としています。ユーザーが選択した大規模言語モデル(LLM)と組み合せてスキーマ・メタデータに基づいて手動で実行できる操作を自動化します。
SQL問合せ結果の生成に関連しないプロンプトを含め、任意のプロンプトを指定できますが、Select AIはSQL問合せの生成に重点を置きます。「AI」を選択すると、chat
アクションを使用して一般的なリクエストを送信できます。
プロンプト拡張データ
データベースは、ユーザー指定のプロンプトをデータベース・メタデータで補強し、LLMからの幻覚を軽減します。次に、拡張プロンプトがユーザー指定のLLMに送信され、問合せが生成されます。
データベースは、スキーマ・メタデータのみを使用してプロンプトを拡張します。このメタデータには、スキーマ定義、表および列のコメント、およびデータ・ディクショナリおよびカタログから使用可能なコンテンツが含まれる場合があります。SQL生成では、プロンプトを拡張する際に、テーブルまたはビューの内容(実際の行または列の値)は提供されません。
ただし、narrate
アクションは、問合せの結果(データベース・データを含む可能性がある)を、問合せ結果を記述する自然言語テキストを生成するユーザー指定のLLMに提供します。
警告:
大規模言語モデル(LLM)は、一般的にインターネットから、幅広いテキスト・ドキュメントとコンテンツに関するトレーニングを受けています。その結果、LLMは、SQLインジェクションを含む無効または悪意のあるコンテンツからのパターンを組み込んだ可能性があります。したがって、LLMは有用で関連性の高いコンテンツの生成に精通していますが、不正確な結果を生成したり、データのセキュリティを損なうSQLクエリなどの誤った情報や誤った情報を生成することもできます。
ユーザー指定のLLMプロバイダによってかわりに生成された問合せは、データベースで実行されます。この機能の使用はお客様ご自身の責任においてのみ行われ、Oracleが提供するサービスに関連するその他の条件にかかわらず、お客様がそのリスクを受諾したことと、その使用によって生じるいかなる損害についても、Oracleの責任または責任を明示的に除外することになります。
親トピック: Select AIについて
DBMS_CLOUD_AIを使用したAIプロファイルの構成
Oracle Autonomous Database Serverlessは、AIプロファイルを使用して、LLMへのアクセスを容易におよび構成し、自然言語プロンプトからSQL文を生成するための設定を行います。
AIプロファイルには、自然言語問合せのターゲットとなるデータベース・オブジェクトが含まれます。これらのターゲットから使用されるメタデータには、データベース表名、列名、列のデータ型およびコメントを含めることができます。AIプロファイルは、DBMS_CLOUD_AI.CREATE_PROFILE
およびDBMS_CLOUD_AI.SET_PROFILE
プロシージャを使用して作成および構成します。
AIプロファイルでの表およびビューの指定に加えて、「データ・カタログを使用した外部データの問合せ」で説明されている表など、外部表にマップされた表を指定することもできます。これにより、データベース内だけでなく、データ・レイクのオブジェクト・ストアに格納されているデータも問い合せることができます。
親トピック: Select AIを使用したデータベースとの自然言語対話
AIプロファイルの作成と設定
AIプロファイルを作成して有効にする手順について説明します。
AIプロファイルを作成するには、DBMS_CLOUD_AI.CREATE_PROFILE
を使用します。次に、DBMS_CLOUD_AI.SET_PROFILE
を起動してAIプロファイルを有効にし、自然言語プロンプトでSELECT AI
を使用できるようにします。
SELECT
AI
を使用する前に、新しいデータベース・セッション(接続)ごとにDBMS_CLOUD_AI.SET_PROFILE
を実行する必要があります。
次の例では、OpenAIプロバイダを使用して、OPENAI
というAI
プロファイルを作成し、現在のユーザー・セッションのOPENAI
プロファイルを設定します。
-- Create AI profile
--
SQL> BEGIN
DBMS_CLOUD_AI.create_profile(
'OPENAI',
'{"provider": "openai",
"credential_name": "OPENAI_CRED",
"object_list": [{"owner": "SH", "name": "customers"},
{"owner": "SH", "name": "sales"},
{"owner": "SH", "name": "products"},
{"owner": "SH", "name": "countries"}]
}');
END;
/
PL/SQL procedure successfully completed.
--
-- Enable AI profile in current session
--
SQL> EXEC DBMS_CLOUD_AI.set_profile('OPENAI');
PL/SQL procedure successfully completed.
親トピック: Select AIを使用したデータベースとの自然言語対話
AIキーワードを使用したプロンプトの入力
SELECT
文のキーワードとしてAI
を使用し、自然言語プロンプトを使用してデータベースと対話します。
SELECT
文のAI
キーワードは、アクティブなAIプロファイルで識別されたLLMを使用して自然言語を処理し、SQLを生成するようにSQL実行エンジンに指示します。
AI
キーワードは、SQL Developer、OML Notebooks、サード・パーティ・ツールなどのOracleクライアントとの問合せで使用して、自然言語でデータベースと対話できます。
AI
キーワードを使用して、PL/SQL文、DDL文またはDML文は実行できません。
構文
SELECT AI action natural_language_prompt
パラメータ
パラメータ | 説明 |
---|---|
|
自然言語プロンプトの基礎となるSQLコマンドを実行します。これはデフォルトのアクションであり、このパラメータの指定はオプションです。 |
|
自然言語プロンプトのSQL文を表示します。 |
|
基礎となるSQLコマンドの出力を自然言語で説明します。このオプションにより、SQL結果がAIプロバイダに送信され、自然言語のサマリーが生成されます。 |
|
プロンプトに基づいてLLMから直接応答を生成します。 |
|
プロンプトから生成されたSQLを自然言語で説明します。このオプションにより、生成されたSQLがAIプロバイダに送信され、自然言語の説明が生成されます。 |
使用上のノート
-
AI
は、データベース・アクションまたはAPEXサービスではサポートされていません。DBMS_CLOUD_AI.GENERATE
ファンクションのみを使用できます。 -
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のガイドラインに従って、特殊文字の使用規則が適用されます。たとえば、1つの文でアポストロフィを使用している場合は、一重引用符を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 chat
のようにchat
アクションを使用します。chat
アクションでより適切な結果を得るには、データベース・ビューまたはコンテキスト列名を持つ表を使用するか、列に格納されている値を説明する列コメントを追加することを検討してください。 -
DBAビューまたはUSERビューにアクセスするには、DBMS_CLOUD_AIビューを参照してください。
親トピック: Select AIを使用したデータベースとの自然言語対話
用語
AIの選択機能で使用される用語の定義について説明します。
AIの選択機能に関連する用語は次のとおりです。
用語 | 定義 |
---|---|
データベース資格証明 |
データベース資格証明は、データベースへのアクセスおよび対話に使用される認証資格証明です。通常、ユーザー名およびパスワードで構成され、セキュリティ・トークンなどの追加の認証ファクタによって補完されることがあります。これらの資格証明は、アプリケーションまたはユーザーとデータベース間のセキュアな接続を確立するために使用され、認可された個人またはシステムのみがデータベース内に格納されているデータにアクセスして操作できるようにします。 |
LLMの幻覚 |
大言語モデルの文脈における幻覚は、入力プロンプトに不正確、無意味、または無関係なテキストをモデルが生成する現象を指します。モデルの一貫性のあるテキストの生成の試みの結果であるにもかかわらず、これらのインスタンスには、作成、誤解を招く、または純粋に想像力のある情報を含めることができます。幻覚は、トレーニング・データのバイアス、適切なコンテキスト理解の欠如、またはモデルのトレーニング・プロセスの制限が原因で発生する可能性があります。 |
IAM | Oracle Cloud Infrastructure Identity and Access Management (IAM)を使用すると、クラウド・リソースにアクセスできるユーザーを制御できます。ユーザーのグループが保持するアクセス権のタイプとアクセスの対象となる特定のリソースを制御できます。詳細は、Identity and Access Managementの概要を参照してください。 |
大型言語モデル(LLM) |
大言語モデルは、人間のような言語、ソフトウェア・コードおよびデータベース問合せを理解および生成するために大量のテキスト・データに基づいてトレーニングされた高度な人工知能モデルを指します。これらのモデルは、テキスト生成、翻訳、要約、質問回答、センチメント分析など、幅広い自然言語処理タスクを実行できます。LLMは通常、入力データからパターン、コンテキストおよびセマンティクスを学習するニューラル・ネットワークベースのアーキテクチャであり、一貫性のあるコンテキスト関連テキストを生成できます。 |
自然言語プロンプト |
自然言語プロンプトは、大規模言語モデルなどの生成AIモデルをガイドするために提供される、人間が読める手順またはリクエストです。ユーザーは、特定のプログラミング言語やコマンドを使用するかわりに、より会話型または自然言語形式でプロンプトを入力することで、これらのモデルを操作できます。モデルは、指定されたプロンプトに基づいて出力を生成します。 |
ネットワーク・アクセス制御リスト(ACL) |
ネットワーク・アクセス制御リストは、ルーター、ファイアウォール、ゲートウェイなどのネットワーク・デバイスを通過できるネットワーク・トラフィックを定義するルールまたは権限のセットです。ACLは、IPアドレス、ポート番号、プロトコルなどの様々な基準に基づいて、受信トラフィックおよび送信トラフィックを制御およびフィルタするために使用されます。管理者がネットワーク・トラフィックを管理および制限して不正アクセス、潜在的な攻撃およびデータ漏洩を防止できるようにすることで、ネットワーク・セキュリティにおいて重要な役割を果たします。 |
親トピック: Select AIを使用したデータベースとの自然言語対話