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プロファイルを設定します。 |
|
このプロシージャは、指定されたベクトル・データベースにベクトル索引を作成し、非同期スケジューラ・ジョブを使用してオブジェクト・ストアからデータを移入します。 |
|
このプロシージャは、ベクトル・ストア索引を削除します。通常、ベクトル・ストア索引オブジェクトを削除し、ベクトル・データベースを削除します。 |
|
このプロシージャは、現在のデータベース内のベクトル索引オブジェクトを無効にします。無効にすると、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
です。 - GENERATE_SYNTHETIC_DATAファンクション
このプロシージャを使用して、単一の表、複数の表または完全なスキーマの合成データを生成します。 - プロファイル属性
AIプロファイルの属性は、AIプロファイルの動作を管理および構成するのに役立ちます。一部の属性はオプションであり、デフォルトの値があります。 - CREATE_VECTOR_INDEXプロシージャ
このプロシージャは、指定されたベクトル・データベースにベクトル索引を作成し、非同期スケジューラ・ジョブを使用してオブジェクト・ストアからデータを移入します。 - DROP_VECTOR_INDEXプロシージャ
このプロシージャは、ベクトル・ストア索引を削除します。通常、ベクトル・ストア索引オブジェクトを削除し、ベクトル・ストアを削除します。FALSE
に設定すると、引数include_data
により、ベクトル・ストアを保持しながら、プロシージャによってベクトル・ストア索引オブジェクトのみが削除されます。 - DISABLE_VECTOR_INDEXプロシージャ
このプロシージャは、現在のデータベース内のベクトル索引オブジェクトを無効にします。無効にすると、AIプロファイルはベクトル索引を使用できず、新しいデータがオブジェクト・ストアに追加されてもベクトル・ストアにデータがロードされず、索引に基づく索引付け、検索または問合せは実行されません。 - ENABLE_VECTOR_INDEXプロシージャ
このプロシージャは、以前に無効にしたベクトル索引オブジェクトを有効またはアクティブ化します。一般に、ベクトル索引を作成すると、デフォルトでは、AIプロファイルがそれを使用して索引付けおよび検索を実行できるように有効化されます。 - UPDATE_VECTOR_INDEXプロシージャ
このプロシージャは、ベクトル索引属性の指定値を使用して既存のベクトル・ストア索引を更新します。 - ベクトル索引属性
ベクトル索引の属性は、ベクトル索引の動作を管理および構成するのに役立ちます。必要に応じて、カスタム索引属性を追加できます。一部の属性はオプションであり、デフォルトの値があります。
親トピック: 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'),
status => 'enabled',
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サブプログラムの要約
GENERATE_SYNTHETIC_DATAファンクション
1つの表の合成データを生成する構文を次に示します。
構文
DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA
(
profile_name IN VARCHAR2,
object_name IN DBMS_ID,
owner_name IN DBMS_ID,
record_count IN NUMBER,
user_prompt IN CLOB DEFAULT NULL,
params IN CLOB DEFAULT NULL
);
次に、複数の表の合成データを生成する構文を示します。
DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
profile_name IN VARCHAR2,
object_list IN CLOB,
params IN CLOB DEFAULT NULL
);
パラメータ
パラメータ | 必須 | 説明 |
---|---|---|
|
はい |
必要なLLMサービス情報を含むAIプロファイル。これは、CREATE_PROFILEプロシージャで作成できます。 |
|
はい | 合成データを移入する表名を指定します。
|
owner_name |
いいえ |
参照オブジェクトを所有するデータベース・ユーザーを指定します。特定の所有者を指定しない場合、プロシージャはデフォルトで、その所有者を実行しているユーザーのスキーマを使用します。 |
record_count |
いいえ |
合成的に生成されるレコードの数。 |
|
いいえ | ユーザーが合成データを生成するために言及できる追加情報。たとえば、release_date 列を含むMOVIE という表のレコードを生成する場合、user_prompt は次のようになります。
映画のリリース日は2019年にする必要があります |
|
いいえ |
APIの動作を変更するために、JSONオブジェクト文字列形式で提供されるオプションの属性。オプションのパラメータを参照してください。 |
|
はい | このパラメータは、複数の表の合成データを生成する場合に使用します。このパラメータは、表オブジェクト情報とその引数を取り、単一の表に指定されたものと同じ引数を含みます。object_listパラメータを参照してください。 |
オプションのパラメータ
パラメータ | 値データ型 | 値 | 説明 |
---|---|---|---|
|
数値 |
|
データ生成のLLMをガイドするサンプルとして使用する表の行数を指定します。 値0は、サンプル行が使用されないことを意味します。デフォルト値は |
|
Boolean |
|
表統計情報の使用を有効または無効にします。 デフォルト値は |
|
文字列 |
有効な値:
|
合成データを生成するためにLLMに送信されるパラレル・リクエストの数を定義する優先度値を割り当てます。優先度が高いタスクは、より多くのデータベース・リソースを消費し、より速く完了します。 デフォルト値は
合成データ生成に使用される同時パラレル・プロセスの最大数は64に制限されています。 |
|
Boolean |
|
データ生成をガイドするためにLLMへのコメントの送信を有効または無効にします。 デフォルト値は |
object_listパラメータ
パラメータ | 値データ型 | 必須 | 説明 |
---|---|---|---|
|
文字列 |
はい |
参照されるオブジェクトを所有するデータベース・ユーザーを指定します。特定の所有者を指定しない場合、プロシージャはデフォルトで、その所有者を実行しているユーザーのスキーマを使用します。 |
|
文字列 |
いいえ |
合成データを移入する表名を指定します。it.The表を使用するユーザーには、表オブジェクトに対するSELECT 権限およびINSERT 権限が空であるか、レコードが含まれている必要があります。
|
|
数値 |
いいえ |
合成的に生成されるレコードの数。0より大きい数値を指定してください。
|
|
数値 |
いいえ |
合成的に生成されるレコード数の割合。0より大きい数値を指定してください。 メタデータ・クローン・データベースでは、統計を含む表メタデータが保持され、
record_count_percentage パラメータを使用する場合、表の最終レコード数は、次のように計算されます。
|
|
文字列 | いいえ | 「パラメータ」のuser_prompt と同様です。user_prompt は、特定の表オブジェクトに関連付けられます。
|
サンプル
次の例は、1つの表および複数の表の合成データを生成するためのDBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA
関数を示しています。完全な例およびその他の例については、例: 合成データの生成を参照してください。
BEGIN
DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
profile_name => 'GENAI',
object_name => 'Director',
owner_name => 'ADB_USER',
record_count => 5
);
END;
/
PL/SQL procedure successfully completed.
BEGIN
DBMS_CLOUD_AI.GENERATE_SYNTHETIC_DATA(
profile_name => 'GENAI',
object_list => '[{"owner": "ADB_USER", "name": "Director","record_count":5},
{"owner": "ADB_USER", "name": "Movie_Actor","record_count":5},
{"owner": "ADB_USER", "name": "Actor","record_count":10},
{"owner": "ADB_USER", "name": "Movie","record_count":5,"user_prompt":"all movies are released in 2009"}]'
);
END;
/
PL/SQL procedure successfully completed.
親トピック: DBMS_CLOUD_AIサブプログラムの要約
プロファイル属性
属性
属性名 | 説明 |
---|---|
|
Azure OpenAI Serviceデプロイ済モデルの名前。英数字、アンダースコア(_)およびハイフン(-)のみを使用できます。名前の最後には、アンダースコア(_)またはハイフン(-)は使用できません。 |
|
Azure OpenAIデプロイ済の埋込みモデルの名前。 名前に使用できるのは、英数字、アンダースコアおよびハイフンのみです。名前の先頭または末尾にハイフンまたはアンダースコアは使用できません。 |
|
Azure OpenAIサービス・リソースの名前。リソース名に使用できるのは英数字とハイフンのみで、ハイフンで開始または終了することはできません。 |
|
AIを使用した自然言語プロンプトの翻訳に使用されるメタデータに列コメントを含めます。 ノート
attribute_value パラメータがCLOB データ型であるため、単一の属性を設定する場合、DBMS_CLOUD_AI.SET_ATTRIBUTE プロシージャではブール値は適用されません。
|
|
プロファイルに対して会話履歴が有効かどうかを示す |
|
AIプロバイダAPIにアクセスするための資格証明の名前。 Bearerトークンを使用する資格証明を作成するには、ユーザー名としてプロバイダ名を使用し、パスワードとしてBearerトークンを使用します。 Vaultシークレット資格証明もサポートされています。 プリンシパル認証(Azureサービス・プリンシパルなど)もサポートされています。構成方法の詳細は、Azureサービス・プリンシパルを使用したAzureリソースへのアクセスを参照してください。 この属性は必須です。CREATE_CREDENTIALプロシージャを参照してください。 |
|
AIプロファイルで定義された埋込みモデル。埋込みモデルのデフォルト値でサポートされているAIプロバイダを次に示します。
ノート
embedding_model パラメータは、AnthropicおよびHugging Faceには適用されません。
|
|
世代ごとに予測するトークンの数を示します。デフォルトは1024です。詳細は、トークンとトークン化子を参照してください。 |
|
応答の生成に使用されるAIモデルの名前。 サポートされているモデル:
ノート
このパラメータは、Azure OpenAIサービス・ポータルでデプロイメントを作成するときにモデルが決定されるため、Azureでは使用されません。 |
|
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形式の文字列値の有効な配列である必要があります。 |
|
「テキストの生成」モデルからのサンプリングにはランダム性が組み込まれているため、「生成」をクリックするたびに同じプロンプトで異なる出力が生成される場合があります。温度は、乱数を調整するために使用される負でない浮動小数点数です。温度が低いと、ランダムな世代が少なくなります。詳細は、温度を参照してください。このパラメータは、サポートされているすべてのサービス・プロバイダに適用されます。 |
|
ベクトル・インデックスの名前。ベクトル索引名は、Oracle SQL識別子のネーミング・ルールに従う必要があります。ベクトル・ストア名の最大長は125文字です。 |
BEGIN
DBMS_CLOUD_AI.CREATE_PROFILE
(
profile_name => 'COHERE',
attributes =>
'{"provider": "cohere",
"credential_name": "COHERE_CRED",
"object_list": [{"owner": "ADB_USER"}],
"max_tokens":512,
"stop_tokens": [";"],
"model": "command-nightly",
"temperature": 0.5,
"comments": true
}');
END;
/
次の例は、OCI生成AIを使用したカスタム・プロファイル属性を示しています。
BEGIN
DBMS_CLOUD_AI.CREATE_PROFILE
(
profile_name => 'GENAI',
attributes => '{"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サブプログラムの要約
CREATE_VECTOR_INDEXプロシージャ
このプロシージャは、指定されたベクトル・データベースにベクトル索引を作成し、非同期スケジューラ・ジョブを使用してオブジェクト・ストアからデータを移入します。
構文
PROCEDURE CREATE_VECTOR_INDEX(
index_name IN VARCHAR2,
attributes IN CLOB DEFAULT NULL,
status IN VARCHAR2 DEFAULT NULL,
description IN CLOB DEFAULT NULL
);
パラメータ
パラメータ | 説明 |
---|---|
|
ベクトル・インデックスの名前。ベクトル索引名は、Oracle SQL識別子のネーミング・ルールに従う必要があります。ベクトル・ストア名の最大長は125文字です。 これは必須パラメータです。 |
|
JSONのベクトル索引のカスタム属性。構成可能なパラメータのリストを表示するには、「ベクトル索引属性」を参照してください。 デフォルト値はNULLです。 |
status |
ベクトル・インデックスのステータス。可能な値は次のとおりです:
デフォルトの値は「無効」です。 |
|
ベクトル・インデックスの説明。 デフォルト値はNULLです。 |
例
次の例では、ベクトル索引を作成し、属性をJSONパラメータとして構成する方法を示します。
BEGIN
DBMS_CLOUD_AI.CREATE_VECTOR_INDEX
(
index_name => 'MY_INDEX'
attributes => JSON_OBJECT(
'vector_db_provider' value 'oracle',
'vector_table_name' value 'oracle_mycollection',
'vector_db_credential_name' value 'VS_CRED',
'profile_name' value 'OCIGENAI',
'location' value
'https://objectstorage.us-phoenix-1.' ||
'oraclecloud.com/n/mynamespace/b/mybucket',
'object_store_credential_name' value 'OS_CRED',
'chunk_size' value 2048,
'chunk_overlap' value 256,
'refresh_rate' value 720)
);
END;
/
親トピック: DBMS_CLOUD_AIサブプログラムの要約
DROP_VECTOR_INDEXプロシージャ
このプロシージャは、ベクトル・ストア索引を削除します。通常、ベクトル・ストア索引オブジェクトを削除し、ベクトル・ストアを削除します。FALSE
に設定すると、引数include_data
により、ベクトル・ストアを保持しながら、プロシージャによってベクトル・ストア索引オブジェクトのみが削除されます。
構文
PROCEDURE DROP_VECTOR_INDEX(
index_name IN VARCHAR2,
include_data IN BOOLEAN DEFAULT TRUE,
force IN BOOLEAN DEFAULT FALSE
);
パラメータ
パラメータ | 説明 |
---|---|
|
ベクトル・インデックスの名前。ベクトル索引名は、Oracle SQL識別子のネーミング・ルールに従う必要があります。ベクトル・ストア名の最大長は125文字です。 これは必須パラメータです。 |
|
ベクトル索引オブジェクトとともに顧客のベクトル・ストアとベクトル索引の両方を削除するかどうかを示します。 使用可能な値:
デフォルト値は |
force |
ベクトル索引が存在しない場合に発生するエラーを無視するかどうかを示します。 使用可能な値:
デフォルト値は |
例
BEGIN
DBMS_CLOUD_AI.DROP_VECTOR_INDEX(
index_name => 'MY_INDEX',
include_data => FALSE,
force => TRUE
);
END;
/
親トピック: DBMS_CLOUD_AIサブプログラムの要約
DISABLE_VECTOR_INDEXプロシージャ
このプロシージャは、現在のデータベース内のベクトル索引オブジェクトを無効にします。無効にすると、AIプロファイルはベクトル索引を使用できず、新しいデータがオブジェクト・ストアに追加されてもベクトル・ストアにデータがロードされず、索引に基づく索引付け、検索または問合せは実行されません。
構文
DBMS_CLOUD_AI.DISABLE_VECTOR_INDEX
(
index_name IN VARCHAR2
);
パラメータ
パラメータ | 説明 |
---|---|
|
ベクトル・インデックスの名前。ベクトル索引名は、Oracle SQL識別子のネーミング・ルールに従う必要があります。ベクトル・ストア名の最大長は125文字です。 これは必須パラメータです。 |
例
ベクトル索引は、ベクトル索引の名前を指定することで無効にできます。
BEGIN
DBMS_CLOUD_AI.DISABLE_VECTOR_INDEX
(index_name => 'MY_INDEX');
END;
/
親トピック: DBMS_CLOUD_AIサブプログラムの要約
ENABLE_VECTOR_INDEXプロシージャ
このプロシージャは、以前に無効にしたベクトル索引オブジェクトを有効またはアクティブ化します。一般に、ベクトル索引を作成すると、デフォルトでは、AIプロファイルがそれを使用して索引付けおよび検索を実行できるように有効化されます。
有効にすると、ベクトル索引によって、AIプロファイルは、ユーザー指定のリフレッシュ・レートでオブジェクト・ストアからベクトル・ストアに新しいデータをロードするために使用できます。refresh_rate
パラメータは、JSONオブジェクト・リストを使用して指定できます。JSON属性を構成するには、「ベクトル索引属性」を参照してください。
構文
DBMS_CLOUD_AI.ENABLE_VECTOR_INDEX
(
index_name IN VARCHAR2
);
パラメータ
パラメータ | 説明 |
---|---|
|
ベクトル・インデックスの名前。ベクトル索引名は、Oracle SQL識別子のネーミング・ルールに従う必要があります。ベクトル・ストア名の最大長は125文字です。 これは必須パラメータです。 |
例
ベクトル索引は、次のようにベクトル索引名を指定することで有効化またはアクティブ化できます。
BEGIN
DBMS_CLOUD_AI.ENABLE_VECTOR_INDEX
(index_name => 'MY_INDEX');
END;
/
親トピック: DBMS_CLOUD_AIサブプログラムの要約
UPDATE_VECTOR_INDEXプロシージャ
このプロシージャは、ベクトル索引属性に指定された値で既存のベクトル・ストア索引を更新します。
構文
DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX
(
index_name IN VARCHAR2,
attributes IN CLOB
);
パラメータ
パラメータ | 説明 |
---|---|
|
ベクトル・インデックスの名前。ベクトル索引名は、Oracle SQL識別子のネーミング・ルールに従う必要があります。ベクトル・ストア名の最大長は125文字です。 これは必須パラメータです。 |
|
次の属性は変更できません。
これは必須パラメータです。 |
attribute_value |
カスタム デフォルト値はNULLです。 |
例
BEGIN
DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX
(
index_name => 'MY_INDEX',
attribute_name => 'vector_db_credential_name',
attribute_value => 'NEW_CRED'
);
END;
/
親トピック: DBMS_CLOUD_AIサブプログラムの要約
ベクトル・インデックス属性
属性
属性名 | 値 | 必須 | 説明 |
---|---|---|---|
chunk_size |
1024 (デフォルト)
|
いいえ |
入力データのチャンク化のテキスト・サイズ。 テキスト・データの場合、これは文字数を意味します。 |
chunk_overlap |
128 (デフォルト)
|
いいえ |
隣接するテキストのチャンク間で重複する文字の量を指定します。この属性は、セグメント間の重複を許可することで、テキスト処理のコンテキストの継続性と正確性を確保するのに役立ちます。これにより、チャンク境界でのコンテキスト情報の損失を防ぐことができます。 |
|
NA | はい |
オブジェクト・ストアの場所。この場所のファイルは、htmlやtxtなどのテキスト・ファイルである必要があります。 |
|
5 (デフォルト)
|
いいえ |
ベクトル検索問合せで返される結果の最大数を指定し、出力サイズを制御して、データ取得操作の効率を向上させます。 |
|
NA | はい |
オブジェクト・ストレージにアクセスするための資格証明の名前を指定します。 |
|
<vector_index_name>$VECPIPELINE |
いいえ |
ベクトル索引データ・ロード・パイプラインの名前を指定します。この属性はベクトル索引に対して自動的に設定されるため、指定や変更はできません。パイプライン名を使用すると、パイプラインのモニターおよびトラブルシューティングを使用してベクトル索引データ・ロードをモニターできます。 |
|
NA | はい |
ソース・データおよびユーザー・プロンプトの埋込みに使用されるAIプロファイルの名前。 |
|
1440 分(デフォルト)
|
いいえ |
ベクトル・ストア内のデータの更新間隔。単位は分です。 |
|
0 (デフォルト)
|
いいえ |
2つの品目が一致とみなされるために必要な類似度の最小レベルを定義します。関連性を確保するために、照合アルゴリズムの結果をフィルタリングするのに役立ちます。 |
|
Oracle 23aiの有効な値:
|
いいえ |
データベース内のベクトルの比較に使用される距離計算のタイプを指定し、アイテム間の類似度を定量化する方法を決定します。 |
|
|
はい |
ベクトル・ストアとして管理および機能するプロバイダ名を指定します。 |
|
NA | いいえ |
ベクトルストア内の各ベクトルの要素数を指定し、データ表現のサイズと構造を定義します。 |
|
|
No |
ベクトル埋込みおよびチャンク・データを格納する表またはコレクションの名前を指定します。 |
BEGIN
DBMS_CLOUD_AI.CREATE_VECTOR_INDEX
(
index_name => 'MY_INDEX',
attributes => '{"vector_db_provider": "oracle",
"location": "https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/my_namespace/my_bucket/my_data_folder",
"object_storage_credential_name": "OCI_CRED",
"profile_name": "OPENAI_ORACLE",
"vector_dimension": 1024,
"vector_distance_metric": "cosine",
"chunk_overlap":128,
"chunk_size":1024
}');
END;
/
/
親トピック: DBMS_CLOUD_AIサブプログラムの要約