7 AIプロファイルの管理
AIプロファイルは、DBMS_CLOUD_AIパッケージを使用して作成および管理できます。
- DBMS_CLOUD_AIを使用したAIプロファイルの構成
Autonomous AI Databaseでは、AIプロファイルを使用してLLMへのアクセスを容易に構成し、自然言語プロンプトに基づいてSQLを生成、実行および説明するための設定を行います。また、埋込みモデルとベクトル索引を使用して検索拡張生成を容易にし、LLMとチャットできるようにします。 - Select AIの前提条件の設定
Select AIを使用する前に、DBMS_CLOUD_AIを有効にする手順を次に示します。 - AIプロファイルの作成および設定
AIプロファイルを作成して有効にする手順について説明します。
親トピック: Select AI
DBMS_CLOUD_AIを使用したAIプロファイルの構成
Autonomous AI Databaseでは、AIプロファイルを使用してLLMへのアクセスを容易に構成し、自然言語プロンプトに基づいてSQLを生成、実行および説明するための設定を行います。また、埋込みモデルとベクトル索引を使用して検索拡張生成を容易にし、LLMとチャットできるようにします。
AIプロファイルには、自然言語問合せの対象となるデータベース・オブジェクトが含まれています。これらのターゲットから使用されるメタデータには、データベースの表名、列名、列データ型およびコメントが含まれる場合があります。AIプロファイルを作成および構成するには、DBMS_CLOUD_AI.CREATE_PROFILEおよびDBMS_CLOUD_AI.SET_PROFILEプロシージャを使用します。
AIプロファイルでの表およびビューの指定に加えて、データ・カタログを使用した外部データの問合せで説明されている表を含め、外部表にマップされた表も指定できます。これにより、データベース内のデータだけでなく、データ・レイクのオブジェクト・ストアに格納されたデータにも問い合せることができます。
親トピック: AIプロファイルの管理
Select AIの前提条件の設定
Select AIを使用する前に、DBMS_CLOUD_AIを有効にする手順を次に示します。
DBMS_CLOUD_AIを使用するには、次のものが必要です:
- Oracle Cloud Infrastructureクラウド・アカウントおよびAutonomous AI Databaseインスタンスへのアクセス。
- サポートされているAIプロバイダの有償APIアカウント。次のいずれかです:
AIプロバイダ APIキー OpenAI
APIキーを取得するには、「OpenAIの使用」を参照してください。
OpenAI互換プロバイダ
APIキーおよび
provider_endpointを取得するには、「OpenAI互換プロバイダの使用」を参照してください。Cohere
秘密APIキーを取得するには、「Cohereの使用」を参照してください。
Azure OpenAI Service
Azure OpenAI Serviceの構成方法の詳細は、「Azure OpenAI Serviceの使用」を参照してください。 OCI生成AI
「OCI生成AIの使用」を参照してください。
Google
APIキーを取得するには、「Googleの使用」を参照してください。
Anthropic
APIキーを取得するには、「Anthropicの使用」を参照してください。
Hugging Face
APIキーを取得するには、「Hugging Faceの使用」を参照してください。
AWS
APIキーおよびモデルIDを取得するには、「AWSの使用」を参照してください。
- 外部AIプロバイダにアクセスするためのネットワークACL権限。
ノート:
OCI生成AIでは、ネットワークACL権限は必要ありません。 - AIプロバイダへのアクセスを提供する資格証明。
- Select AIに対する権限の付与
Select AIを使用するには、管理者がDBMS_CLOUD_AIパッケージに対するEXECUTE権限を付与する必要があります。Select AIとその機能に必要な追加の権限について説明します。 - Select AIを実行するための権限の例
Select AIおよびその機能を使用するために必要な権限の例を確認します。 - サポートされているAIプロバイダを使用するためのSelect AIの構成
AIプロバイダをSelect AIで使用できるようにする方法について説明します。
親トピック: AIプロファイルの管理
Select AIに対する権限の付与
Select AIを使用するには、管理者が DBMS_CLOUD_AIパッケージに対するEXECUTE権限を付与する必要があります。Select AIとその機能に必要な追加の権限について説明します。
DBMS_CLOUD_AIを構成するには:
-
DBMS_CLOUD_AIパッケージに対するEXECUTE権限を、Select AIを使用するユーザーに付与します。デフォルトでは、
EXECUTE権限があるのは、システム管理者のみです。管理者は、他のユーザーにEXECUTE権限を付与できます。 -
RAGによるSelect AIを使用するユーザーに、
DBMS_CLOUD_PIPELINEに対するEXECUTE権限を付与します。ノート:
ユーザーがすでにDWROLEロールを持っている場合は、この権限が含まれているため、追加で付与する必要はありません。 -
Select AIおよびAIプロバイダ・エンドポイントを使用するユーザーにネットワークACLアクセス権を付与します。
システム管理者は、ネットワークACLアクセス権を付与できます。詳細は、APPEND_HOST_ACEプロシージャを参照してください。
- AIプロバイダへのアクセスを有効にする資格証明を作成します。
詳細は、unresolvable-reference.html#GUID-742FC365-AA09-48A8-922C-1987795CF36Aを参照してください。
-
RAGによるSelect AIを使用するユーザーに、特定の表領域内の領域の量を管理するための表領域の割当て制限を付与します。
親トピック: Select AIの前提条件の設定
Select AIを実行する権限の例
Select AIとその機能を使用するために必要な権限の例を確認します。
EXECUTE権限をADB_USERに付与します。GRANT execute on DBMS_CLOUD_AI to ADB_USER;次の例では、RAGに必要なDBMS_CLOUD_PIPELINEパッケージに対するEXECUTE権限を付与します:
GRANT EXECUTE on DBMS_CLOUD_PIPELINE to ADB_USER;
DBMS_CLOUD_AIおよびDBMS_CLOUD_PIPELINEパッケージに対する権限がユーザーに付与されているかどうかを確認するために、管理者は次のSQL文を実行できます:
SELECT table_name AS package_name, privilege
FROM DBA_TAB_PRIVS
WHERE grantee = '<username>'
AND (table_name = 'DBMS_CLOUD_PIPELINE'
OR table_name = 'DBMS_CLOUD_AI');
ADB_USERに付与します。
ノート:
このプロシージャは、OCI生成AIには適用されません。BEGIN
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
host => 'api.openai.com',
ace => xs$ace_type(privilege_list => xs$name_list('http'),
principal_name => 'ADB_USER',
principal_type => xs_acl.ptype_db)
);
END;
/
パラメータは次のとおりです:
-
host: ホスト。ホストの名前またはIPアドレスを指定できます。ワイルドカードを使用して、ドメインまたはIPサブネットを指定できます。ホストまたはドメイン名では、大文字と小文字は区別されません。AIプロバイダ ホスト OpenAI
api.openai.com
OpenAI互換プロバイダ
たとえば、Fireworks AIの場合は、api.fireworks.aiを使用します
Cohere
api.cohere.ai
Azure OpenAI Service
<azure_resource_name>.openai.azure.com
azure_resource_nameの詳細は、unresolvable-reference.html#GUID-12D91681-B51C-48E0-93FD-9ABC67B0F375を参照してください。Google
generativelanguage.googleapis.com
Anthropic
api.anthropic.com
Hugging Face
api-inference.huggingface.co
AWS
bedrock-runtime.us-east-1.amazonaws.com
-
ace: アクセス制御エントリ(ACE)。ACLの各ACEエントリを作成するために、XS$ACE_TYPEタイプが提供されています。詳細は、ACLおよびACEの作成を参照してください。
次の例は、OpenAIへのアクセスを有効にする資格証明を作成しています。
EXEC
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'OPENAI_CRED',
username => 'OPENAI',
password => '<your_api_token>');
パラメータは次のとおりです:
-
credential_name: 格納する資格証明の名前。credential_nameパラメータは、Oracleオブジェクトの命名規則に準拠している必要があります。 -
username:username引数とpassword引数で、AIプロバイダの資格証明を指定します。usernameはユーザー指定のユーザー名です。 -
password:username引数とpassword引数で、AIプロバイダの資格証明を指定します。passwordは、AIプロバイダの秘密APIキーであり、プロバイダによって異なります:AIプロバイダ APIキー OpenAI
APIキーを取得するには、「OpenAIの使用」を参照してください。
OpenAI互換プロバイダ
APIキーおよび
provider_endpointを取得するには、「OpenAI互換プロバイダの使用」を参照してください。Cohere
APIキーを取得するには、「Cohereの使用」を参照してください。
Azure OpenAI Service
APIキーを取得してサービスを構成するには、「Azure OpenAI Serviceの使用」を参照してください。
ノート:
Azure OpenAI Serviceプリンシパルを使用して認証している場合は、DBMS_CLOUD.CREATE_CREDENTIALプロシージャをスキップできます。Azure OpenAI Serviceプリンシパルを使用した認証の例は、「Select AIの使用例」を参照してください。OCI生成AI
API署名キーを生成するには、「OCI生成AIの使用」を参照してください。
Google
APIキーを生成するには、「Googleの使用」を参照してください。
Anthropic
APIキーを生成するには、「Anthropicの使用」を参照してください。
Hugging Face
APIキーを生成するには、「Hugging Faceの使用」を参照してください。
AWS
APIキーおよびモデルIDを取得するには、「AWSの使用」を参照してください。
次の例では、RAGによるSelect AIを使用するために、表領域の割当て制限をADB_USERに付与しています:
ALTER USER ADB_USER QUOTA 1T ON <tablespace_name>;
ユーザーに付与された表領域割当て制限を確認するには、次のSQL文を実行します:
SELECT TABLESPACE_NAME, BYTES, MAX_BYTES
FROM DBA_TS_QUOTAS
WHERE USERNAME = '<username>' AND
TABLESPACE_NAME LIKE 'DATA%';
パラメータは次のとおりです:
TABLESPACE_NAME: 割当て制限が割り当てられている表領域。Autonomous AI Databaseでは、表領域が自動的に管理され、接頭辞としてDATAが付いています。BYTES: 表領域でユーザーが現在使用している領域の量。MAX_BYTES: 割り当てられる最大割当て容量(バイト単位)。MAX_BYTESが-1の場合は、ユーザーの表領域に対する割当てが無制限であることを意味します。ベクトル索引を作成するデータベース・ユーザーは、ベクトル索引を収容するためのバイト数よりもMAX_BYTESが十分大きいか、MAX_BYTESに-1にして割当てを無制限にする必要があります。
親トピック: Select AIの前提条件の設定
サポートされているAIプロバイダを使用するためのSelect AIの構成
Select AIでAIプロバイダを使用できるようにする方法について説明します。
- Anthropicの使用
Anthropic Developer Consoleで自然言語プロンプトに対するSQLの生成およびテキスト応答を生成できるようにするには、Anthropic Developer Consoleの有償アカウントからAPIキーを取得します。 - AWSの使用
AWSを有効にするには、APIキーおよびモデルIDを取得します。 - Azure OpenAI Serviceの使用
Azure OpenAI Serviceで自然言語プロンプトに対するSQLおよびテキスト応答を生成できるようにするには、AIプロバイダを構成してアクセスできるようにします。 - Cohereの使用
Cohereで自然言語プロンプトに対するSQLおよびテキスト応答を生成できるようにするには、Cohere有償アカウントからAPIキーを取得します。 - Googleの使用
Google AI Studioで自然言語プロンプトに対するSQLおよびテキスト・レスポンスを生成できるようにするには、Google AI Studio有償アカウントからAPIキーを取得します。 - Hugging Faceの使用
Hugging FaceをAIプロバイダとして使用して、自然言語プロンプトに対するSQLおよびテキスト応答を生成できるようにするには、Hugging Face有償アカウントからAPIキーを取得します。 - OCI生成AIの使用
OCI生成AIで自然言語プロンプトに対するSQLおよびテキスト応答を生成できるようにするには、API署名キーを生成します。 - OpenAIの使用
OpenAIで自然言語プロンプトに対するSQLおよびテキスト応答を生成できるようにするには、OpenAI有償アカウントからAPIキーを取得します。 - OpenAI互換プロバイダの使用
OpenAIと互換性のあるプロバイダを有効にするには、APIキーを取得します。
親トピック: Select AIの前提条件の設定
Anthropicの使用
Anthropic Developer Consoleで自然言語プロンプトに対するSQLおよびテキスト応答を生成できるようにするには、Anthropic Developer Consoleの有償アカウントからAPIキーを取得します。
AWSの使用
AWSを有効にするには、APIキーとモデルIDを取得します。
APIキーを取得し、それを使用してDBMS_CLOUD.CREATE_CREDENTIALを介して資格証明を作成します。
APIキーおよびモデル名を取得するには、次のプロセスに従います:
Azure OpenAI Serviceの使用
Azure OpenAI Serviceで自然言語プロンプトに対するSQLおよびテキスト応答を生成できるようにするには、AIプロバイダを構成してアクセスできるようにします。
Cohereの使用
Cohereで自然言語プロンプトに対してSQLおよびテキスト応答を生成できるようにするには、Cohere有償アカウントからAPIキーを取得します。
-
資格情報を使用してCohereのWebサイトにログインします。デフォルトでCohere Dashboardが表示されます。
-
または、「Dashboard」をクリックします。
-
左側のナビゲーションで「API Keys」をクリックします。デフォルトのAPIキーをコピーするか、別のキーを作成します。詳細は、「API-Keys」を参照してください。
Googleの使用
Google AI Studioで自然言語プロンプトに対するSQLおよびテキスト応答を生成できるようにするには、Google AI Studio有償アカウントからAPIキーを取得します。
Hugging Faceの使用
Hugging FaceをAIプロバイダとして有効にし、自然言語プロンプトに対するSQLおよびテキスト応答を生成するには、Hugging Face有償アカウントからAPIキーを取得します。
- Hugging Faceに移動します。
- アカウントがまだない場合は、アカウントをサインアップします。
- アカウント設定に移動します。
- ナビゲーション・メニューで、「Access Tokens」を見つけます。
- クリックすると、新しいAPIキーが作成されます。
- 生成されたAPIキーをコピーして保存します。
OCI生成AIの使用
OCI生成AIで自然言語プロンプトに対するSQLおよびテキスト応答を生成できるようにするには、API署名キーを生成します。
OpenAIの使用
OpenAIで自然言語プロンプトに対するSQLおよびテキスト応答を生成できるようにするには、OpenAI有償アカウントからAPIキーを取得します。
秘密APIキーは、プロファイル・ダッシュボードの「API keys」の下にあります。
OpenAI互換プロバイダの使用
OpenAIと互換性のあるプロバイダを有効にするには、APIキーを取得します。
OpenAI互換プロバイダではBearer認証が使用されます。APIキーを取得し、それを使用してDBMS_CLOUD.CREATE_CREDENTIALを介して資格証明を作成します。たとえば、Fireworks AIはOpenAI互換プロバイダです。
Fireworks AIのAPIキー、モデルのベース・パスURL、およびモデル名を取得するには、次のプロセスに従います:
- Fireworks AIのアカウントがまだない場合は、アカウントをサインアップします。
- Fireworks AIコンソールからAPIキーを作成します。
- 生成されたAPIキーをコピーして保存します。
DBMS_CLOUD_AI.CREATE_PROFILEプロシージャで必要なプロバイダ・エンドポイントを取得します:- 同じAPIの例から、モデル名をコピーします。
DBMS_CLOUD_AI.CREATE_PROFILEプロシージャではモデル名が必要となります。たとえば、accounts/fireworks/models/llama-v3p2-3b-instructです。
AIプロファイルの作成および設定
AIプロファイルを作成して有効にする手順について説明します。
AIプロファイルを作成するには、DBMS_CLOUD_AI.CREATE_PROFILEを使用します。DBMS_CLOUD_AI.SET_PROFILEを実行して、自然言語プロンプトでSELECT AIを使用できるようにAIプロファイルを有効にします。
ノート:
SELECT AIを使用する前に、新しいステートフル・データベース・セッション(接続)ごとにDBMS_CLOUD_AI.SET_PROFILEを実行する必要があります。ステートレス接続を使用している場合は、呼出しごとにプロファイル名を指定できるDBMS_CLOUD_AI.GENERATEファンクションを使用する必要があります。
次の例では、OpenAIプロバイダを使用して、OPENAIというAIプロファイルを作成し、現在のユーザー・セッションのOPENAIプロファイルを設定します。
-- Create AI profile
--BEGIN
DBMS_CLOUD_AI.CREATE_PROFILE(
profile_name => 'OPENAI',
attributes =>'{"provider": "openai",
"credential_name": "OPENAI_CRED",
"object_list": [{"owner": "SH", "name": "customers"},
{"owner": "SH", "name": "sales"},
{"owner": "SH", "name": "products"},
{"owner": "SH", "name": "countries"}]
}');
END;
/
PL/SQL procedure successfully completed.
--
-- Enable AI profile in current session
--
EXEC DBMS_CLOUD_AI.set_profile('OPENAI');
PL/SQL procedure successfully completed.
親トピック: AIプロファイルの管理