AIプロファイルの管理
AIプロファイルは、DBMS_CLOUD_AIパッケージを使用して作成および管理できます。
ノート
関連項目: データベースとの自然言語相互作用のためのSelect AIの使用
DBMS_CLOUD_AIを使用したAIプロファイルの構成
自律型AIデータベースは、AIプロファイルを使用してLLMへのアクセスを容易におよび構成し、自然言語プロンプトに基づいてSQLを生成、実行および説明するように設定します。また、埋込みモデルおよびベクトル索引を使用した取得拡張生成が容易になり、LLMとのチャットが可能になります。
AIプロファイルには、自然言語クエリの対象となるデータベース・オブジェクトが含まれます。これらのターゲットから使用されるメタデータには、データベース表名、列名、列データ型およびコメントを含めることができます。AIプロファイルを作成および構成するには、DBMS_CLOUD_AI.CREATE_PROFILEおよび DBMS_CLOUD_AI.SET_PROFILEプロシージャを使用します。
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 Cohereの使用を参照して、シークレットAPIキーを取得します。 Azure OpenAIサービス Azure OpenAIサービスの構成方法の詳細は、「Azure OpenAIサービスの使用」を参照してください。 OCI生成AI OCI生成AIの使用を参照してください。 Google APIキーを取得するには、Googleの使用を参照してください。 Anthropic APIキーを取得するには、Anthropicの使用を参照してください。 Hugging Face APIキーを取得するには、Hugging Faceの使用を参照してください。 AWS APIキーおよびモデルIDを取得するには、AWSの使用を参照してください。 -
外部AIプロバイダにアクセスするためのネットワークACL権限。
ノート
ノート:ネットワークACL権限は、OCI生成AIには必要ありません。 -
AIプロバイダへのアクセスを提供する資格証明。
Select AIの権限の付与
Select AIを使用するには、管理者がDBMS_CLOUD_AIパッケージに対するEXECUTE権限を付与する必要があります。Select AIとその機能に必要な追加の権限について学習します。
DBMS_CLOUD_AIを構成するには:
-
Select AIを使用するユーザーに、
DBMS_CLOUD_AIパッケージに対するEXECUTE権限を付与します。デフォルトでは、システム管理者のみが
EXECUTE権限を持ちます。管理者は、EXECUTE権限を他のユーザーに付与できます。 -
DBMS_CLOUD_PIPELINEに対するEXECUTE権限を、RAGでSelect AIを使用するユーザーに付与します。ノート
ノート:ユーザーがすでにDWROLEロールを持っている場合、この権限が含まれ、追加の付与は必要ありません。 -
Select AIを使用するユーザーおよびAIプロバイダ・エンドポイントに対して、ネットワークACLアクセス権を付与します。
システム管理者は、ネットワークACLアクセス権を付与できます。詳細は、APPEND_HOST_ACEプロシージャを参照してください。
-
資格証明を作成して、AIプロバイダへのアクセスを有効にします。
詳細は、「CREATE_CREDENTIALプロシージャ」を参照してください。
-
Select AI with RAGを使用するユーザーに、特定の表領域内の領域量を管理するための表領域内の割当て制限を付与します。
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パッケージについてユーザーに付与された権限を確認するために、管理者は次を実行できます。
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にapi.openai.comエンドポイントを使用する権限を付与します。
ノート
ノート:この手順は、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 アフィリエイト OpenAI互換プロバイダ たとえば、Fireworks AIの場合はapi.fireworks.aiを使用します。 Cohere api.cohere.ai Azure OpenAIサービス <azure_resource_name>.openai.azure.com。azure_resource_nameの詳細は、「プロファイル属性」を参照してください。Google 生成言語.googleapis.com Anthropic アピアントロピック Hugging Face api-inference.huggingface.co AWS Bedrock-runtime.us-east-1.amazonaws.com -
ace: アクセス制御エントリ(ACE)。ACLの各ACEエントリを作成するために、XS$ACE_TYPEタイプが提供されています。詳細は、Creating ACLs and ACEsを参照してください。
次の例では、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プロバイダの秘密キーであり、プロバイダによって異なります:AIプロバイダ APIキー OpenAI APIキーを取得するには、OpenAIの使用を参照してください。 OpenAI互換プロバイダ APIキーおよび provider_endpointを取得するには、OpenAI互換プロバイダの使用を参照してください。Cohere APIキーを取得するには、Cohereの使用を参照してください。 Azure OpenAIサービス APIキーを取得してサービスを構成するには、Azure OpenAIサービスの使用を参照してください。
ノート
Azure OpenAIサービス・プリンシパルを使用して認証する場合は、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>;ユーザーに付与されている表領域割当て制限を確認するには、次を実行します。
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である必要があります。
サポートされているAIプロバイダを使用するための Select AIの構成
AIプロバイダーがSelect AIで使用できるようにする方法をご紹介します。
Anthropicの使用
Anthropic開発者コンソールで自然言語プロンプトに対するSQLおよびテキスト・レスポンスを生成できるようにするには、Anthropic開発者コンソールの有料アカウントからAPIキーを取得します。
-
Anthropic Developer Consoleに移動します。
-
まだアカウントがない場合はアカウントにサインアップします。
-
ログインしたら、APIセクションまたはダッシュボードに移動します。
-
APIキーを生成または表示するオプションを探します。
-
新規APIキーを作成する場合にクリックします。
-
生成されたAPIキーをコピーして保存します。
Claude APIは有料サービスです。APIキーを使用する前に、アカウントにクレジットを追加する必要があります。
AWSの使用
AWSを有効にするには、APIキーとモデルIDを取得します。
APIキーを取得し、それを使用してDBMS_CLOUD.CREATE_CREDENTIALを介して資格証明を作成します。
次のプロセスに従って、APIキーおよびモデル名を取得します:
-
AWSアカウントをお持ちでない方は、登録してください。
-
AWS Bedrock Consoleからアクセス・キーと秘密キーを作成します。
-
生成されたキーをコピーして保存します。
-
基盤モデルへのアクセスをリクエストします。Amazon Bedrockの基盤モデルにアクセスを参照してください。
-
モデルIDを取得します。
DBMS_CLOUD_AI.CREATE_PROFILEプロシージャでモデルIDが必要です。モデルIDは、使用するリソースによって異なります。次のものを使用する場合:-
ベース・モデルで、モデルIDまたはそのARN(Amazonリソース名)を指定します。ベース・モデルのモデルIDのリストは、Amazon Bedrockベース・モデルIDを参照してください
-
推論プロファイル。推論プロファイルIDまたはそのARNを指定します。推論プロファイルIDのリストは、「クロス・リージョン推論でサポートされているリージョンおよびモデル」を参照してください。
-
プロビジョニングされたモデルで、プロビジョニングされたスループットのARNを指定します。詳細は、プロビジョニングされたスループットを使用した推論の実行を参照してください。
-
カスタム・モデルで、そのためのプロビジョニング済スループットを購入します。次に、生成されたプロビジョニング済モデルのARNを指定します。詳細は、Amazon Bedrockでのカスタム・モデルの使用を参照してください。
-
Amazon Bedrock Marketplaceモデルで、作成したマーケットプレイス・エンドポイントのIDまたはARNを指定します(Amazon Bedrock Marketplaceを参照)。
-
ノート
ノート:インポートされたモデルは、Bedrock Converse APIではサポートされていません。
プロバイダとしてAWSを使用するには、例: AWSを使用したSelect AIを参照してください。
Azure OpenAIサービスの使用
Azure OpenAI Serviceで自然言語プロンプトに対するSQLおよびテキスト・レスポンスを生成できるようにするには、AIプロバイダを構成してアクセスを提供します。
Azure OpenAIサービスを使用するには、次のステップを実行します:
-
シークレットAPIキーを取得します。APIキーは、Azureポータルの「Resource Management」セクションにあります。Azure OpenAIサービス・リソース・ページで、「キーとエンドポイント」をクリックします。KEY1またはKEY2をコピーできます。
-
Azure OpenAI Serviceリソースを作成し、モデルをデプロイします: Azure OpenAI Serviceリソースの作成およびデプロイ。
ヒント:
-
これらのパラメータは、ネットワーク・アクセス権限を提供し、
DBMS_CLOUD_AI.CREATE_PROFILEプロシージャを使用してAzure OpenAIサービス・プロファイルを作成するために使用されるため、リソース名とデプロイメント名をノートにとります。 -
モデルのトークンの1分当たりのレート制限については、Azure OpenAIサービスの割当て制限と制限を参照してください。
-
-
Azure OpenAIサービスへのアクセスを許可します:
-
秘密APIキーを使用して、Azure OpenAI Serviceへのアクセスを許可できます。詳細は、「Select AIの使用例」の例を参照してください。
-
サービス・プリンシパルがAzure OpenAIサービスにアクセスできるようにし、必要な権限をサービス・プリンシパルに付与します: Azureサービス・プリンシパルを使用したAzureリソースへのアクセスおよびAzure OpenAIサービスのロールベースのアクセス制御。詳細については、Examples of Using Select AIの例を参照してください。
-
Cohereの使用
Cohereが自然言語プロンプトに対するSQLおよびテキスト・レスポンスを生成できるようにするには、Cohere有料アカウントからAPIキーを取得します。
-
資格情報でCohereのWebサイトにログインします。Cohere Dashboardがデフォルトで表示されます。
-
または、「ダッシュボード」をクリックします。
-
左側のナビゲーションで「APIキー」をクリックします。デフォルトのAPIキーをコピーするか、別のキーを作成します。詳細は、「API-Keys」を参照してください。
Googleを使う
Google AI Studioが自然言語プロンプトに対するSQLおよびテキスト・レスポンスを生成できるようにするには、Google AI Studioの有料アカウントからAPIキーを取得します。
-
Google AI Studioにアクセスします。
-
「Sign In to Google AI Studio」をクリックします。
-
プロンプト画面で「Get API key」をクリックします。
-
次のページで適用可能なすべてのオプションを選択します。
-
「APIキーの作成」をクリックします。
-
新規プロジェクトで「APIキーの作成」をクリックします。
画面に進行状況が表示され、APIキーが生成されます。キーをコピーして保存します。
Hugging Faceを使用
AIプロバイダとしてHugging Faceが自然言語プロンプトに対するSQLおよびテキスト・レスポンスを生成できるようにするには、Hugging Face有料アカウントからAPIキーを取得します。
-
Hugging Faceに移動します。
-
まだアカウントがない場合はアカウントにサインアップします。
-
アカウント設定に移動します。
-
ナビゲーション・メニューで、「アクセス・トークン」を見つけます。
-
新規APIキーを作成する場合にクリックします。
-
生成されたAPIキーをコピーして保存します。
OCI生成AIの使用
OCI生成AIが自然言語プロンプトに対するSQLおよびテキスト・レスポンスを生成できるようにするには、API署名キーを生成します。
コンソールまたはコマンドラインを使用して、Oracle AI DatabaseインスタンスのAPI署名キーを生成します。API署名キーの生成方法を参照してください。
OpenAIの使用
OpenAIで自然言語プロンプトに対するSQLおよびテキスト・レスポンスを生成できるようにするには、OpenAI有料アカウントからAPIキーを取得します。
秘密APIキーは、プロファイル・ダッシュボードのAPIキーの下にあります。
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プロシージャで必要なプロバイダ・エンドポイントを取得します。-
使用可能なモデルをクリックして、使用可能なモデルの1つを選択します。
-
APIの例までスクロールし、OpenAI互換のベースURLパスを取得します。
Llama 3.2 3B Instructモデルの場合、ベース・パスURLはhttps://api.fireworks.ai/inference/v1/chat/completionsです。provider_endpointパラメータの場合は、/v1/chat/completionsを除外します。前述のモデルのprovider_endpointはhttps://api.fireworks.ai/inferenceです。
ノート
ノート:一部のプロバイダでは、モデル名に接頭辞が必要な場合があります。正しい形式については、AIプロバイダのドキュメントを参照してください。 -
-
同じAPIの例から、モデル名をコピーします。
DBMS_CLOUD_AI.CREATE_PROFILEプロシージャでモデル名が必要です。たとえば、accounts/fireworks/models/llama-v3p2-3b-instructです。
OpenAI互換プロバイダとしてFirework AIを使用するには、例: OpenAI互換プロバイダを使用するSelect AIを参照してください。
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.注意:
Oracle Machine Learning UI (OML)で事前構築済のテンプレート・ノートブックを使用して、AIプロファイルを作成および構成することもできます。Oracle Machine Learning UIで、「テンプレート」にナビゲートし、「例」に移動します。キーワードSelectAIを使用してノートブックをフィルタし、SQLおよびPython APIを使用して設定例にアクセスします。
次の詳細は、SelectAI4Py -0- 前提条件および設定およびSelectAI4SQL -0- 前提条件および設定テンプレート・ノートを参照してください:
-
OCI GenAIサービスのクラウド認証資格証明の作成
-
チャット、NL2SQLおよび合成データ生成(SDG)用のAIプロファイルの作成
-
RAGのAIプロファイルの作成