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

    Cohere

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

    Azure OpenAIサービス

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

    OCI生成AI

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

    Google

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

    人類学

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

    ハギング面

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

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

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

DBMS_CLOUD_AIの有効化

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

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

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

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

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

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

次の例では、ADB_USEREXECUTE権限を付与します。
grant execute on DBMS_CLOUD_AI to ADB_USER;

次の例では、api.openai.comエンドポイントを使用する権限をADB_USERに付与します。

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

    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

  • ace: アクセス制御エントリ(ACE)。ACLの各ACEエントリを作成するために、XS$ACE_TYPEタイプが提供されています。詳細は、Creating ACLs and ACEsを参照してください。

次の例では、OpenAIへのアクセスを有効にする資格証明を作成します。

EXEC DBMS_CLOUD.CREATE_CREDENTIAL('OPENAI_CRED', 'OPENAI', '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の使用を参照してください。

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

トピック

OpenAIの使用

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

秘密APIキーはユーザー設定にあります。

Cohereの使用

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

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

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

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

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サービスへのアクセスを許可:

OCI生成AIの使用

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

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

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

人類学の使用

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

  1. Anthropic Developer Consoleに移動します。
  2. まだアカウントがない場合はサインアップします。
  3. ログインしたら、APIセクションまたはダッシュボードに移動します。
  4. APIキーを生成または表示するオプションを探します。
  5. クリックして新しいAPIキーを作成します。
  6. 生成されたAPIキーをコピーして保存します。
    Claude APIは有料サービスです。APIキーを使用する前に、アカウントにクレジットを追加する必要があります。

ハギング面を使用

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

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

AIプロファイルの作成と設定

AIプロファイルを作成して有効にする手順について説明します。

AIプロファイルを作成するには、DBMS_CLOUD_AI.CREATE_PROFILEを使用します。DBMS_CLOUD_AI.SET_PROFILEを実行してAIプロファイルを有効にし、自然言語プロンプトでSELECT AIを使用できるようにします。

ノート

SELECT AIを使用する前に、新しいステートフル・データベース・セッション(接続)ごとにDBMS_CLOUD_AI.SET_PROFILEを実行する必要があります。ステートレス接続を使用している場合は、各呼出しでプロファイル名を指定できるDBMS_CLOUD_AI.GENERATE関数を使用する必要があります。

次の例では、OpenAIプロバイダを使用して、OPENAIというAIプロファイルを作成し、現在のユーザー・セッションのOPENAIプロファイルを設定します。

-- Create AI profile
--
SQL> BEGIN
  DBMS_CLOUD_AI.create_profile(
      'OPENAI',
      '{"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
--
SQL> EXEC DBMS_CLOUD_AI.set_profile('OPENAI');
 
PL/SQL procedure successfully completed.