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を構成するには:

  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_USERapi.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キーを取得します。

  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キーが生成されます。キーをコピーして保存します。

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_endpointhttps://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関数を使用する必要があります。

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