DBMS_CLOUD_AIパッケージ
DBMS_CLOUD_AI
パッケージは、自然言語プロンプトのSQL文への変換を容易にして構成します。
- DBMS_CLOUD_AIサブプログラムの要約
この項では、Autonomous Databaseで提供されるDBMS_CLOUD_AI
サブプログラムについて説明します。
DBMS_CLOUD_AIサブプログラムの概要
この項では、Autonomous Databaseで提供されるDBMS_CLOUD_AI
サブプログラムについて説明します。
サブプログラム | 説明 |
---|---|
このプロシージャは、自然言語プロンプトをSQL文に変換するための新しいAIプロファイルです。 |
|
この手順では、現在のデータベース内のAIプロファイルを無効にします。 |
|
この手順では、既存のAIプロファイルを削除します。 |
|
この手順により、AIプロファイルを現在のデータベースで使用できるようになります。 |
|
このファンクションは、変換にAIを使用してSQL文を生成します。 | |
この関数は、現在のセッションで使用されているプロファイル名を返します。 |
|
このプロシージャは、現在のセッションのプロファイル名とプロファイルの所有者を返します。 |
|
このプロシージャは、AIプロファイル属性を設定します。 |
|
このプロシージャは、現在のデータベースのAIプロファイルを設定します。 |
- CREATE_PROFILEプロシージャ
このプロシージャは、自然言語プロンプトをSQL文に変換するための新しいAIプロファイルを作成します。 - DROP_PROFILEプロシージャ
このプロシージャは、既存のAIプロファイルを削除します。プロファイルが存在しない場合、プロシージャはエラーをスローします。 - ENABLE_PROFILEプロシージャ
このプロシージャは、ユーザーが指定したAIプロファイルを有効にします。このプロシージャは、AIプロファイルのステータスをENABLED
に変更します。 - DISABLE_PROFILEプロシージャ
このプロシージャは、現在のデータベースのAIプロファイルを無効にします。この手順では、AIプロファイルのステータスがDISABLED
に変更されます。 - GET_PROFILEファンクション
このファンクションは、現在のセッションで設定されたAIプロファイル名を返します。 - GET_PROFILEプロシージャ
このプロシージャは、現在のセッションで設定されたAIプロファイル名と所有者を返します。 - SET_ATTRIBUTEプロシージャ
このプロシージャでは、AIプロファイル属性を設定できます。 - SET_PROFILEプロシージャ
このプロシージャは、現在のセッションのAIプロファイルを設定します。 - GENERATEファンクション
このファンクションは、ステートレスな方法でAI変換を提供します。既存のAIプロファイルでは、この関数を使用して、showsql
、narrate
、chat
などのサポートされているアクションを実行できます。デフォルトのアクションはshowsql
です。 - プロファイル属性
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;
/
使用上のノート
force
を使用してプロファイルを削除し、AIプロファイルが存在しない場合はエラーを無視します。
親トピック: 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サブプログラムの要約
GET_PROFILEファンクション
この関数は、現在のセッションで設定されたAIプロファイル名を返します。
構文
DBMS_CLOUD_AI.GET_PROFILE
(
profile_name IN VARCHAR2
);
パラメータ
パラメータ | 説明 |
---|---|
|
現在のセッションのAIプロファイルの名前。 このパラメータは必須です。 |
例
この例では、現在のセッションでプロファイルの名前を表示する方法を示します。
SELECT DBMS_CLOUD_AI.GET_PROFILE
from DUAL;
親トピック: DBMS_CLOUD_AIサブプログラムの要約
GET_PROFILEプロシージャ
このプロシージャは、現在のセッションで設定されたAIプロファイル名と所有者を返します。
構文
DBMS_CLOUD_AI.GET_PROFILE
(
profile_name OUT VARCHAR2,
profile_owner OUT VARCHAR2
);
パラメータ
パラメータ | 説明 |
---|---|
|
現在のセッションのAIプロファイルの名前。 このパラメータは必須です。 |
profile_owner |
現在のセッションのAIプロファイルの所有者を識別します。 |
例
この例では、現在のセッションでプロファイルの名前と所有者を表示する方法を示します。
DECLARE
l_profile_name DBMS_ID;
l_profile_owner DBMS_ID;
BEGIN
DBMS_CLOUD_AI.GET_PROFILE
(profile_name => l_profile_name,
profile_owner => l_profile_owner);
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
接頭辞を使用するには、Select AIの使用例を参照してください。オプションで、プロファイル属性をオーバーライドしたり、属性を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スクリプトとしてDBMS_CLOUD_AI.SET_PROFILE とDBMS_CLOUD_AI.GENERATE の2つのステップを実行できます。
|
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 OpenAI Serviceデプロイ済モデルの名前。英数字、アンダースコア(_)およびハイフン(-)のみを使用できます。名前の最後には、アンダースコア(_)またはハイフン(-)は使用できません。 |
|
Azure OpenAIサービス・リソースの名前。リソース名に使用できるのは英数字とハイフンのみで、ハイフンで開始または終了することはできません。 |
|
AIを使用した自然言語プロンプトの翻訳に使用されるメタデータに列コメントを含めます。 ノート
attribute_value パラメータがCLOB データ型であるため、単一の属性を設定する際、DBMS_CLOUD_AI.SET_ATTRIBUTE プロシージャではブール値は適用されません。
|
|
プロファイルに対して会話履歴が有効かどうかを示す |
|
AIプロバイダAPIにアクセスするための資格証明の名前。 Bearerトークンを使用する資格証明を作成するには、ユーザー名としてプロバイダ名を使用し、パスワードとしてBearerトークンを使用します。 Vaultシークレット資格証明もサポートされています。 原則認証(Azureサービスの原則など)もサポートされています。構成方法の詳細は、Azureサービス・プリンシパルを使用したAzureリソースへのアクセスを参照してください。 この属性は必須です。「CREATE_CREDENTIALプロシージャ」を参照してください。 |
|
世代ごとに予測するトークンの数を示します。デフォルトは1024です。詳細は、「BPEトークン」を参照してください。 |
|
応答の生成に使用されるAIモデルの名前。 サポートされているモデル:
ノート
このパラメータはAzureでは使用されません。モデルは、Azure OpenAIサービス・ポータルでデプロイメントを作成するときに決定されるためです。 |
|
SQLへの自然言語変換の対象となる所有者およびオブジェクト名を指定するJSONオブジェクトの配列。特定のユーザーのすべてのオブジェクトを含めるには、"name"を省略し、JSONオブジェクトで"owner"キーのみを指定します。 自然言語からSQLへの変換では、オブジェクト名、オブジェクト所有者、オブジェクト列およびコメントがHTTPSリクエストを使用してAIプロバイダに送信されます。オブジェクト・リストには、機密オブジェクト名、列名またはコメントを含むオブジェクトを指定しないでください。 AIプロバイダは、翻訳リクエストで許可されるメタデータのサイズに制限がある場合があります。アプリケーション・ユーザーによる自然言語プロンプトに適したオブジェクトのリストを制限することを検討してください。 フォーマット:
OCIデータ・カタログまたはAWS Glueの同期を使用して作成された外部表は、オブジェクト・リストも使用できます。これは、中央のデータ・カタログでメタデータを管理し、AIを使用して自然言語プロンプトを翻訳するためにメタデータを直接使用するのに役立ちます。 |
|
この属性は、指定されたモデルのAPI形式を示します。この属性を使用して、テキスト応答を生成します。この属性は、専用AIクラスタのOCI生成AIチャット・モデルに適用されます。 サポートされている値:
|
|
OCI生成AIサービスをコールするときにアクセスを許可されるコンパートメントのOCIDを指定します。コンパートメントIDには、英数字、ハイフンおよびドットを含めることができます。 デフォルトは、PDBのコンパートメントIDです。 |
|
この属性は、Oracle専用AIホスティング・クラスタのエンドポイントOCIDを示します。エンドポイントIDには、英数字、ハイフンおよびドットを含めることができます。エンドポイントOCIDを検索するには、生成AIでのエンドポイントの詳細の取得を参照してください。 Oracle専用AIクラスタを使用する場合は、ホスティング・クラスタのエンドポイントOCIDを指定する必要があります。 デフォルトでは、エンドポイントIDは空で、モデルは共有インフラストラクチャ上でオンデマンドです。 |
|
この属性は、指定されたモデルのランタイム・タイプを示します。この属性は、専用AIクラスタのOCI生成モデルに適用されます。 使用可能なすべての値は、OCI生成AI runtimeTypeにあります。LlmInferenceRequestリファレンスを参照してください。 サポートされる値は次のとおりです。
|
|
AIプロファイルのAIプロバイダ。 サポートされるプロバイダ:
この属性は必須です。 |
|
この属性は、使用する生成AIクラスタの場所を示します。リージョンには、英数字とハイフン文字を含めることができます。
デフォルトのリージョンは
us-chicago-1 です。
|
|
生成されたテキストは、最も早い停止シーケンスの先頭に終了します。シーケンスはテキストに組み込まれます。属性値は、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;
/
次の例は、OCI生成AIを使用したカスタム・プロファイル属性を示しています。
BEGIN
DBMS_CLOUD_AI.CREATE_PROFILE
(
'GENAI',
'{"provider": "oci",
"credential_name": "GENAI_CRED",
"object_list": [{"owner": "SH", "name": "customers"},
{"owner": "SH", "name": "countries"},
{"owner": "SH", "name": "supplementary_demographics"},
{"owner": "SH", "name": "profits"},
{"owner": "SH", "name": "promotions"},
{"owner": "SH", "name": "products"}],
"oci_compartment_id": "ocid1.compartment.oc1...",
"oci_endpoint_id": "ocid1.generativeaiendpoint.oc1.us-chicago-1....",
"region": "us-chicago-1",
"model": "cohere.command-light",
"oci_runtimetype": "COHERE"
}');
END;
/
親トピック: DBMS_CLOUD_AIサブプログラムの要約