機械翻訳について

AIプロファイルの管理

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

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

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

AIプロファイルには、自然言語問合せのターゲットであるデータベース・オブジェクトが含まれます。 これらのターゲットから使用されるMetadataには、データベース表名、列名、列データ型およびコメントを含めることができます。 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 Databaseインスタンスへのアクセス。
  • サポートされているAIプロバイダの有料APIアカウント。次のいずれかです:
    AIプロバイダ APIキー

    OpenAI

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

    Cohere

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

    Azure OpenAI Service

    Azure OpenAI Serviceの構成方法の詳細は、「Azure OpenAI Serviceの使用」を参照してください。

    OCI生成AI

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

    Google

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

    Anthropic

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

    Hugging Face

    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. DBMS_CLOUD_PIPELINEに対するEXECUTE権限を、Select AI with RAGを使用するユーザーに付与します。

    ノート:

    ユーザーにすでにDWROLEロールがある場合は、この権限が含まれ、追加の権限は必要ありません。
  3. ネットワークACLアクセス権を、Select AIおよびAIプロバイダ・エンドポイントに使用するユーザーに付与します。

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

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

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

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

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');
次の例では、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

    Cohere

    api.cohere.ai

    Azure OpenAI Service

    <azure_resource_name>.openai.azure.com

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

    Google

    generativelanguage.googleapis.com

    Anthropic

    api.anthropic.com

    Hugging Face

    api-inference.huggingface.co

  • ace: アクセス制御エントリ(ACE)。 XS$ACE_TYPE型は、ACLの各ACEエントリを構築するために提供されています。 詳細は、「ACLおよびACEの作成」を参照してください。

次の例では、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の使用」を参照してください。

    Cohere

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

    Azure OpenAI Service

    APIキーの取得およびサービスの構成については、「Azure OpenAI Serviceの使用」を参照してください。

    ノート:

    「Azure OpenAI Service」プリンシパルを使用して認証する場合は、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の使用」を参照してください。

次の例では、表領域の割当て制限をADB_USERに付与して、Select AI with RAGを使用します:

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にする必要があります。

トピック

OpenAIの使用

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

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

Cohereの使用

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

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

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

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

Azure OpenAI Serviceの使用

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

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

    ヒント:

    • これらのパラメータを使用してネットワーク・アクセス権限を付与し、DBMS_CLOUD_AI.CREATE_PROFILEプロシージャを使用して「Azure OpenAI Service」プロファイルを作成するため、リソース名とデプロイメント名をノートにとります。
    • モデルの1分当たりのトークンのレート制限については、「Azure OpenAI Serviceの割当て制限と制限」を参照してください。
  3. Azure OpenAI Serviceへのアクセスを許可します:

OCI生成AIの使用

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

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

Googleの使用

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

  1. Google AIスタジオにアクセスしてください。
  2. 「Google AI Studioにログイン」をクリックします。
  3. プロンプト画面で「Get API key」をクリックします。
  4. 次のページで、該当するオプションをすべて選択します。
  5. 「Create API key」をクリックします。
  6. 「Create API key in new project」をクリックします。
    画面に進行状況が表示され、APIキーが生成されます。 キーをコピーして保存します。

Anthropicの使用

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

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

Hugging Faceの使用

Hugging FaceをAIプロバイダとして有効にして、自然言語プロンプトに対する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
--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.