CREATE_CREDENTIAL

ユーザー認証の詳細をOracle Databaseに格納するための資格証明名を作成するには、DBMS_VECTOR.CREATE_CREDENTIAL資格証明ヘルパー・プロシージャを使用します。

用途

データベース内で認証の資格証明を安全に管理することが目的です。こうした資格証明は、Cohere、Google AI、Hugging Face、Oracle Cloud Infrastructure (OCI) Generative AI、OpenAI、Vertex AIなどから選択したサードパーティ・サービス・プロバイダへのREST APIコール時にアクセスを可能にするために必要になります。

資格証明名は、ユーザー名、パスワード、アクセス・トークン、秘密キー、指紋などの認証パラメータを保持します。

Oracle Databaseをサービス・プロバイダとして使用している場合は、資格証明を作成する必要はありません。

警告:

データベースの特定の機能により、たとえば、REST APIへのアクセスを容易にするJSON仕様を使用して、第三者によって個別に提供されるサービスにアクセスできる場合があります。

お客様によるこれらの機能の使用は、お客様自身の責任においてのみ行われ、お客様は、当該第三者サービスの使用に関連するあらゆる条件を遵守する責任を負います。第三者のサービスに関するその他の条件にかかわらず、お客様は、かかるデータベース機能の使用によって、そのリスクを受諾し、当該アクセスにより生じた一切の損害について、Oracleの責任または法的責任を明示的に除外することになります。

構文

DBMS_VECTOR.CREATE_CREDENTIAL (
    CREDENTIAL_NAME     IN VARCHAR2,
    PARAMS              IN JSON DEFAULT NULL
);

CREDENTIAL_NAME

認証パラメータを保持するために作成する資格証明の名前を指定します。

PARAMS

選択したサービス・プロバイダに基づいて、認証パラメータをJSON形式で指定します。

生成AIには、次の認証パラメータが必要です。
{ 
"user_ocid"       : "<user ocid>",
"tenancy_ocid"    : "<tenancy ocid>",
"compartment_ocid": "<compartment ocid>",
"private_key"     : "<private key>",
"fingerprint"     : "<fingerprint>" 
}
Cohere、Google AI、Hugging Face、OpenAIおよびVertex AIには、次の認証パラメータが必要です。
{ "access_token": "<access token>" }

表12-2 パラメータの詳細

パラメータ 説明

user_ocid

OCIコンソールのユーザーの詳細ページにリストされている、ユーザーのOracle Cloud Identifier (OCID)。

tenancy_ocid

OCIコンソールのテナンシの詳細ページにリストされている、テナンシのOCID。

compartment_ocid

OCIコンソールのコンパートメント情報ページにリストされている、コンパートメントのOCID。

private_key

OCI秘密キー。

ノート: 生成された秘密キーは次のように表示されます:
-----BEGIN RSA PRIVATE KEY-----
<private key string>
-----END RSA PRIVATE KEY-----
(BEGINENDの行を除く) <private key string>値を単一行または複数行として渡します。

fingerprint

OCIコンソールのAPIキーの下のユーザーの詳細ページにリストされている、OCIプロファイル・キーの指紋。

access_token

サードパーティ・サービス・プロバイダから取得したアクセス・トークン。

必要な権限

このAPIをコールするには、CREATE CREDENTIAL権限が必要です。

  • 生成AIの場合:
    declare
      jo json_object_t;
    begin
      jo := json_object_t();
      jo.put('user_ocid','ocid1.user.oc1..aabbalbbaa1112233aabbaabb1111222aa1111bb');
      jo.put('tenancy_ocid','ocid1.tenancy.oc1..aaaaalbbbb1112233aaaabbaa1111222aaa111a');
      jo.put('compartment_ocid','ocid1.compartment.oc1..ababalabab1112233abababab1111222aba11ab');
      jo.put('private_key','AAAaaaBBB11112222333...AAA111AAABBB222aaa1a/+');
      jo.put('fingerprint','01:1a:a1:aa:12:a1:12:1a:ab:12:01:ab:a1:12:ab:1a');
      dbms_vector.create_credential(
        credential_name   => 'OCI_CRED',
        params            => json(jo.to_string));
    end;
    /
  • Cohereの場合:
    declare
      jo json_object_t;
    begin
      jo := json_object_t();
      jo.put('access_token', 'A1Aa0abA1AB1a1Abc123ab1A123ab123AbcA12a');
      dbms_vector.create_credential(
        credential_name   => 'COHERE_CRED',
        params            => json(jo.to_string));
    end;
    /

エンドツーエンドの例:

この手順を使用してエンドツーエンドのシナリオ例を実行するには、「LLMを利用するAPIを使用したサマリーおよびテキストの生成」を参照してください。