DBMS_CLOUD_AIパッケージ
DBMS_CLOUD_AI
パッケージは、SQL文の生成、実行、説明を行うための自然言語プロンプトの翻訳を容易におよび構成します。 また、LLMとのチャットを含む、検索拡張生成および自然言語ベースの対話が可能になります。
- 「DBMS_CLOUD_AI概要」
DBMS_CLOUD_LINK
パッケージの使用について説明します。 - 「DBMS_CLOUD_AIサブプログラムの概要」
この項では、Autonomous Databaseに付属のDBMS_CLOUD_AI
サブプログラムについて説明します。
DBMS_CLOUD_AI概要
DBMS_CLOUD_LINK
パッケージの使用について説明します。
DBMS_CLOUD_AI
パッケージを使用して、AIプロファイルを作成し、Large Language Model (LLM)にアクセスできるように構成します。 現在のデータベース・ユーザー・セッションでAIプロファイルを設定して、SQLの生成、実行、説明などのタスクを実行します。 さらに、LLMとのチャットを含む、検索拡張生成および自然言語ベースの対話を有効にします。
サポートされているプラットフォームおよびLLMの詳細は、「Select AIについて」を参照してください。
親トピック: DBMS_CLOUD_AIパッケージ
DBMS_CLOUD_AIサブプログラムの概要
この項では、Autonomous Databaseで提供されるDBMS_CLOUD_AI
サブプログラムについて説明します。
サブプログラム | 説明 |
---|---|
このプロシージャは、自然言語プロンプトをSQL文に変換するための新しいAIプロファイルを作成します。 |
|
構成可能な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;
/
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サブプログラムの概要
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;
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の使用例」および「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スクリプトとして2つのステップを実行できます: DBMS_CLOUD_AI.SET_PROFILE およびDBMS_CLOUD_AI.GENERATE 。
|
action |
AIを使用して自然プロンプトを翻訳するための処理。 サポートされているアクションには、 ノート: このファンクションは、runsql アクションをサポートしていません。 runsql アクションを指定すると、次のエラーが返されます:
|
attributes |
JSON形式で属性を指定して、特定のAIプロファイル属性をオーバーライドします。 詳細は、「プロファイル属性」を参照してください。 |
例
次の例は、DBMS_CLOUD_AI.GENERATE
ファンクションで使用できるshowsql
、narrate
およびchat
アクションを示しています。 詳細は、「AIキーワードを使用したプロンプトの入力」も参照してください。
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
を使用して、ファンクションを実行できます。 次の例では、入力パラメータとしてai_prompt
、profile_name
およびaction
を取得し、DBMS_CLOUD_AI.GENERATE
をコール
create or replace FUNCTION call_select_ai (ai_prompt IN VARCHAR2,
ai_profile IN VARCHAR2,
ai_action IN VARCHAR2) -- valid for 'chat', 'narrate', 'showsql'
RETURN CLOB AS sai_resp clob;
BEGIN
sai_resp := DBMS_CLOUD_AI.GENERATE(prompt => ai_prompt,
profile_name => ai_profile,
action => ai_action);
return(sai_resp);
END call_select_ai;
親トピック: 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オブジェクト文字列形式で提供されるオプションの属性。 「オプションのパラメータ」を参照してください。 |
|
あり | このパラメータは、複数の表に対して合成データを生成する場合に使用します。 このパラメータは、表オブジェクト情報とその引数を取り、1つの表に指定されているものと同じ引数を含みます。 「object_listパラメータ」を参照してください。 |
オプション・パラメータ
パラメータ | 値データ型 | 値 | 説明 |
---|---|---|---|
|
数値 |
|
データ生成のLLMをガイドするサンプルとして使用する表の行数を指定します。 値0は、サンプル行が使用されないことを意味します。 デフォルト値は |
|
Boolean |
|
表統計情報の使用を有効または無効にします。 デフォルト値は、 |
|
String |
有効な値:
|
合成データを生成するためにLLMに送信されるパラレル・リクエストの数を定義する優先度値を割り当てます。 優先度が高いタスクは、より多くのデータベース・リソースを消費し、より高速に完了します。 デフォルト値は
合成データ生成に使用される同時並列プロセスの最大数は64に制限されています。 |
|
Boolean |
|
データ生成をガイドするためにLLMへのコメントの送信を有効または無効にします。 デフォルト値は、 |
object_listパラメータ
パラメータ | 値データ型 | 必須 | 説明 |
---|---|---|---|
|
String |
あり |
参照されるオブジェクトを所有するデータベース・ユーザーを指定します。 特定の所有者を指定しない場合、プロシージャはデフォルトで、その所有者を実行しているユーザーのスキーマを使用します。 |
|
String |
いいえ |
合成データを移入する表名を指定します。 表オブジェクトに対するSELECT およびINSERT 権限は、それを使用するユーザーに必要です。表が空か、レコードが含まれています。
|
|
数値 |
いいえ |
合成的に生成されるレコードの数。 0より大きい数値を指定してください。
|
|
数値 |
いいえ |
合成的に生成されるレコード数の割合。 0より大きい数値を指定してください。 メタデータ・クローン・データベースでは、統計を含む表メタデータが保持され、
record_count_percentage パラメータを使用する場合、表の最終レコード数は、次のように計算されます:
|
|
String | いいえ | 「パラメータ」の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 Serviceリソースの名前。 リソース名には英数字とハイフンのみを含めることができ、ハイフンで開始または終了することはできません。 |
|
AIを使用した自然言語プロンプトの翻訳に使用されるメタデータに列コメントを含めます。 ノート: DBMS_CLOUD_AI.SET_ATTRIBUTE プロシージャでは、1つの属性を設定するときに、attribute_value パラメータがCLOB データ型であるため、attribute_value パラメータを文字列('true'または'false')として指定します。
|
|
プロファイルで会話履歴が有効かどうかを示す |
|
AIプロバイダAPIにアクセスするための資格証明の名前。 bearerトークンを使用する資格証明は、ユーザー名としてプロバイダ名を使用し、パスワードとしてbearerトークンを使用して作成できます。 Vaultシークレット資格証明もサポートされています。 プリンシパル認証(Azureサービス・プリンシパルなど)もサポートされています。 構成方法の詳細は、「Azureサービス・プリンシパルを使用したAzureリソースへのアクセス」を参照してください。 これは必須属性です。 「CREATE_CREDENTIALプロシージャ」を参照してください。 |
|
AIプロファイルで定義された埋込みモデル。 埋込みモデルのデフォルト値がサポートされているAIプロバイダを次に示します:
ノート: embedding_model パラメータは、AnthropicおよびHugging Faceには適用できません。
|
|
生成ごとに予測するトークンの数を示します。 デフォルトは1024です。 詳細は、「トークンとトークン化」を参照してください。 |
|
レスポンスの生成に使用されるAIモデルの名前。 「AIプロバイダとLLMの選択」を参照し、モデル名を指定します。 ノート:
|
|
SQLへの自然言語変換に適格な所有者名およびオブジェクト名を指定するJSONオブジェクトの配列。 特定のユーザーのすべてのオブジェクトを含めるには、nameを省略し、JSONオブジェクトでownerキーのみを指定します。 次のタイプのオブジェクトを使用できます:
自然言語からSQLへの変換では、オブジェクト名、オブジェクト所有者、オブジェクト列およびコメントがHTTPSリクエストを使用してAIプロバイダに送信されます。 オブジェクト・リストに機密オブジェクト名、列名またはコメントを含むオブジェクトを指定しないでください。 AIプロバイダは、翻訳リクエストで許可されるメタデータのサイズに制限がある場合があります。 アプリケーション・ユーザーによる自然言語プロンプトに適したオブジェクトのリストを制限することを検討してください。 書式:
「OCIデータ・カタログまたはAWS Glue」の同期を使用して作成された外部表は、オブジェクト・リストを使用することもできます。 これは、中央のデータ・カタログでメタデータを管理し、AIを使用して自然言語プロンプトを翻訳するためにメタデータを直接使用するのに役立ちます。 |
|
APIがデータの送受信を期待する形式を指定します。 テキスト・レスポンスを生成するには、この属性を使用します。 この属性は、専用AIクラスタ内のOCI生成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',
'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;
/
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 (デフォルト)
|
いいえ |
隣接するテキストのチャンク間で重複する文字の量を指定します。 この属性は、セグメント間の重複を許可することで、テキスト処理のコンテキストの継続性と正確性を確保するのに役立ちます。これにより、チャンク境界でのコンテキスト情報の損失を防ぐことができます。 |
|
該当なし | あり |
オブジェクト・ストアのロケーション。 このロケーションのファイルは、PDF、DOC、JSON、XML、HTMLなどの形式のドキュメントです。 「サポートされているドキュメント形式」を参照してください。 |
|
5 (デフォルト)
|
いいえ |
ベクトル検索問合せで返される結果の最大数を指定し、出力サイズを制御して、データ取得操作の効率を向上させます。 |
|
該当なし | あり |
オブジェクト・ストレージにアクセスするための資格証明の名前を指定します。 |
|
<vector_index_name>$VECPIPELINE |
いいえ |
ベクトル索引データ・ロード・パイプラインの名前を指定します。 この属性はベクトル索引に対して自動的に設定されるため、指定や変更はできません。 パイプライン名を使用すると、「パイプラインのモニターおよびトラブルシューティング」を使用してベクトル索引データ・ロードをモニターできます。 |
|
該当なし | あり |
ソース・データおよびユーザー・プロンプトの埋込みに使用されるAIプロファイルの名前。 |
|
1440 分(デフォルト)
|
いいえ |
ベクトル・ストア内のデータの更新間隔。 単位は分です。 |
|
0 (デフォルト)
|
いいえ |
2つの品目が一致とみなされるために必要な類似度の最小レベルを定義します。関連性を確保するために、照合アルゴリズムの結果をフィルタリングするのに役立ちます。 |
|
説明で指定された値の1つに対応する文字列。 |
いいえ |
データベース内のベクトルの比較に使用される距離計算のタイプを指定し、アイテム間の類似度を定量化する方法を決定します。 Oracle 23aiの有効な値:
|
|
|
あり |
ベクトル・ストアとして管理および動作するプロバイダ名を指定します。 |
|
該当なし | いいえ |
ベクトル・ストア内の各ベクトルの要素数を指定し、データ表現のサイズと構造を定義します。 |
|
|
いいえ |
ベクトル埋込みおよびチャンク・データを格納する表またはコレクションの名前を指定します。 |
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サブプログラムの概要