DBMS_CLOUD_AIパッケージ
Select AIを使用したDBMS_CLOUD_AI
パッケージは、SQL文を生成、実行および説明するための自然言語プロンプトの翻訳を容易にして構成します。また、LLMとのチャットなど、検索拡張生成および自然言語ベースのインタラクションを可能にします。
- DBMS_CLOUD_AIの概要
DBMS_CLOUD_AI
パッケージの使用について説明します。 - DBMS_CLOUD_AIサブプログラムの概要
この項では、Autonomous Databaseで提供されるDBMS_CLOUD_AI
サブプログラムについて説明します。
DBMS_CLOUD_AI概要
DBMS_CLOUD_AI
パッケージの使用について説明します。
DBMS_CLOUD_AI
パッケージを使用して、AIプロファイルを作成し、大規模言語モデル(LLM)にアクセスするように構成します。SQLの生成、実行、説明などのタスクを実行するために、現在のデータベース・ユーザー・セッションでAIプロファイルを設定します。さらに、LLMとのチャットなど、取得拡張生成および自然言語ベースのインタラクションを有効にします。
サポートされているプラットフォームおよびLLMの詳細は、Select AIについてを参照してください。
親トピック: DBMS_CLOUD_AIパッケージ
DBMS_CLOUD_AIサブプログラムの要約
この項では、Autonomous Databaseで提供されるDBMS_CLOUD_AI
サブプログラムを説明します。
サブプログラム | 摘要 |
---|---|
このプロシージャは、自然言語プロンプトをSQL文に変換するための新しいAIプロファイルを作成します。 |
|
構成可能なAIプロファイル属性を提供します。 |
|
この手順では、現在のセッションでアクティブなAIプロファイルをクリアします。 |
|
この手順では、現在のデータベースのAIプロファイルを無効にします。 |
|
この手順では、既存のAIプロファイルを削除します。 |
|
この手順により、AIプロファイルを現在のデータベースで使用できます。 |
|
この機能を使用すると、既存のプロファイルでステートレスな方法で Select AIを使用できます。 | |
この関数は合成データを生成します。 |
|
この関数は、現在のセッションで使用されるプロファイル名を返します。 |
|
このプロシージャは、AIプロファイル属性を設定します。 |
|
このプロシージャは、現在のデータベースのAIプロファイルを設定します。 |
|
この手順を使用して、LLMへのデータの送信を有効にします。 |
|
この手順を使用して、LLMへのデータの送信を無効にします。 |
|
この手順を使用して、Select AIにフィードバックを提供することで、問合せ生成の精度を向上させる可能性があります。 |
|
これは、 |
|
この手順は、会話の作成に役立ちます。 |
|
この関数は、会話を作成し、他のプロシージャで会話IDを使用するのに役立ちます。 |
|
会話属性を使用して、会話をカスタマイズします。 |
|
このプロシージャは、ユーザー指定のパラメータを使用して既存のプロシージャを更新します。 |
|
このプロシージャは、現在のセッションでの会話サポートを設定します。 |
|
このプロシージャは、 |
|
このプロシージャは、現在のセッションで設定された |
|
このプロシージャは、特定のプロンプトを削除します。 |
|
このプロシージャは、会話全体とそのメタデータを削除します。 |
|
このファンクションは、パラメータに基づいてコンテンツを要約します。 |
|
要約属性を使用して、要約生成をカスタマイズします。 |
|
このプロシージャは、指定されたベクトル・データベースにベクトル索引を作成し、非同期スケジューラ・ジョブを使用してオブジェクト・ストアのデータを移入します。 |
|
このプロシージャは、ベクトル・ストア索引を削除します。通常、ベクトル・ストア索引オブジェクトを削除し、ベクトル・データベースを削除します。 |
|
このプロシージャは、現在のデータベースのベクトル索引オブジェクトを無効にします。無効にすると、AIプロファイルはベクトルインデックスを使用できず、システムはベクトルストアにデータをロードしません。 |
|
このプロシージャは、以前に無効にしたベクトル索引オブジェクトを有効またはアクティブ化します。 |
|
このプロシージャは、ベクトル索引属性の指定された値で既存のベクトル・ストア索引を更新します。 |
|
構成可能なベクトル索引プロファイル属性を提供します。 |
- CREATE_PROFILEプロシージャ
このプロシージャは、自然言語プロンプトをSQL文に変換するための新しいAIプロファイルを作成します。 - プロファイル属性
AIプロファイルの属性は、AIプロファイルの動作の管理および構成に役立ちます。属性の中には、オプションであり、デフォルト値を持つものがあります。 - CLEAR_PROFILEプロシージャ
このプロシージャは、現在のセッションで設定されたアクティブなAIプロファイルをクリアします。アクティブなプロファイルをクリアすると、SQLコマンドラインでSELECT AI
を使用できなくなり、DBMS_CLOUD_AI.GENERATE
をコールするときに設定AIプロファイルを使用できなくなります。この手順では、プロファイルは削除されません。 - DROP_PROFILEプロシージャ
このプロシージャは、既存のAIプロファイルを削除します。プロファイルが存在しない場合、プロシージャはエラーをスローします。 - ENABLE_PROFILEプロシージャ
このプロシージャは、ユーザーが指定したAIプロファイルを有効にします。このプロシージャは、AIプロファイルのステータスをENABLED
に変更します。 - DISABLE_PROFILEプロシージャ
このプロシージャは、現在のデータベースのAIプロファイルを無効にします。この手順では、AIプロファイルのステータスがDISABLED
に変更されます。 - FEEDBACKプロシージャ
このプロシージャを使用すると、Select AIにフィードバックを提供して、問合せ生成の精度を向上させることができます。正または負のフィードバック、およびテキスト・コメントや改訂されたSQL問合せを提供することもできます。 - FEEDBACKのベクトル・インデックス
Select AIでは、フィードバック機能を初めて使用するときに、デフォルト属性を使用して<profile_name>_FEEDBACK_VECINDEX
という名前のデフォルトのベクトル・インデックスが作成されます。 - GET_PROFILEファンクション
このファンクションは、現在のセッションで設定されたAIプロファイル名を返します。 - SET_ATTRIBUTEプロシージャ
このプロシージャを使用すると、AIプロファイル属性を設定できます。様々なタイプの属性値を受け入れるために、オーバーロードされています。 - GENERATEファンクション
このファンクションは、ステートレスな方法でAI変換を提供します。既存のAIプロファイルでは、この関数を使用して、showsql
、runsql
、explainsql
、narrate
、summarize
、chat
などのサポートされているアクションを実行できます。デフォルトのアクションはshowsql
です。 - SET_PROFILEプロシージャ
このプロシージャは、現在のセッションのAIプロファイルを設定します。 - CREATE_CONVERSATIONプロシージャ
このプロシージャを使用すると、会話を作成し、プロシージャ内でconversation_id
を自動的に設定できます。 - CREATE_CONVERSATIONファンクション
このファンクションは、会話を作成し、DBMS_CLOUD_AI.SET_CONVERSATION_ID
やDBMS_CLOUD_AI.GENERATE
などの他のプロシージャまたはファンクションで使用できるconversation_id
を返します。 - CREATE_CONVERSATION属性
これらの属性は、会話コンテキストを管理します。これには、会話コンテキストを保持する期間、格納または表示するレスポンスを含むプロンプトの数、参照用のタイトルや説明などのメタデータが含まれます。属性の中には、オプションであり、デフォルト値を持つものがあります。 - UPDATE_CONVERSATIONプロシージャ
このプロシージャは、会話属性の指定値で既存の会話を更新します。 - SET_CONVERSATION_IDプロシージャ
このプロシージャは、現在の会話を指定されたIDに設定します。後続のプロンプトには、会話の構成済属性に基づく既存の会話プロンプトが含まれます。 - GET_CONVERSATION_IDファンクション
このファンクションは、DBMS_CLOUD_AI.SET_CONVERSATION_ID
プロシージャまたはDBMS_CLOUS_AI.CREATE_CONVERSATION
プロシージャを使用して、セッションで現在設定されている会話IDを戻します。会話を設定しなかった場合、関数はNULLを返します。会話を削除すると、セッションでもその会話がクリアされます。 - CLEAR_CONVERSATION_IDプロシージャ
このプロシージャは、セッションで設定された会話IDをクリアして、SELECT AI <ACTION> <PROMPT>
の会話機能を無効にします。会話を設定しなかった場合、エラーは発生しません。 - DELETE_CONVERSATION_PROMPTプロシージャ
このプロシージャは、会話から特定のプロンプトを削除します。 - DROP_CONVERSATIONプロシージャ
このプロシージャは、会話とそれに関連するすべてのプロンプトおよび関連するレスポンスを削除します。削除すると、conversation_id
は無効になります。セッションで設定されている間に会話が削除されると、会話は自動的にクリアされます。 - SUMMARIZEファンクション
このファンクションは、パラメータとして指定したカスタマイズ・オプションに基づいてコンテンツを要約します。 - SUMMARIZEパラメータ
これらの属性は、カスタム・パラメータを使用したサマリーの生成を管理します。属性の中にはオプションであり、デフォルト値を持つものがあります。 - GENERATE_SYNTHETIC_DATAファンクション
このプロシージャを使用して、単一表、複数表またはフル・スキーマの合成データを生成します。 - ENABLE_DATA_ACCESSプロシージャ
このプロシージャでは、該当するSelect AI機能(デフォルトの動作)のデータをLLMに送信できます。このプロシージャを実行できるのは管理者のみです。 - DISABLE_DATA_ACCESSプロシージャ
このプロシージャは、該当するSelect AI機能についてLLMへのデータの送信を無効にします。このプロシージャを実行できるのは管理者のみです。 - 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;
/
プロファイルの属性
属性
属性の名前 | 摘要 |
---|---|
|
23ai注釈機能を使用して、データベース表および列に関する追加のメタデータを提供します。 有効な値は、
|
|
Azure OpenAI Serviceデプロイ済モデルの名前。名前に使用できるのは、英数字、アンダースコア文字(_)およびハイフン(-)文字のみです。名前の末尾にアンダースコア(_)またはハイフン(-)は使用できません。 |
|
Azure OpenAIデプロイ済埋込みモデルの名前。 名前に使用できるのは、英数字、アンダースコアおよびハイフンのみです。名前の開始または終了にハイフンまたはアンダースコアは使用できません。 |
|
Azure OpenAIサービス・リソースの名前。リソース名には英数字とハイフンのみを含めることができ、ハイフンで開始または終了することはできません。 |
|
文字列値またはテキスト値を含む列に対して、大/小文字を区別しないSQLを生成するようにSelect AIがLLMに指示するかどうかを指定します。 サポートされる値は次のとおりです。
デフォルト値は |
|
AIを使用した自然言語プロンプトの翻訳に使用されるメタデータに表および列のコメントが含まれます。
|
|
LLMに送信されるメタデータに主キーや外部キーなどの参照整合性制約を含めるかどうかを管理します。 有効な値は、
|
|
会話履歴がプロファイルに対して有効かどうかを示す |
|
AIプロバイダAPIにアクセスするための資格証明の名前。 Bearerトークンを使用する資格証明は、ユーザー名としてプロバイダ名を使用し、パスワードとしてBearerトークンを使用して作成できます。 Vaultシークレット資格証明もサポートされています。 Azureサービス・プリンシパルなどのプリンシパル認証もサポートされています。構成方法の詳細は、「Azureサービス・プリンシパルを使用したAzureリソースへのアクセス」を参照してください。 この属性は必須です。「CREATE_CREDENTIALプロシージャ」を参照してください。 |
|
AIプロファイルで定義された埋込みモデル。埋込みモデルでサポートされるAIプロバイダをデフォルト値とともに示します。
ノート
|
|
オブジェクト・リストの対象となる表のみを使用するSQLを生成するようにLLMを制限するかどうかを指定します。 サポートされる値は次のとおりです。
値は大文字と小文字が区別されません。デフォルト値は |
|
生成ごとに予測するトークンの数を示します。デフォルトは1024です。詳細は、トークンおよびトークン化者を参照してください。 |
|
レスポンスを生成するために使用されるAIモデルの名前。 「AIプロバイダおよびLLMの選択」を参照し、モデル名を指定します。 ノート
|
|
SQLへの自然言語変換に適格な所有者およびオブジェクト名を指定するJSONオブジェクトの配列。特定のユーザーのすべてのオブジェクトを含めるには、"name"を省略し、JSONオブジェクトでownerキーのみを指定します。 次のタイプのオブジェクトを使用できます。
自然言語をSQLに変換する場合、オブジェクト名、オブジェクト所有者、オブジェクトの列およびコメントは、HTTPSリクエストを使用してAIプロバイダに送信されます。機密オブジェクト名、列名またはコメントを含むオブジェクトをオブジェクト・リストで指定しないでください。 AIプロバイダは、翻訳リクエストで許可されるメタデータのサイズに制限がある場合があります。アプリケーション・ユーザーによる自然言語プロンプトに適したオブジェクトのリストを制限することを検討してください。 フォーマット:
OCIデータ・カタログまたはAWS Glueの同期を使用して作成された外部表も、オブジェクト・リストを使用できます。これにより、中央データ・カタログでメタデータを管理し、AIを使用した自然言語プロンプトの翻訳にメタデータを直接使用できます。 |
|
最も関連性の高い表またはすべての表のメタデータをLLMに送信するかどうかを指定します。 サポートされる値は次のとおりです。
|
|
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リファレンスを参照してください。 サポートされる値は次のとおりです。
ノート
この属性は非推奨です。 oci_apiformat を使用します。
|
|
AIプロファイルのAIプロバイダ。 サポートされているプロバイダ:
この属性は必須です。 |
|
OpenAI互換プロバイダのAPIエンドポイントを指定します。この属性は、OpenAI互換プロバイダにのみ固有です。 例: |
|
この属性は、使用する生成AIクラスタの場所を示します。リージョンには、英数字およびハイフン文字を含めることができます。
AWSのデフォルト・リージョンは デフォルト・リージョンは |
|
生成されたテキストは、最早停止シーケンスの最初に終了します。シーケンスはテキストに組み込まれます。属性値は、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_apiformat": "COHERE"
}');
END;
/
親トピック: DBMS_CLOUD_AIサブプログラムの要約
CLEAR_PROFILEプロシージャ
この手順では、現在のセッションで設定されたアクティブなAIプロファイルをすべてクリアします。アクティブなプロファイルをクリアすると、SQLコマンドラインでSELECT AI
を使用できなくなり、DBMS_CLOUD_AI.GENERATE
をコールするときに設定AIプロファイルを使用できなくなります。この手順では、プロファイルは削除されません。
構文
DBMS_CLOUD_AI.CLEAR_PROFILE
;
例
BEGIN
DBMS_CLOUD_AI.CLEAR_PROFILE
;
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サブプログラムの要約
FEEDBACKプロシージャ
構文
DBMS_CLOUD_AI.FEEDBACK(
profile_name IN VARCHAR2,
sql_id IN DBMS_ID,
feedback_type IN VARCHAR2 DEFAULT NULL,
response IN CLOB DEFAULT NULL,
feedback_content IN CLOB DEFAULT NULL,
operation IN VARCHAR2 DEFAULT 'ADD'
);
DBMS_CLOUD_AI.FEEDBACK(
profile_name IN VARCHAR2,
sql_text IN CLOB,
feedback_type IN VARCHAR2 DEFAULT NULL,
response IN CLOB DEFAULT NULL,
feedback_content IN CLOB DEFAULT NULL,
operation IN VARCHAR2 DEFAULT 'ADD'
);
パラメータ
パラメータ | 摘要 |
---|---|
|
使用するAIプロファイルを指定します。 これは必須パラメータです。 |
|
SQL問合せを識別します。1つの これは必須パラメータです。 |
|
SQL問合せの全文が含まれます。 これは必須パラメータです。 |
|
フィードバックの種類を指定します。選択可能な値は次のとおりです。
ノート
DBMS_CLOUD_AI.FEEDBACK プロシージャでは、sql_id またはsql_text を指定できるため、feedback_type が必要になりますが、feedback アクションを使用している場合は、LLMによってフィードバック・タイプが動的に決定または解釈されます。
|
|
ユーザーが期待する正しいSQL問合せ結果を表します。
|
|
ユーザーの自然言語フィードバックを取得します。このパラメータは、 |
|
実行する操作を指定します。受け入れられる値は次のとおりです。
|
例
次の例では、DBMS_CLOUD_AI.FEEDBACK
プロシージャを使用して、プロシージャのパラメータを指定して、生成されたSQLを受け入れるか改善する方法を示します。
EXEC DBMS_CLOUD_AI.FEEDBACK
(profile_name=>'OCI_FEEDBACK1',
sql_id=> '852w8u83gktc1',
feedback_type=>'positive',
operation=>'add');
EXEC DBMS_CLOUD_AI.FEEDBACK
(profile_name=>'OCI_FEEDBACK1',
sql_text=> 'select ai showsql how many movies',
feedback_type=> 'negative',
response=>'SELECT SUM(1) FROM "ADB_USER"."MOVIES"',
feedback_content=>'Use SUM instead of COUNT');
EXEC DBMS_CLOUD_AI.FEEDBACK
(profile_name=>'OCI_FEEDBACK1',
sql_id=> '852w8u83gktc1',
operation=>'delete');
親トピック: DBMS_CLOUD_AIサブプログラムの要約
FEEDBACKのベクトル・インデックス
<profile_name>_FEEDBACK_VECINDEX
という名前のデフォルトのベクトル索引がデフォルト属性で作成されます。
DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX
プロシージャを使用して、similarity_threshold
やmatch_limit
などの属性を変更できます。この索引は、提供されたフィードバックに基づいて、将来生成されるSQLを絞り込むのに役立ちます。このテーブルは、関連するAIプロファイルが削除されると削除されます。<profile_name>_FEEDBACK_VECINDEX
を削除することもできます。実行すると、Select AIでは、runsql
、showsql
およびexplainsql
アクションのヒントとしてフィードバックが使用されなくなります。ただし、Select AIフィードバック機能を使用して新しいフィードバックを送信すると、Select AIによって新しいフィードバック・ベクトル索引が自動的に作成されます。
feedback
のmatch_limit
のデフォルト値は3です。
ベクトル表名
表<profile_name>_FEEDBACK_VECINDEX$VECTAB
には、ユーザー・フィードバックのベクトル表現(埋込み)と、Select AIが時間の経過とともにSQL生成を改善するために使用する他のパラメータが含まれています。
パラメータ
列 | 摘要 |
---|---|
|
FEEDBACKプロシージャに従ってJSONオブジェクト属性を含めます。 |
|
ユーザー・プロンプトが含まれます。 |
|
ユーザー・プロンプトのベクトル表現(埋込み)が含まれます。 |
例
次の例は、自動生成されたベクトル索引表を使用して、フィードバックを問い合せて提供する方法を示しています。
SQL> select content, attributes from OCI_FEEDBACK1_FEEDBACK_VECINDEX$VECTAB where JSON_VALUE(attributes, '$.sql_text') = 'select ai showsql how many movies';
CONTENT
----------------------------------------------------------------------------------------------------
how many movies
ATTRIBUTES
----------------------------------------------------------------------------------------------------
{"response":"SELECT SUM(1) FROM \"ADB_USER\".\"MOVIES\"","feedback_type":"negative","sql_id":null,"sql_text":"select ai showsql how many movies","feedback_content":null}
DBMS_CLOUD_AI.feedback Procedure(Positive Feedback)
親トピック: DBMS_CLOUD_AIサブプログラムの要約
GET_PROFILEファンクション
この関数は、現在のセッションで設定されたAIプロファイル名を返します。
構文
DBMS_CLOUD_AI.GET_PROFILE
;
例
この例では、現在のセッションでプロファイルの名前を表示する方法を示します。
SELECT DBMS_CLOUD_AI.GET_PROFILE
from DUAL;
親トピック: DBMS_CLOUD_AIサブプログラムの要約
SET_ATTRIBUTEプロシージャ
この手順では、AIプロファイル属性を設定できます。様々なタイプの属性値を受け入れるために、オーバーロードされています。
構文
DBMS_CLOUD_AI.SET_ATTRIBUTE
(
profile_name IN VARCHAR2,
attribute_name IN VARCHAR2,
attribute_value IN {BOOLEAN|VARCHAR2}
);
DBMS_CLOUD_AI.SET_ATTRIBUTE
(
profile_name IN VARCHAR2,
attribute_name IN VARCHAR2,
attribute_value IN CLOB DEFAULT NULL
);
パラメータ
AIプロファイルの属性を設定または変更できるのは所有者のみです。サポートされている属性のリストは、「プロファイル属性」を参照してください。
パラメータ | 摘要 |
---|---|
|
属性を設定するAIプロファイルの名前。 このパラメータは必須です。 |
|
AIプロファイル属性の名前 このパラメータは必須です。 |
|
プロファイル属性の値。値は、 デフォルト値はNULLです。 |
例
BEGIN
DBMS_CLOUD_AI.SET_ATTRIBUTE
(
profile_name => 'OPENAI',
attribute_name => 'credential_name',
attribute_value => 'OPENAI_CRED_NEW'
);
END;
/
次の例では、NUMBER
型をattribute_value
として受け入れます。
BEGIN
DBMS_CLOUD_AI.SET_ATTRIBUTE(
profile_name => 'OCI_PROFILE',
attribute_name => 'temperature',
attribute_value => 0.5
);
END;
/
次の例では、BOOLEAN
型をattribute_value
として受け入れます。
BEGIN
DBMS_CLOUD_AI.SET_ATTRIBUTE
(
profile_name => 'OCI_PROFILE',
attribute_name => 'comments',
attribute_value => 'true'
);
END;
/
次の例では、VARCHAR2
型をattribute_value
として受け入れます。
BEGIN
DBMS_CLOUD_AI.SET_ATTRIBUTE
(
profile_name => 'OCI_PROFILE',
attribute_name => 'model',
attribute_value => 'meta.llama-3.3-70b-instruct'
);
END;
/
親トピック: DBMS_CLOUD_AIサブプログラムの要約
GENERATEファンクション
showsql
、runsql
、explainsql
、narrate
、summarize
、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,
params IN CLOB
) 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を使用した自然プロンプトの翻訳処理。サポートされているアクションには、 |
attributes |
JSON形式で属性を指定することで、特定のAIプロファイル属性をオーバーライドします。詳細は、プロファイル属性を参照してください。 |
params |
会話パラメータを指定します。CREATE_CONVERSATION属性を参照してください。指定できるのは次のパラメータのみです。
|
例
例: Select AIアクションでのGENERATE関数の使用
次の例は、DBMS_CLOUD_AI.GENERATE
ファンクションで使用できるrunsql
、showsql
、explainsql
、narrate
、summarize
およびchat
アクションを示しています。詳細は、「AIキーワードを使用したプロンプトの入力」も参照してください。
runsql
アクションの例を次に示します。
SELECT DBMS_CLOUD_AI.GENERATE
(prompt => 'how many customers',
profile_name => 'OPENAI',
action => 'runsql)
FROM dual;
showsql
アクションの例を次に示します。
SELECT DBMS_CLOUD_AI.GENERATE
(prompt => 'how many customers',
profile_name => 'OPENAI',
action => 'showsql')
FROM dual;
explainsql
アクションの例を次に示します。
SELECT DBMS_CLOUD_AI.GENERATE
(prompt => 'how many customers',
profile_name => 'OPENAI',
action => 'explainsql)
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;
summarize
アクションの例を次に示します。SELECT DBMS_CLOUD_AI.GENERATE
(
prompt => TO_CLOB(
DBMS_CLOUD.GET_OBJECT(
credential_name => 'STORE_CRED',
object_uri => 'https://objectstorage.ca-toronto-1.oraclecloud.com' ||
'/n/namespace-string/b/bucketname/o/data_folder/' ||
'summary/test_4000_words.txt')),
profile_name => 'GENAI_LLAMA',
action => 'SUMMARIZE')
from DUAL;
結果:
The music streaming industry, led by Spotify, has revolutionized the way
people consume music, with streaming accounting for 80% of the American
recording industry's revenue. However, this shift has also complicated the
lives of artists trying to survive in an on-demand, hyper-abundant present.
Spotify's business model, which pays royalties based on an artist's
popularity, has led to concerns about the fairness of the system, with some
artists earning little to no royalties. The company's dominance has also
changed the way people listen to music, with a focus on convenience and
personalized playlists. Liz Pelly's book, "Mood Machine: The Rise of Spotify
and the Costs of the Perfect Playlist," explores the impact of Spotify's rise
on the music industry and listeners, arguing that the platform's emphasis on
affect and mood has led to a homogenization of music and a loss of autonomy
for listeners. As the music industry continues to evolve, questions remain
about the future of music creation and consumption, and whether artists will
be able to thrive in a system that prioritizes convenience and profit over
artistic expression.
プロシージャで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
関数を使用する方法を示しています。この例では、会話がすでに作成されていることを前提としています。
SELECT DBMS_CLOUD_AI.GENERATE
(
prompt => 'What is the difference in weather between Seattle and San Francisco?',
profile_name => 'GENAI',
action => 'CHAT',
params => '{"conversation_id":"30C9DB6E-EA4D-AFBA-E063-9C6D46644B92"}') AS RESPONSE;
結果:
RESPONSE
--------------------------------------------------------------------------------
Seattle and San Francisco, both located in the Pacific Northwest and Northern
California respectively, experience a mild oceanic climate. However, there are
some notable differences in their weather patterns:
1. **Temperature**: San Francisco tends to be slightly warmer than Seattle,
especially during the summer months. San Francisco's average temperature ranges
from 45?F (7?C) in winter to 67?F (19?C) in summer, while Seattle's average
temperature ranges from 38?F (3?C) in winter to 64?F (18?C) in summer.
2. **Rainfall**: Seattle is known for its rainy reputation, with an average
annual rainfall of around 37 inches (94 cm). San Francisco receives less rainfall,
with an average of around 20 inches (51 cm) per year. However, San Francisco's
rainfall is more concentrated during the winter months, while Seattle's rainfall
is more evenly distributed throughout the year.
......
親トピック: 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サブプログラムの要約
CREATE_CONVERSATIONプロシージャ
このプロシージャを使用すると、会話を作成し、プロシージャ内でconversation_id
を自動的に設定できます。
DBMS_CLOUD_AI.CREATE_COVERSATION
プロシージャを使用している場合は、プロシージャによって自動的に設定されるため、conversation_id
の設定をスキップできます。
構文
DBMS_CLOUD_AI.CREATE_COVERSATION
(
attributes IN CLOB DEFAULT NULL
);
パラメータ
パラメータ | 摘要 |
---|---|
|
JSON形式の会話の属性。詳細は、CREATE_CONVERSATION属性を参照してください。 デフォルト値はNULLです。 |
例
次の例は、カスタマイズなしでの会話の作成を示しています。
EXEC DBMS_CLOUD_AI.CREATE_COVERSATION
;
結果:
PL/SQL procedure successfully completed.
次の例は、title
、description
、retention_days
、conversation_length
などのカスタム・パラメータを使用した会話の作成を示しています。
-- Create conversation with custom attributes
SELECT DBMS_CLOUD_AI.CREATE_COVERSATION
(
attributes => '{"title":"Conversation 1",
"description":"this is a description",
"retention_days":5,
"conversation_length":5}')
AS conversation_id FROM dual;
親トピック: DBMS_CLOUD_AIサブプログラムの要約
CREATE_CONVERSATIONファンクション
このファンクションは、会話を作成し、DBMS_CLOUD_AI.SET_CONVERSATION_ID
やDBMS_CLOUD_AI.GENERATE
などの他のプロシージャまたはファンクションで使用できるconversation_id
を返します。
Oracleでは、会話を有効にするためにconversation_id
を設定することをお薦めします。または、DBMS_CLOUD_AI.GENERATE
ファンクションでconversation_id
を設定できます。
DBMS_CLOUD_AI.CREATE_COVERSATION
プロシージャを使用している場合は、プロシージャによって自動的に設定されるため、conversation_id
の設定をスキップできます。
構文
DBMS_CLOUD_AI.CREATE_COVERSATION
(
attributes IN CLOB DEFAULT NULL
) RETURN VARCHAR2;
パラメータ
パラメータ | 摘要 |
---|---|
|
JSON形式の会話の属性。詳細は、CREATE_CONVERSATION属性を参照してください。 デフォルト値はNULLです。 |
例
次の例は、DBMS_CLOUD_AI.CREATE_COVERSATION
関数を使用して、カスタマイズせずに会話を作成する方法を示しています。
SELECT DBMS_CLOUD_AI.CREATE_COVERSATION
FROM DUAL;
結果:
CREATE_CONVERSATION
------------------------------------
30C9DB6E-EA4D-AFBA-E063-9C6D46644B92
次の例は、DBMS_CLOUD_AI.CREATE_COVERSATION
ファンクションを使用して、title
、retention_days
、conversation_length
などの属性を指定する方法を示しています。
SELECT DBMS_CLOUD_AI.CREATE_COVERSATION
(
attributes => '{"title":"This is a test conversation",
"retention_days":7,
"conversation_length":20}')
FROM DUAL;
親トピック: DBMS_CLOUD_AIサブプログラムの要約
CREATE_CONVERSATION属性
属性
属性の名前 | デフォルト値 | 摘要 |
---|---|---|
|
新規会話 |
会話のユーザー割当名。指定しない場合、Select AIでは、会話がプロンプトで最初に使用されるときにLLMが生成されます。 |
|
NULL |
会話の目的またはコンテキストを要約したユーザー定義の摘要を提供します。提供されていない場合、LLMは、会話がプロンプトで最初に使用されたときに生成し、5回目に使用して再度更新して、より正確で関連性の高い情報を含めます。 |
|
7 |
会話履歴を保持する日数を指定します。これは、作成日からデータベースに格納されます。値を省略すると、デフォルト値の7に設定されます。0に設定すると、会話は |
|
NULL |
現在のプロンプトに含める最新のプロンプトおよびレスポンスの数を指定します。許可される最大値は999です。この値は、
DBMS_CLOUD_AI.GENERATE 関数でconversation_length パラメータを指定するか、SELECT AI <ACTION> <PROMPT> を使用してAIプロファイルで設定することでオーバーライドできます。conversation_length に次の優先順位ルールを適用します。
どれも |
DBMS_CLOUD_AI.CREATE_CONVERSATION
プロシージャで会話属性をカスタマイズする方法を示しています。-- Create conversation with custom attributes
SELECT DBMS_CLOUD_AI.CREATE_CONVERSATION(
attributes => '{"title":"Conversation 1",
"description":"this is a description",
"retention_days":5,
"conversation_length":5}')
AS conversation_id FROM dual;
親トピック: DBMS_CLOUD_AIサブプログラムの要約
UPDATE_CONVERSATIONプロシージャ
このプロシージャは、会話属性の指定値で既存の会話を更新します。
構文
DBMS_CLOUD_AI.UPDATE_CONVERSATION(
conversation_id IN VARCHAR2,
attributes IN CLOB
);
パラメータ
パラメータ | 摘要 |
---|---|
|
会話に割り当てられた一意の番号。 これは必須パラメータです。 |
|
JSON形式の会話の属性。詳細は、CREATE_CONVERSATION属性を参照してください。 |
例
EXEC DBMS_CLOUD_AI.UPDATE_CONVERSATION(
conversation_id => '30C9DB6E-EA4E-AFBA-E063-9C6D46644B92',
attributes => '{"retention_days":20,
"description":"This a sample description",
"title":"Sample title",
"conversation_length":20}');
結果:
PL/SQL procedure successfully completed.
親トピック: DBMS_CLOUD_AIサブプログラムの要約
SET_CONVERSATION_IDプロシージャ
このプロシージャは、現在の会話を指定されたIDに設定します。後続のプロンプトには、会話の構成済属性に基づく既存の会話プロンプトが含まれます。
構文
DBMS_CLOUD_AI.SET_CONVERSATION_ID(
conversation_id IN VARCHAR2
);
パラメータ
パラメータ | 摘要 |
---|---|
|
現在のセッションで会話に割り当てられた一意の番号。 このパラメータは必須です。 |
例
EXEC DBMS_CLOUD_AI.SET_CONVERSATION_ID('30C9DB6E-EA4D-AFBA-E063-9C6D46644B92');
結果:
PL/SQL procedure successfully completed.
親トピック: DBMS_CLOUD_AIサブプログラムの要約
GET_CONVERSATION_IDファンクション
DBMS_CLOUD_AI.SET_CONVERSATION_ID
またはDBMS_CLOUS_AI.CREATE_CONVERSATION
プロシージャを使用して、セッションで現在設定されている会話IDを戻します。会話を設定しなかった場合、関数はNULLを返します。会話を削除すると、セッションでwell.See CLEAR_CONVERSATION_IDプロシージャとしてクリアされます。
構文
DBMS_CLOUD_AI.GET_CONVERSATION_ID
RETURN VARCHAR2;
例
この例では、現在のセッションに設定された会話IDを表示します。
SELECT DBMS_CLOUD_AI.GET_CONVERSATION_ID;
結果:
--------------------------------------------------------------------------------
30C9DB6E-EA4F-AFBA-E063-9C6D46644B92
親トピック: DBMS_CLOUD_AIサブプログラムの要約
CLEAR_CONVERSATION_IDプロシージャ
このプロシージャは、セッションで設定された会話IDをクリアして、SELECT AI <ACTION> <PROMPT>
の会話機能を無効にします。会話を設定しなかった場合、エラーは発生しません。
構文
DBMS_CLOUD_AI.CLEAR_CONVERSATION_ID;
例
この例では、セッション内の現在の会話IDの表示、IDのクリアおよび変更の確認を示します。
-- A conversation id is set in the session
SELECT DBMS_CLOUD_AI.GET_CONVERSATION_ID FROM dual;
GET_CONVERSATION_ID
--------------------------------------------------------------------------------
3A88BFF0-1D7E-B3B8-E063-9C6D46640ECD
-- Clear the conversation id
EXEC DBMS_CLOUD_AI.CLEAR_CONVERSATION_ID;
PL/SQL procedure successfully completed.
-- The conversation id is removed from the session
SELECT DBMS_CLOUD_AI.GET_CONVERSATION_ID FROM dual;
GET_CONVERSATION_ID
--------------------------------------------------------------------------------
親トピック: DBMS_CLOUD_AIサブプログラムの要約
DELETE_CONVERSATION_PROMPTプロシージャ
このプロシージャは、会話から特定のプロンプトを削除します。
構文
DBMS_CLOUD_AI.DELETE_CONVERSATION_PROMPT(
conversation_prompt_id IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE
);
パラメータ
パラメータ | 摘要 |
---|---|
|
会話のプロンプトに割り当てられた一意の番号。プロンプトIDは、 これは必須パラメータです。 |
|
このパラメータのデフォルト値は |
例
EXEC DBMS_CLOUD_AI.DELETE_CONVERSATION_PROMPT('30C9DB6E-EA61-AFBA-E063-9C6D46644B92');
結果:
PL/SQL procedure successfully completed.
親トピック: DBMS_CLOUD_AIサブプログラムの要約
DROP_CONVERSATIONプロシージャ
このプロシージャは、会話とそれに関連付けられたすべてのプロンプトおよび関連するレスポンスを削除します。削除すると、conversation_id
は無効になります。セッションで設定されている間に会話が削除されると、会話は自動的にクリアされます。
構文
DBMS_CLOUD_AI.DROP_CONVERSATION(
conversation_id IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE
);
パラメータ
パラメータ | 摘要 |
---|---|
|
会話に割り当てられた一意の番号。 これは必須パラメータです。 |
|
このパラメータのデフォルト値は |
例
EXEC DBMS_CLOUD_AI.DROP_CONVERSATION('30C9DB6E-EA4D-AFBA-E063-9C6D46644B92');
結果:
PL/SQL procedure successfully completed.
親トピック: DBMS_CLOUD_AIサブプログラムの要約
SUMMARIZEファンクション
構文
DBMS_CLOUD_AI.SUMMARIZE(
content IN CLOB DEFAULT NULL,
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2 DEFAULT NULL,
profile_name IN VARCHAR2 DEFAULT NULL,
user_prompt IN CLOB DEFAULT NULL,
params IN CLOB DEFAULT NULL
) RETURN CLOB;
パラメータ
パラメータ | 摘要 |
---|---|
|
要約するテキストを指定します。 これは必須パラメータではありません。 |
|
オブジェクト・ストアでの認証に使用される資格証明オブジェクトを識別します。この資格証明は、
DBMS_CLOUD.CREATE_CREDENTIAL を使用して作成する必要があります。
ノート
このパラメータは、 location_uri を指定する場合にのみ使用します。
|
|
テキストが格納されるURI、またはローカル・ファイルへのパスを指定します。 たとえば: オブジェクト・ストレージ: ローカル・ファイル: |
|
使用するAIプロファイルを指定します。 デフォルト値はNULLです。 |
|
要約をガイドまたはカスタマイズするための自然言語プロンプトを提供します。サマリー・パラメータ以外の追加の指示を含めることができます。 たとえば、サマリーは「記事のサマリー: '''」で始まる必要があります このパラメータは必須ではありません。 |
params |
要約パラメータを定義します。「SUMMARIZEパラメータ」を参照してください。 |
例
調査するには、例: Select AI Summarizeを参照してください。
親トピック: DBMS_CLOUD_AIサブプログラムの要約
SUMMARIZEのパラメータ
属性
属性の名前 | デフォルト値 | 摘要 |
---|---|---|
|
0 |
生成されたサマリーに含まれる単語の最小おおよその数を指定します。 ノート
このパラメータは厳密な制限ではなくガイドラインとして機能します。サマリーの実際の長さは、提供されたコンテンツおよびモデルの解釈によって異なる場合があります。 |
|
200 |
生成されたサマリーに含まれる単語の概算最大数を指定します。
ノート
このパラメータは厳密な制限ではなくガイドラインとして機能し、サマリーの実際の長さは、提供されたコンテンツおよびモデルの解釈によって異なる場合があります。 |
|
段落 |
サマリーの書式スタイルを指定します。使用可能なサマリー・フォーマット・オプションは次のとおりです。
|
|
map_reduce |
|
|
low |
サマリーが入力の元の表現にどの程度従っているかを決定します。モデルが抽出する度合いと書き換えの度合いを制御します。オプションは次のとおりです。
ノート
この設定は、モデルの集計動作のガイダンスとして機能し、厳密なルールは強制されません。サマリーの実際のスタイルおよび表現は、入力コンテンツおよびモデルの決定に基づいて異なる場合があります。 |
親トピック: DBMS_CLOUD_AIサブプログラムの要約
GENERATE_SYNTHETIC_DATAファンクション
次に、単一表の合成データを生成する構文を示します。
構文
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に送信しない場合、管理者権限を持つユーザーは、特定のデータベースのすべてのユーザーに対してそのようなアクセスを無効にできます。これにより、narrate
アクションが無効になります。
パラメータ
パラメータ | 必須 | 摘要 |
---|---|---|
|
はい |
必要なLLMサービス情報を含むAIプロファイル。これは、CREATE_PROFILEプロシージャで作成できます。 |
|
はい | 合成データを移入する表名を指定します。
|
owner_name |
いいえ |
参照オブジェクトを所有するデータベース・ユーザーを指定します。特定の所有者を指定しない場合、プロシージャは、その所有者を実行しているユーザーのスキーマをデフォルトで使用します。 |
record_count |
いいえ |
合成的に生成されるレコードの数。 |
|
いいえ | ユーザーが合成データの生成について言及できる追加情報。たとえば、release_date 列を含むMOVIE という表のレコードを生成するには、user_prompt は次のようになります。
映画のリリース日は2019年にする必要があります |
|
いいえ |
APIの動作を変更するために、JSONオブジェクト文字列形式で提供されるオプション属性。オプション・パラメータを参照してください。 |
|
はい | このパラメータは、複数の表に合成データを生成する場合に使用します。このパラメータは、表オブジェクト情報とその引数を取り、単一の表で提供されている同じ引数を含みます。object_listパラメータを参照してください。 |
オプションのパラメータ
パラメータ | 値データ型 | 値 | 摘要 |
---|---|---|---|
|
番号 |
|
データ生成でLLMをガイドするサンプルとして使用する表の行数を指定します。 値0は、サンプル行が使用されないことを意味します。デフォルト値は |
|
ブール |
|
表統計情報の使用を有効化または無効化します。 デフォルト値は |
|
文字列 |
有効な値:
|
合成データを生成するためにLLMに送信されるパラレル・リクエストの数を定義する優先度値を割り当てます。優先度が高いタスクは、より多くのデータベース・リソースを消費し、より迅速に完了します。 デフォルト値は
合成データ生成に使用される同時パラレル・プロセスの最大数は64に制限されます。 |
|
ブール |
|
データ生成をガイドするLLMへのコメントの送信を有効または無効にします。 デフォルト値は |
object_listパラメータ
パラメータ | 値データ型 | 必須 | 摘要 |
---|---|---|---|
|
文字列 |
はい |
参照するオブジェクトを所有するデータベース・ユーザーを指定します。特定の所有者を指定しない場合、プロシージャは、その所有者を実行するユーザーのスキーマをデフォルトで使用します。 |
|
文字列 |
いいえ |
合成データを移入する表名を指定します。表オブジェクトに対するSELECT およびINSERT 権限は、it.The表を使用するユーザーが空であるか、その表にレコードが含まれている場合に必要です。
|
|
番号 |
いいえ |
合成的に生成されるレコードの数。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サブプログラムの要約
ENABLE_DATA_ACCESSプロシージャ
この手順では、該当する Select AI機能(デフォルトの動作)のデータをLLMに送信できます。このプロシージャを実行できるのは管理者のみです。
この手順では、次の Select AI機能のデータアクセスを制御します。
narrate
アクション- 検索拡張生成(RAG)
- 合成データ生成
構文
DBMS_CLOUD_AI.ENABLE_DATA_ACCESS
();
パラメータ
この手順には、パラメータは必要ありません。
データアクセスを有効にする例
BEGIN
DBMS_CLOUD_AI.ENABLE_DATA_ACCESS
();
END;
/
親トピック: DBMS_CLOUD_AIサブプログラムの要約
DISABLE_DATA_ACCESSプロシージャ
この手順では、該当する Select AI機能のLLMへのデータの送信を無効にします。このプロシージャを実行できるのは管理者のみです。
この手順では、次の Select AI機能が制限されます。
narrate
アクション- 検索拡張生成(RAG)
- 合成データ生成
構文
DBMS_CLOUD_AI.DISABLE_DATA_ACCESS
();
パラメータ
この手順には、パラメータは必要ありません。
データアクセスを無効にする例
BEGIN
DBMS_CLOUD_AI.DISABLE_DATA_ACCESS
();
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,
attribute_name IN VARCHAR2,
attribute_value IN VARCHAR2
);
DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX
(
index_name IN VARCHAR2,
attribute_name IN VARCHAR2,
attribute_value IN CLOB DEFAULT NULL
);
パラメータ
パラメータ | 摘要 |
---|---|
|
ベクトル索引の名前。ベクトル索引名は、Oracle SQL識別子のネーミング・ルールに従う必要があります。ベクトル・ストア名の最大長は125文字です。 これは必須パラメータです。 |
|
次の属性は変更できません。
これは必須パラメータです。 |
attribute_value |
カスタム デフォルト値はNULLです。 |
例
BEGIN
DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX
(
index_name => 'MY_INDEX',
attribute_name => 'object_storage_credential_name',
attribute_value => 'NEW_CRED'
);
END;
/
次の例では、NUMBER
型をattribute_value
として受け入れます。
BEGIN
DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX
(
index_name => 'MY_INDEX',
attribute_name => 'match_limit',
attribute_value => 10
);
END;
/
次の例では、VARCHAR2
型をattribute_value
として受け入れます。
BEGIN
DBMS_CLOUD_AI.UPDATE_VECTOR_INDEX
(
index_name => 'MY_INDEX',
attribute_name => 'profile_name',
attribute_value => 'AI_PROF2'
);
END;
/
親トピック: DBMS_CLOUD_AIサブプログラムの要約
ベクトル索引属性
属性
属性の名前 | 値 | 必須 | 摘要 |
---|---|---|---|
chunk_size |
1024 (デフォルト)
|
いいえ |
入力データのチャンク化のテキスト・サイズ。 テキスト・データの場合、これは文字数を意味します。 |
chunk_overlap |
128 (デフォルト)
|
いいえ |
テキストの隣接するチャンク間で重複する文字数を指定します。この属性は、セグメント間の重複を許可することで、テキスト処理のコンテキストの継続性と正確性を確保するのに役立ちます。これにより、チャンク境界でのコンテキスト情報の損失を防ぐことができます。 |
|
NA | はい |
このパラメータは、ソース・ファイルのURIまたはディレクトリとソース・ファイルを指定します。 ワイルドカード・パターンは、ソース・ファイルのURIとディレクトリの両方でサポートされています。 クラウドのソース・ファイルのURI: バケットまたはサブフォルダのソース・ファイルURIを指定できます。ワイルドカードを使用して、サブフォルダまたはファイル名を指定できます。文字「 ワイルドカードの使用例: location_uri => 'https://objectstorage.my$region.oraclecloud.com/n/namespace-string/b/bucketname/o/year=????/month=??/*.csv URIの形式は、どのCloud Object Storageサービスを使用するかによって決まります。詳細は、「DBMS_CLOUD URIの形式」に関する項を参照してください。 ディレクトリ: 1つのディレクトリとファイル名を指定できます。ディレクトリを指定する形式は、 ワイルドカードを使用して、ディレクトリ内のファイル名を指定できます。文字 大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。例: 引用符文字を含めるには、2つの引用符を使用します。例: この場所のファイルは、PDF、DOC、JSON、XML、HTMLなどの形式のドキュメントです。サポートされているドキュメント形式を参照してください。 |
|
5 (デフォルト)
|
いいえ |
ベクトル検索問合せで返される結果の最大数を指定し、出力サイズを制御して、データ取得操作の効率を向上させます。 |
|
NA | はい |
オブジェクト・ストレージにアクセスするための資格証明の名前を指定します。 |
|
<vector_index_name>$VECPIPELINE |
いいえ |
ベクトル索引データ・ロード・パイプライン名を指定します。この属性はベクトル索引に自動的に設定されます。指定または変更できません。パイプライン名を使用すると、「パイプラインのモニターおよびトラブルシューティング」を使用してベクトル索引のデータ・ロードを監視できます。 |
|
NA | はい |
ソース・データとユーザー・プロンプトの埋込みに使用されるAIプロファイルの名前。 |
|
1440 分(デフォルト)
|
いいえ |
ベクトル・ストア内のデータの更新間隔。単位は分です。 |
|
0 (デフォルト)
|
いいえ |
2つの品目が一致とみなされるために必要な類似度の最小レベルを定義します。これは、一致アルゴリズムで結果をフィルタリングして関連性を確保するのに役立ちます。 |
|
説明で指定された値の1つに対応する文字列。 |
いいえ |
データベース内のベクトルの比較に使用される距離計算のタイプを指定し、アイテム間の類似性を定量化する方法を決定します。 Oracle 23aiの有効な値:
|
|
|
はい |
ベクトル・ストアを管理し、それとして機能するプロバイダ名を指定します。 |
|
NA | いいえ |
ベクトル・ストア内の各ベクトルの要素数を指定し、データ表現のサイズと構造を定義します。 |
|
|
いいえ |
ベクトル埋込みおよびチャンク・データを格納する表またはコレクションの名前を指定します。 |
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;
/
/
この例では、オブジェクト・ストレージURIのワイルドカード・パターン(*)をlocation
パラメータとして指定します。オブジェクト・ストレージURIからすべてのCSVファイルをロードします。
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.myregion.oraclecloud.com/n/my$namespace/b/bucketname/o/year=????/month=??/file*.csv)',
'object_storage_credential_name' value 'OS_CRED',
'chunk_size' value 2048,
'chunk_overlap' value 256,
'refresh_rate' value 720)
);
END;
/
この例では、ワイルドカード・パターンを使用して、location
パラメータ内のディレクトリ・オブジェクトを指定します。すべてのCSVファイルをMY_DIR
ディレクトリにロードします。
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 'MY_DIR:*.csv',
'object_storage_credential_name' value 'OS_CRED',
'chunk_size' value 2048,
'chunk_overlap' value 256,
'refresh_rate' value 720)
);
END;
/
この例では、ワイルドカード・パターンを使用して、location
パラメータで大/小文字を区別するディレクトリ・オブジェクトを指定します。すべてのCSVファイルをMy_Dir
ディレクトリにロードします。
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 '"My_Dir":*.csv',
'object_storage_credential_name' value 'OS_CRED',
'chunk_size' value 2048,
'chunk_overlap' value 256,
'refresh_rate' value 720)
);
END;
/
この例では、ワイルドカード・パターン(*)を使用して、location
パラメータで大/小文字を区別するディレクトリ・オブジェクトを指定します。My_Dir
ディレクトリにあるすべてのファイルがロードされます。
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 '"My_Dir":*',
'object_storage_credential_name' value 'OS_CRED',
'chunk_size' value 2048,
'chunk_overlap' value 256,
'refresh_rate' value 720)
);
END;
/
この例では、ディレクトリ・オブジェクトを指定し、location
パラメータでtestなどのファイル名接頭辞を使用します。名前がtestで始まるMY_DIR
ディレクトリ内のすべてのファイルをロードします。
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 'MY_DIR:test*',
'object_storage_credential_name' value 'OS_CRED',
'chunk_size' value 2048,
'chunk_overlap' value 256,
'refresh_rate' value 720)
);
END;
/
親トピック: DBMS_CLOUD_AIサブプログラムの要約