AIプロファイルの管理

AIプロファイルは、DBMS_CLOUD_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の使用を参照してください。
    Gemini Enterprise Agent Platformの場合は、Gemini Enterprise Agent PlatformのGoogle Cloud認証の設定を参照してください。
    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を構成するには:

  1. Select AIを使用するユーザーに、DBMS_CLOUD_AIパッケージに対するEXECUTE権限を付与します。

    デフォルトでは、システム管理者のみがEXECUTE権限を持ちます。管理者は、EXECUTE権限を他のユーザーに付与できます。

  2. DBMS_CLOUD_PIPELINEに対するEXECUTE権限を、RAGでSelect AIを使用するユーザーに付与します。

    ノート

    ノート:ユーザーがすでにDWROLEロールを持っている場合、この権限が含まれ、追加の付与は必要ありません。

  3. Select AIを使用するユーザーおよびAIプロバイダ・エンドポイントに対して、ネットワークACLアクセス権を付与します。

    システム管理者は、ネットワークACLアクセス権を付与できます。詳細は、APPEND_HOST_ACEプロシージャを参照してください。

  4. 資格証明を作成して、AIプロバイダへのアクセスを有効にします。

    詳細は、「CREATE_CREDENTIALプロシージャ」を参照してください。

  5. 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
    Geminiエンタープライズ・エージェント・プラットフォーム リージョン・エンドポイントの場合は、<region>-aiplatform.googleapis.comを使用します。
    複数のGoogle Cloudリージョンにデプロイされたアプリケーションの場合、グローバル・エンドポイント(aiplatform.googleapis.com)を使用することを強く検討してください。</br>
    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
    - Gemini Enterprise Agent Platform </br>
    APIキーを生成するには、Googleの使用を参照してください。
    OAuthを設定し、Gemini Enterprise Agent Platformを使用するには、Google Cloud Authentication for Gemini Enterprise Agent Platformの設定を参照してください。
    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キーを取得します。

  1. Anthropic Developer Consoleに移動します。

  2. まだアカウントがない場合はアカウントにサインアップします。

  3. ログインしたら、APIセクションまたはダッシュボードに移動します。

  4. APIキーを生成または表示するオプションを探します。

  5. 新規APIキーを作成する場合にクリックします。

  6. 生成されたAPIキーをコピーして保存します。

    Claude APIは有料サービスです。APIキーを使用する前に、アカウントにクレジットを追加する必要があります。

AWSの使用

AWSを有効にするには、APIキーとモデルIDを取得します。

APIキーを取得し、それを使用してDBMS_CLOUD.CREATE_CREDENTIALを介して資格証明を作成します。

次のプロセスに従って、APIキーおよびモデル名を取得します:

  1. AWSアカウントをお持ちでない方は、登録してください。

  2. AWS Bedrock Consoleからアクセス・キーと秘密キーを作成します。

  3. 生成されたキーをコピーして保存します。

  4. 基盤モデルへのアクセスをリクエストします。Amazon Bedrockの基盤モデルにアクセスを参照してください。

  5. モデルIDを取得します。DBMS_CLOUD_AI.CREATE_PROFILEプロシージャでモデルIDが必要です。モデルIDは、使用するリソースによって異なります。次のものを使用する場合:

ノート

ノート:インポートされたモデルは、Bedrock Converse APIではサポートされていません。

プロバイダとしてAWSを使用するには、例: AWSを使用したSelect AIを参照してください。

Azure OpenAIサービスの使用

Azure OpenAI Serviceで自然言語プロンプトに対するSQLおよびテキスト・レスポンスを生成できるようにするには、AIプロバイダを構成してアクセスを提供します。

Azure OpenAIサービスを使用するには、次のステップを実行します:

  1. シークレットAPIキーを取得します。APIキーは、Azureポータルの「Resource Management」セクションにあります。Azure OpenAIサービス・リソース・ページで、「キーとエンドポイント」をクリックします。KEY1またはKEY2をコピーできます。

  2. Azure OpenAI Serviceリソースを作成し、モデルをデプロイします: Azure OpenAI Serviceリソースの作成およびデプロイ。

    ヒント:

    • これらのパラメータは、ネットワーク・アクセス権限を提供し、DBMS_CLOUD_AI.CREATE_PROFILEプロシージャを使用してAzure OpenAIサービス・プロファイルを作成するために使用されるため、リソース名とデプロイメント名をノートにとります。

    • モデルのトークンの1分当たりのレート制限については、Azure OpenAIサービスの割当て制限と制限を参照してください。

  3. Azure OpenAIサービスへのアクセスを許可します:

Cohereの使用

Cohereが自然言語プロンプトに対するSQLおよびテキスト・レスポンスを生成できるようにするには、Cohere有料アカウントからAPIキーを取得します。

  1. 資格情報でCohereのWebサイトにログインします。Cohere Dashboardがデフォルトで表示されます。

  2. または、「ダッシュボード」をクリックします。

  3. 左側のナビゲーションで「APIキー」をクリックします。デフォルトのAPIキーをコピーするか、別のキーを作成します。詳細は、「API-Keys」を参照してください。

Googleを使う

Google AI Studioが自然言語プロンプトに対するSQLおよびテキスト・レスポンスを生成できるようにするには、Google AI Studioの有料アカウントからAPIキーを取得します。

  1. Google AI Studioにアクセスします。

  2. 「Sign In to Google AI Studio」をクリックします。

  3. プロンプト画面で「Get API key」をクリックします。

  4. 次のページで適用可能なすべてのオプションを選択します。

  5. 「APIキーの作成」をクリックします。

  6. 新規プロジェクトで「APIキーの作成」をクリックします。

    画面に進行状況が表示され、APIキーが生成されます。キーをコピーして保存します。

Gemini Enterprise Agent PlatformのGoogle Cloud認証の設定

Gemini Enterprise Agent Platformでは、Google Cloud OAuth 2.0認証を使用します。Google Gemini Enterprise Agent PlatformのSelect AIプロファイルを構成する前に、Google Cloudプロジェクトを設定し、プロファイルに必要なOAuth 2.0資格証明を取得します。

Googleの現在の製品用語の詳細は、Gemini Enterprise Agent Platform名の変更を参照してください。

Google Cloudプロジェクトの設定
  1. Google Cloudコンソールにサインインします。

  2. Google Cloudプロジェクトを作成するか、既存のプロジェクトを選択します。

    プロジェクトおよび開発環境の設定の詳細は、「プロジェクトおよび開発環境の設定」を参照してください。

    Google Cloudプロジェクトの作成と管理に関する一般情報は、プロジェクトの作成および管理を参照してください。

  3. 「プロジェクトID」を記録します。

    Google Cloudは、各プロジェクトに一意のプロジェクトIDを割り当てます。Select AIプロファイルの作成時に、vertexai_project_id属性にこの値を指定します。詳細は、プロファイル属性を参照してください。

  4. プロジェクトでGemini Enterprise Agent Platform APIを有効にし、Googleアカウントに必要な権限があることを確認します。

    プロジェクトおよび開発環境の設定を参照してください。

  5. 使用するエンドポイントおよびモデルをサポートするGoogle Cloudリージョンを選択します。

    ノート

    ノート: Select AIでは、コンテンツ生成にgenerateContent APIを使用し、生成の埋込みにembedContent APIを使用する公開済Google Gemini埋込みモデルを使用する公開済Google Geminiモデルがサポートされています。Select AIは、Model as a Service (MaaS)、パートナ・モデル、オープン・モデルなど、様々な推論APIを使用するGemini Enterprise Agent Platformを介して使用可能な他のモデルをサポートしていません。Gemini Enterprise Agent Platformでサポートされているモデルのリストは、Gemini Enterprise Agent Platform上のモデル・ガーデンを参照してください。

    リージョン識別子(us-central1など)を記録します。Select AIプロファイルの作成時に、region属性にこの値を指定します。詳細は、プロファイル属性を参照してください。

    サポートされている場所の詳細は、Gemini Enterprise Agent Platformの場所を参照してください。

Google Cloud Shellを使用したOAuth 2.0資格証明の取得

Google Cloud Shellを使用してアプリケーション・デフォルト資格証明(ADC)を生成し、Select AIが必要とするOAuth 2.0資格証明値を取得します。

ノート

ノート:クラウド・シェルは、アクティブなGoogle Cloudセッションを自動的に認証します。この手順では、特にgcloud auth application-default loginを実行して、データベース資格証明に必要なOAuth 2.0値を含むADC資格証明ファイルを作成します。

  1. Google Cloudプロジェクトのクラウド・シェルを開きます。

    Cloud ShellにはGoogle Cloud CLIが含まれ、アクティブなGoogle Cloudプロジェクトが自動的に使用されます。

    クラウド・シェルの認可の詳細は、クラウド・シェルによる認可を参照してください。

  2. クラウド・シェルで、次のコマンドを実行します:

    gcloud auth application-default login
  3. 認証手順に従います。

    Google CloudプロジェクトにアクセスできるGoogleアカウントでサインインし、リクエストされたアクセスを承認します。

  4. 認証が完了すると、Googleによってアプリケーション・デフォルト資格証明JSONファイルが作成されます。

    Googleは、次のデフォルトの場所にファイルを格納します。

    LinuxおよびmacOS

    $HOME/.config/gcloud/application_default_credentials.json

    Windows

    %APPDATA%\gcloud\application_default_credentials.json
  5. ADCファイルを開き、次のOAuth 2.0値を取得します。

    • refresh_token
    • client_id
    • client_secret

    これらの値は、Select AIプロファイルのデータベース資格証明を作成するときに使用します。詳細は、Select AIに対する権限の付与を参照してください。

    コマンドおよびADCの詳細は、次を参照してください。

ノート

ノート: ADCファイルおよびOAuth 2.0資格証明の値は機密のままにします。資格証明を共有したり、ソース・コントロールにコミットしたり、ログまたはドキュメントに含めたりしないでください。

Google Cloudセッション・コントロール

Google Cloud組織管理者は、ユーザーが定期的に再認証を要求するセッション制御ポリシーを構成できます。組織がこのポリシーをOAuth 2.0資格証明に関連付けられたGoogleアカウントに適用すると、構成されたセッションが期限切れになると、リフレッシュ・トークンが機能しなくなる可能性があります。

Googleは、invalid_raptエラー・サブタイプでinvalid_grantエラーを返すことができます。

再認証するには、次のコマンドを再度実行します。

gcloud auth application-default login

更新された資格証明をGoogleが生成した後、DBMS_CLOUD.UPDATE_CREDENTIALを使用して格納されたrefresh_tokenを更新します。詳細は、UPDATE_CREDENTIALプロシージャを参照してください。

この動作は、Google Cloud組織のセッション制御ポリシーによって決まります。通常のOAuthリフレッシュ・トークンの有効期限では、この制限は発生しません。

詳細は、「Google Cloud Platform組織のセッション制御ポリシーの処理」を参照してください。

Hugging Faceを使用

AIプロバイダとしてHugging Faceが自然言語プロンプトに対するSQLおよびテキスト・レスポンスを生成できるようにするには、Hugging Face有料アカウントからAPIキーを取得します。

  1. Hugging Faceに移動します。

  2. まだアカウントがない場合はアカウントにサインアップします。

  3. アカウント設定に移動します。

  4. ナビゲーション・メニューで、「アクセス・トークン」を見つけます。

  5. 新規APIキーを作成する場合にクリックします。

  6. 生成された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およびモデル名を取得します:

  1. Fireworks AIアカウントにまだ登録していない場合は、登録してください。

  2. Fireworks AIコンソールからAPIキーを作成します。

  3. 生成されたAPIキーをコピーして保存します。

  4. DBMS_CLOUD_AI.CREATE_PROFILEプロシージャで必要なプロバイダ・エンドポイントを取得します。

    1. 使用可能なモデルをクリックして、使用可能なモデルの1つを選択します。

    2. 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プロバイダのドキュメントを参照してください。

  5. 同じ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関数を使用する必要があります。

サポートされているAIプロバイダにパブリック・エンドポイントを使用する場合、provider_endpointを指定する必要はありません。Select AIでは適切なパブリック・エンドポイントが使用されます。Select AIがサポートするプロバイダと互換性のあるAPIを実装する別のプロバイダのプライベート・エンドポイントまたはエンドポイントを使用する場合は、provider_endpointを指定します。

次の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プロファイルの作成