AIプロファイルの管理

DBMS_CLOUD_AIパッケージを使用して、AIプロファイルを作成および管理できます。

DBMS_CLOUD_AIを使用したAIプロファイルの構成

Autonomous Databaseは、AIプロファイルを使用して、LLMへのアクセスを容易におよび構成し、自然言語プロンプトに基づいてSQLを生成、実行および説明するための設定を行います。また、モデルとベクトル索引の埋込みを使用した取得拡張生成が容易になり、LLMとのチャットが可能になります。

AIプロファイルには、自然言語問合せのターゲットとなるデータベース・オブジェクトが含まれます。これらのターゲットから使用されるメタデータには、データベース表名、列名、列のデータ型およびコメントを含めることができます。AIプロファイルは、DBMS_CLOUD_AI.CREATE_PROFILEおよびDBMS_CLOUD_AI.SET_PROFILEプロシージャを使用して作成および構成します。

AIプロファイルでの表およびビューの指定に加えて、「データ・カタログを使用した外部データの問合せ」で説明されている表など、外部表にマップされた表を指定することもできます。これにより、データベース内だけでなく、データ・レイクのオブジェクト・ストアに格納されているデータも問い合せることができます。

AIの選択の前提条件の実行

「AIの選択」を使用する前に、DBMS_CLOUD_AIを有効にするステップを次に示します。

DBMS_CLOUD_AIを使用するには、次のものが必要です。

  • Oracle Cloud Infrastructureクラウド・アカウントおよびAutonomous Databaseインスタンスへのアクセス。
  • サポートされているAIプロバイダの有料APIアカウント。次のいずれかです。
    AIプロバイダ APIキー

    OpenAI

    APIキーを取得するには、OpenAIの使用を参照してください。

    OpenAI互換プロバイダ

    APIキーおよびprovider_endpointを取得するには、「OpenAI互換プロバイダの使用」を参照してください。

    Cohere

    秘密APIキーを取得するには、Cohereの使用を参照してください。

    Azure OpenAIサービス

    Azure OpenAIサービスの構成方法の詳細は、Azure OpenAIサービスの使用を参照してください。

    OCI生成AI

    OCI生成AIの使用を参照してください。

    Google

    APIキーを取得するには、Googleの使用を参照してください。

    人類学

    APIキーを取得するには、Anthropicの使用を参照してください。

    ハギング面

    APIキーを取得するには、Hugging Faceの使用を参照してください。

    AWS

    APIキーおよびモデルIDを取得するには、AWSの使用を参照してください。

  • 外部AIプロバイダにアクセスするためのネットワークACL権限。
    ノート

    OCI生成AIにはネットワークACL権限は必要ありません。
  • AIプロバイダへのアクセスを提供する資格証明。

Select AIの権限の付与

Select AIを使用するには、管理者が DBMS_CLOUD_AIパッケージに対するEXECUTE権限を付与する必要があります。Select AIとその機能に必要な追加の権限について学習します。

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

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

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

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

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

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

    詳細は、CREATE_CREDENTIALプロシージャに関する項を参照してください。

  5. RAGでSelect AIを使用するユーザーに、特定の表領域の領域量を管理するための表領域の割当て制限を付与します。

選択AIを実行する権限の例

Select AIとその機能の使用に必要な権限の例を確認します。

次の例では、ADB_USEREXECUTE権限を付与します。
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');
次の例では、api.openai.comエンドポイントを使用する権限を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サービス

    <azure_resource_name>.openai.azure.com

    azure_resource_nameの詳細は、「プロファイル属性」を参照してください。

    Google

    generativelanguage.googleapis.com

    人類学

    api.anthropic.com

    ハギング面

    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プロバイダのシークレットAPIキーで、プロバイダによって異なります:

    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の使用を参照してください。

    人類学

    APIキーを生成するには、Anthropicの使用を参照してください。

    ハギング面

    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 Databaseでは、表領域は自動的に管理され、接頭辞としてDATAが付きます。
  • BYTES: 表領域でユーザーが現在使用している領域の量。
  • MAX_BYTES: 割り当てられる最大割当て容量(バイト単位)。MAX_BYTESが-1の場合、表領域に対する割当て制限は無制限です。ベクトル索引を作成するデータベース・ユーザーは、ベクトル索引に対応するためにMAX_BYTESをバイトより十分に大きくするか、MAX_BYTESを無制限の割当て制限に対して-1にする必要があります。

サポートされているAIプロバイダを使用するためのSelect AIの構成

AIプロバイダーがSelect AIで使用できるようにする方法をご紹介します。

人類学の使用

Anthropic Developer Consoleで自然言語プロンプトへのSQLおよびテキスト・レスポンスを生成できるようにするには、Anthropic Developer Consoleの有料アカウントから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を使用したAIの選択を参照してください。

Azure OpenAIサービスの使用

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

Azure OpenAIサービスを使用するには、次のステップを実行します:
  1. 秘密APIキーを取得します。APIキーは、Azureポータルの「Resource Management」セクションにあります。AzureのOpenAIサービス・リソース・ページで、「キーおよびエンドポイント」をクリックします。KEY1またはKEY2をコピーできます。
  2. Azure OpenAIサービス・リソースを作成し、モデルをデプロイします: Azure OpenAIサービス・リソースを作成してデプロイします

    ヒント:

    • これらのパラメータを使用してネットワーク・アクセス権限を提供し、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 Keys」をクリックします。デフォルトの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. 「Create API key」をクリックします。
  6. 「Create API key in new project」をクリックします。
    画面に進行状況が表示され、APIキーが生成されます。キーをコピーして保存します。

ハギング面を使用

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

  1. 「Hugging Face」に移動します。
  2. まだアカウントがない場合はサインアップします。
  3. アカウント設定にナビゲートします。
  4. ナビゲーション・メニューで、「アクセス・トークン」を見つけます。
  5. クリックして新しいAPIキーを作成します。
  6. 生成されたAPIキーをコピーして保存します。

OCI生成AIの使用

OCI生成AIが自然言語プロンプトに対してSQLおよびテキスト・レスポンスを生成できるようにするには、API署名キーを生成します。

コンソールまたはコマンドラインを使用して、Oracle DatabaseインスタンスのAPI署名キーを生成します。API署名キーの生成方法を参照してください。

OpenAIの使用

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

秘密APIキーは、プロファイル・ダッシュボードの「APIキー」の下にあります。

OpenAI互換プロバイダの使用

OpenAIと互換性のあるプロバイダを有効にするには、APIキーを取得します。

OpenAI互換プロバイダはベアラー認証を使用します。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互換プロバイダを使用したAIの選択を参照してください。