DBMS_CLOUD_AIパッケージ
DBMS_CLOUD_AI
パッケージは、自然言語プロンプトからSQL文への変換を容易にして構成します。
前提条件
- Oracle Cloud InfrastructureドキュメントのNAT Gatewayの作成の手順に従って、Autonomous Databaseリソースが存在するVirtual Cloud Network (VCN)にNATゲートウェイを作成します。
- NATゲートウェイを作成したら、Autonomous Databaseリソースが存在する各サブネット(VCN内)にルート・ルールおよびエグレス・セキュリティ・ルールを追加して、これらのリソースがゲートウェイを使用してAzure ADインスタンスから公開キーを取得できるようにします:
- サブネットの「サブネットの詳細」ページに移動します。
- 「サブネット情報」タブで、サブネットの「ルート表」の名前をクリックして、その「ルート表の詳細」ページを表示します。
- 既存のルート・ルールの表で、次の特性を持つルールがすでに存在するかどうかを確認します:
- 宛先: 0.0.0.0/0
- ターゲット・タイプ: NATゲートウェイ
- ターゲット: VCN内に作成したNATゲートウェイの名前
そのようなルールが存在しない場合は、「ルート・ルールの追加」をクリックし、これらの特性を持つルート・ルールを追加します。
- サブネットの「サブネットの詳細」ページに戻ります。
- サブネットの「セキュリティ・リスト」表で、サブネットのセキュリティ・リストの名前をクリックして、その「セキュリティ・リストの詳細」ページを表示します。
- サイド・メニューの「リソース」で、「エグレス・ルール」をクリックします。
- 既存のエグレス・ルールの表で、次の特性を持つルールがすでに存在するかどうかを確認します:
- 宛先タイプ: CIDR
- 宛先: 0.0.0.0/0
- IPプロトコル: TCP
- ソース・ポート範囲: 443
- 宛先ポート範囲: すべて
そのようなルールが存在しない場合は、「エグレス・ルールの追加」をクリックし、これらの特性を持つエグレス・ルールを追加します。
環境のHTTPプロキシ設定では、データベースがクラウド・サービス・プロバイダにアクセスできるようにする必要があります。
HTTPプロキシを含むネットワーク構成は、Exadataインフラストラクチャが「アクティブ化が必要」状態になるまで編集できません。アクティブ化した後は、これらの設定を編集できません。
すでにプロビジョニングされているExadataインフラストラクチャのHTTPプロキシを設定するには、My Oracle Supportでサービス・リクエスト(SR)が必要です。詳細は、「My Oracle Supportでのサービス・リクエストの作成」を参照してください。
- DBMS_CLOUD_AIサブプログラムのサマリー
この項では、Autonomous Databaseに付属するDBMS_CLOUD_AI
サブプログラムについて説明します。 - CREATE_PROFILEプロシージャ
このプロシージャは、自然言語プロンプトをSQL文に変換するための新しいAIプロファイルを作成します。 - DROP_PROFILEプロシージャ
このプロシージャは、既存のAIプロファイルを削除します。プロファイルが存在しない場合、プロシージャはエラーをスローします。 - ENABLE_PROFILEプロシージャ
このプロシージャは、ユーザーが指定したAIプロファイルを有効にします。このプロシージャは、AIプロファイルのステータスをENABLED
に変更します。 - DISABLE_PROFILEプロシージャ
このプロシージャは、現在のデータベースのAIプロファイルを無効にします。この手順では、AIプロファイルのステータスがDISABLED
に変更されます。 - SET_ATTRIBUTEプロシージャ
このプロシージャでは、AIプロファイル属性を設定できます。 - SET_PROFILEプロシージャ
このプロシージャは、現在のセッションのAIプロファイルを設定します。 - GENERATEファンクション
このファンクションは、ステートレスな方法でAI変換を提供します。既存のAIプロファイルでは、この関数を使用して、showsql
、narrate
、chat
などのサポートされているアクションを実行できます。デフォルトのアクションはshowsql
です。 - プロファイル属性
AIプロファイルの属性は、AIプロファイルの動作を管理および構成するのに役立ちます。一部の属性はオプションであり、デフォルト値があります。
親トピック: リファレンス
DBMS_CLOUD_AIサブプログラムの概要
この項では、Autonomous Databaseで提供されるDBMS_CLOUD_AI
サブプログラムについて説明します。
DBMS_CLOUD_AIパッケージは、Autonomous Databaseバージョン19.22以降でのみ使用できます。
サブプログラム | 説明 |
---|---|
このプロシージャは、自然言語プロンプトをSQL文に変換するための新しいAIプロファイルです。 |
|
この手順では、現在のデータベースのAIプロファイルを無効にします。 |
|
この手順では、既存のAIプロファイルを削除します。 |
|
この手順により、AIプロファイルを現在のデータベースで使用できます。 |
|
このファンクションは、AIを使用して変換するSQL文を生成します。 | |
この手順では、AIプロファイル属性を設定します。 |
|
このプロシージャは、現在のデータベースのAIプロファイルを設定します。 |
親トピック: DBMS_CLOUD_AIパッケージ
CREATE_PROFILEプロシージャ
このプロシージャは、自然言語プロンプトをSQL文に変換するための新しいAIプロファイルを作成します。
構文
DBMS_CLOUD_AI.CREATE_PROFILE
profile_name IN VARCHAR2,
attributes IN CLOB DEFAULT NULL,
status IN VARCHAR2 DEFAULT NULL,
description IN CLOB DEFAULT NULL
);
パラメータ
パラメータ | 説明 |
---|---|
|
AIプロファイルの名前。プロファイル名は、Oracle SQL識別子のネーミング・ルールに従う必要があります。プロファイル名の最大長は125文字です。 これは必須パラメータです。 |
|
JSON形式のプロファイル属性。詳細は、AIのプロファイル属性を参照してください。 デフォルト値はNULLです。 |
status |
プロファイルのステータス。 デフォルトは「有効化」です。 |
|
AIプロファイルの説明。 デフォルト値はNULLです。 |
例
BEGIN
DBMS_CLOUD_AI.CREATE_PROFILE
(
profile_name => 'OpenAI,
attributes => JSON_OBJECT('provider' value 'openai',
'credential_name' value 'openai_cred'),
description => 'AI profile to use OpenAI for SQL translation'
);
END;
/
親トピック: DBMS_CLOUD_AIパッケージ
DROP_PROFILEプロシージャ
この手順では、既存のAIプロファイルを削除します。プロファイルが存在しない場合、プロシージャはエラーをスローします。
構文
DBMS_CLOUD_AI.DROP_PROFILE
(
profile_name IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE
);
パラメータ
パラメータ | 説明 |
---|---|
|
AIプロファイルの名前 |
|
このパラメータのデフォルト値は |
例
BEGIN
DBMS_CLOUD_AI.DROP_PROFILE
(profile_name => 'OPENAI');
END;
/
使用上のノート
AIプロファイルが存在しない場合は、force
を使用してプロファイルを削除し、エラーを無視します。
親トピック: DBMS_CLOUD_AIパッケージ
ENABLE_PROFILEプロシージャ
この手順では、ユーザーが指定したAIプロファイルを有効にします。このプロシージャは、AIプロファイルのステータスをENABLED
に変更します。
構文
DBMS_CLOUD_AI.ENABLE_PROFILE
(
profile_name IN VARCHAR2
);
パラメータ
パラメータ | 説明 |
---|---|
|
有効にするAIプロファイルの名前 このパラメータは必須です。 |
AIプロファイルを有効にする例
BEGIN
DBMS_CLOUD_AI.ENABLE_PROFILE
(
profile_name => 'OPENAI'
);
END;
/
親トピック: DBMS_CLOUD_AIパッケージ
DISABLE_PROFILEプロシージャ
このプロシージャは、現在のデータベースのAIプロファイルを無効にします。この手順では、AIプロファイルのステータスが DISABLED
に変更されます。
構文
DBMS_CLOUD_AI.DISABLE_PROFILE
(
profile_name IN VARCHAR2
);
パラメータ
パラメータ | 説明 |
---|---|
|
AIプロファイルの名前。 このパラメータは必須です。 |
例
BEGIN
DBMS_CLOUD_AI.DISABLE_PROFILE
(
profile_name => 'OPENAI'
);
END;
/
親トピック: DBMS_CLOUD_AIパッケージ
SET_ATTRIBUTEプロシージャ
この手順では、AIプロファイル属性を設定できます。
構文
DBMS_CLOUD_AI.SET_ATTRIBUTE
(
profile_name IN VARCHAR2,
attribute_name IN VARCHAR2,
attribute_value IN CLOB
);
パラメータ
AIプロファイルの属性を設定または変更できるのは、所有者だけです。サポートされている属性のリストは、プロファイル属性を参照してください。
パラメータ | 説明 |
---|---|
|
属性を設定するAIプロファイルの名前。 このパラメータは必須です。 |
|
AIプロファイル属性の名前 このパラメータは必須です。 |
|
プロファイル属性の値。 デフォルト値はNULLです。 |
例
BEGIN
DBMS_CLOUD_AI.SET_ATTRIBUTE
(
profile_name => 'OPENAI',
attribute_name => 'credential_name',
attribute_value => 'OPENAI_CRED_NEW'
);
END;
/
親トピック: DBMS_CLOUD_AIパッケージ
SET_PROFILEプロシージャ
この手順では、現在のセッションのAIプロファイルを設定します。
データベース・セッションのAIプロファイルを設定すると、接頭辞がSELECT AI
のSQL文は自然言語プロンプトとみなされます。AI
接頭辞で指定されたアクションに応じて、AIを使用してレスポンスが生成されます。AI
接頭辞を使用するには、unresolvable-reference.html#GUID-8BEF8CA8-D98D-41FB-A819-6C2F862099DCを参照してください。オプションで、プロファイル属性をオーバーライドしたり、属性をJSON形式で指定することで属性を変更できます。属性の設定については、SET_ATTRIBUTEプロシージャを参照してください。
AIプロファイルの所有者がセッションユーザーである場合にのみ、AIプロファイルを現在のセッションに設定できます。
特定のデータベース・ユーザーのすべてのセッションまたはデータベース内のすべてのユーザー・セッションに対してAIプロファイルを設定するには、特定のユーザーまたはデータベース全体のAFTER LOGON
イベントに対してデータベース・イベント・トリガーを使用することを検討してください。詳細は、「CREATE TRIGGER文」を参照してください。
構文
DBMS_CLOUD_AI.SET_PROFILE
(
profile_name IN VARCHAR2,
);
パラメータ
パラメータ | 説明 |
---|---|
|
現在のセッションのAIプロファイルの名前。 このパラメータは必須です。 |
例
BEGIN
DBMS_CLOUD_AI.SET_PROFILE
(
profile_name => 'OPENAI'
);
END;
/
親トピック: DBMS_CLOUD_AIパッケージ
GENERATEファンクション
showsql
、narrate
、chat
などのサポートされているアクションを実行できます。デフォルトのアクションはshowsql
です。
この関数を使用すると、プロファイル属性の一部またはすべてをオーバーライドすることもできます。
構文
DBMS_CLOUD_AI.GENERATE
(
prompt IN CLOB,
profile_name IN VARCHAR2 DEFAULT NULL,
action IN VARCHAR2 DEFAULT NULL,
attributes IN CLOB DEFAULT NULL
) RETURN CLOB;
パラメータ
パラメータ | 説明 |
---|---|
|
AIを使用して翻訳する自然言語プロンプト。 プロンプトには、接頭辞として このパラメータは必須です。 |
|
AIプロファイルの名前。AIプロファイルがすでに デフォルト値はNULLです。 次の条件が適用されます。
ノート
データベース・アクションの場合、 DBMS_CLOUD_AI.GENERATE にprofile_name 引数を指定するか、PL/SQLスクリプトとして2つのステップ(DBMS_CLOUD_AI.SET_PROFILE およびDBMS_CLOUD_AI.GENERATE )を実行できます。
|
action |
AIを使用して自然プロンプトを翻訳するための処理。サポートされているアクションには、 ノート
このファンクションは、 runsql アクションをサポートしていません。runsql アクションを指定すると、次のエラーが返されます。
|
attributes |
JSON形式で属性を指定して、特定のAIプロファイル属性をオーバーライドします。詳細は、「プロファイル属性」を参照してください。 |
例
次の例は、DBMS_CLOUD_AI.GENERATE
ファンクションで使用できるshowsql
、narrate
およびchat
アクションを示しています。
showsql
アクションの例を次に示します。
SELECT DBMS_CLOUD_AI.GENERATE
(prompt => 'how many customers',
profile_name => 'OPENAI',
action => 'showsql')
FROM dual;
narrate
アクションの例を次に示します。
SELECT DBMS_CLOUD_AI.GENERATE
(prompt => 'how many customers',
profile_name => 'OPENAI',
action => 'narrate')
FROM dual;
chat
アクションの例を次に示します。
SELECT DBMS_CLOUD_AI.GENERATE
(prompt => 'what is oracle autonomous database',
profile_name => 'OPENAI',
action => 'chat')
FROM dual;
親トピック: DBMS_CLOUD_AIパッケージ
プロファイル属性
属性
属性名 | 説明 |
---|---|
azure_deployment_name |
Azure OpenAI Serviceデプロイ済モデルの名前。名前には、英数字、アンダースコア(_)およびハイフン(-)のみを使用できます。名前の末尾にアンダースコア(_)またはハイフン(-)は使用できません。 |
azure_resource_name |
Azure OpenAIサービス・リソースの名前。リソース名には英数字とハイフンのみを含めることができ、ハイフンで開始または終了することはできません。 |
|
AIを使用した自然言語プロンプトの翻訳に使用されるメタデータに列コメントを含めます。 ノート
attribute_value パラメータはCLOB データ型であるため、単一属性を設定する場合、DBMS_CLOUD_AI.SET_ATTRIBUTE プロシージャではブール値は適用されません。
|
|
AIプロバイダAPIにアクセスするための資格証明の名前。 Bearerトークンを使用する資格証明は、ユーザー名としてプロバイダ名を使用し、パスワードとしてBearerトークンを使用して作成できます。 この属性は必須です。CREATE_CREDENTIALプロシージャを参照してください。 |
|
生成ごとに予測するトークンの数を示します。デフォルトは1024です。詳細は、BPEトークンを参照してください。 |
|
翻訳の生成に使用されるAIモデルの名前。 サポートされているモデル:
ノート
このパラメータは、Azure OpenAIサービス・ポータルでデプロイメントを作成するときにモデルが決定されるため、Azureには使用されません。 |
|
SQLへの自然言語変換に適格な所有者名およびオブジェクト名を指定するJSONオブジェクトの配列。特定のユーザーのすべてのオブジェクトを含めるには、nameを省略し、JSONオブジェクトでownerキーのみを指定します。 自然言語からSQLへの変換では、オブジェクト名、オブジェクト所有者、オブジェクト列およびコメントがHTTPSリクエストを使用してAIプロバイダに送信されます。オブジェクト・リストに機密オブジェクト名、列名またはコメントを含むオブジェクトを指定しないでください。 AIプロバイダは、翻訳リクエストで許可されるメタデータのサイズに制限がある場合があります。アプリケーション・ユーザーによる自然言語プロンプトに適したオブジェクトのリストを制限することを検討してください。 フォーマット:
|
|
AIプロファイルのAIプロバイダ。 サポートされているプロバイダ:
この属性は必須です。 |
|
生成されたテキストは、最も早い停止シーケンスの先頭で終了します。シーケンスはテキストに組み込まれます。属性値は、JSON形式の文字列値の有効な配列である必要があります。 |
|
生成モデルからのサンプリングにはランダム性が組み込まれているため、「生成」をクリックするたびに同じプロンプトで異なる出力が生成される場合があります。温度は、ランダム性の度合いを調整するために使用される負でない浮動小数点数です。温度が低いほど、ランダムな世代が少なくなります。詳細は、温度を参照してください。このパラメータは、サポートされているすべてのサービス・プロバイダに適用されます。 |
BEGIN
DBMS_CLOUD_AI.CREATE_PROFILE
(
profile_name => 'COHERE',
attributes =>
'{"provider": "cohere",
"credential_name": "COHERE_CRED",
"object_list": [{"owner": "ADMIN"}],
"max_tokens":512,
"stop_tokens": [";"],
"model": "command-nightly",
"temperature": 0.5,
"comments": true
}');
END;
/
親トピック: DBMS_CLOUD_AIパッケージ