環境と API アクセスの設定

このページでは、AlphaEvolve の使用を開始するために必要な環境の初期化、API のプロビジョニング、ユーザー設定の構成の手順について説明します。

  1. 前提条件

  2. AlphaEvolve の設定

前提条件

環境を構成する前に、 Google Cloud組織が基本的な調達とインフラストラクチャの手順を完了していることを確認します。

Google Cloud プロジェクトとライセンス

  • Google Cloud プロジェクト: 専用の Google Cloud プロジェクトを作成します。プロジェクトのプロビジョニングについては、割り当てられた Google Cloud アカウント チームにお問い合わせください。

  • Gemini Enterprise ライセンス: Google Cloud 営業担当者を通じて Gemini Enterprise ライセンスを購入します。トライアル ライセンスを含む Gemini Enterprise のすべての階層で、AlphaEvolve にアクセスできます。

  • ライセンス割り当てに関する注: サービス アカウントの権限借用を介して API を操作するシステム ユーザーごとに 1 つの Gemini Enterprise ライセンスが必要です。 Google Cloud サービス アカウントは、Workspace または Cloud Identity のライセンスを消費しません。

ユーザー プロファイルと IAM の要件

AlphaEvolve ライフサイクルでは、3 つの異なる ID が使用されます。

プロジェクトが次の必須アクセス制御ロールに準拠していることを確認します。

プロフィール 説明 必要なロールと権限
クラウド管理者 初回環境構成、IAM 割り当て、Discovery Engine API と Vertex AI の Gemini API の有効化を 1 回限りで管理します。
  • roles/resourcemanager.projectCreator(組織 / フォルダレベル)
  • roles/billing.user(請求先アカウント レベル)
  • roles/serviceusage.admin
  • Workspace または Cloud Identity の管理者権限
システム ユーザー
(研究者 / 科学者)
最適化テストを構成して実行します。サービス アカウントの権限借用を介して API と厳密にやり取りします。
  • サービス アカウント リソースに付与された roles/iam.serviceAccountTokenCreator
  • 省略可: サービス アカウントをコンピューティング リソース(Vertex AI Workbench など)に接続する場合は roles/iam.serviceAccountUser
サービス アカウント AlphaEvolve on Cloud API サービスと直接やり取りする自動化された ID。
  • roles/discoveryengine.admin(プロジェクト スコープ)

管理ホスト環境

管理用 Linux ホスト( Google Cloud Shell や安全な要塞ホストなど)は、構成スクリプトとテスト ペイロードを実行します。ホストに次の基本的なユーティリティが含まれていることを確認します。

  • Google Cloud SDK: プロジェクト管理コマンドの実行に必要です。ホストに gcloud CLI がない場合は、インストールします。

  • curl: バックエンド API エンドポイントへの HTTP トランスポート アクセスを検証します。Debian または Ubuntu ディストリビューションの場合は、パッケージ マネージャーを使用してユーティリティをインストールします。

    sudo apt update && sudo apt install -y curl
    

AlphaEvolve を設定する

AlphaEvolve の設定には、クラウド管理者とシステム ユーザーの連携が必要です。次のインストール タスクを完了する必要があります。

サービス アカウントを作成する

最適化テスト用のサービス アカウントをプロビジョニングする手順は次のとおりです。クラウド管理者は、管理ホストから次のコマンドを実行する必要があります。

  1. Google Cloud プロジェクト ID を設定します。

    この手順では、ターゲット Google Cloudプロジェクトの環境変数を宣言し、後続のコマンドが正しいコンテキストで動作するようにします。

    PROJECT_ID="my-gcp-project-id"
    

    または、アクティブな CLI プロジェクト ID を動的に取得することもできます。

    PROJECT_ID=$(gcloud config get project)
    
  2. サービス アカウント名を選択します。

    この手順では、サービス アカウントの人間が読める識別子の環境変数を宣言します。これは、作成コマンドで使用されます。

    SA_NAME="alpha-evolve-client"
    
  3. サービス アカウントを作成します。

    このコマンドは、 Google Cloud プロジェクト内に新しいサービス アカウントを登録し、一意の名前、表示名、目的の簡単な説明を定義します。

    gcloud iam service-accounts create "${SA_NAME}" \
      --description="Service Account to call AlphaEvolve on Cloud API service" \
      --display-name="AlphaEvolve Client SA" \
      --project=$PROJECT_ID
    
  4. サービス アカウントのメールアドレス文字列を抽出します。

    このコマンドは、表示名に基づいてサービス アカウントのリストをクエリし、リソースを一意に識別するために、公式メールアドレスを環境変数(SERVICE_ACCOUNT_EMAIL)として抽出します。

    SERVICE_ACCOUNT_EMAIL=$(gcloud iam service-accounts list \
      --filter="displayName:AlphaEvolve Client SA" \
      --format='value(email)' \
      --project=$PROJECT_ID)
    
    echo "Newly created Service Account Email: ${SERVICE_ACCOUNT_EMAIL}"
    
  5. サービス アカウントに Discovery Engine ロールを付与します。

    次の gcloud コマンドを実行して、プロジェクト レベルでサービス アカウントに roles/discoveryengine.admin ロールを付与します。

    gcloud projects add-iam-policy-binding "${PROJECT_ID}" \
      --member="serviceAccount:${SERVICE_ACCOUNT_EMAIL}" \
      --role="roles/discoveryengine.admin" \
      --project="${PROJECT_ID}"
    

    この構成では、次の技術ロジック パラメータが適用されます。

    • --member="serviceAccount:${SERVICE_ACCOUNT_EMAIL}": 管理ロールの機能を受け取るプリンシパルを指定します。

    • --role="roles/discoveryengine.admin": 基盤となる Discovery Engine インスタンス、会話セッション、AlphaEvolveExperiments 子リソースを作成するために必要な権限を付与します。

    • ${SERVICE_ACCOUNT_EMAIL}: プリンシパルが権限を借用できるリソース(新しいサービス アカウント)を指定します。

サービス アカウントの権限を借用する

作成手順を完了したら、gcloud コマンドライン ツールを使用して、新しく作成したサービス アカウントの権限を借用する明示的な権限を研究者(SYSTEM_USER)に付与します。

  1. 権限借用を行うプリンシパルを定義します。変数ターゲット文字列を宣言します。SYSTEM_USER_EMAIL は、最適化実行を行う研究者の企業 ID またはメールアドレスに置き換えます。

    SYSTEM_USER="user:SYSTEM_USER_EMAIL"
    
  2. プリンシパルにトークン作成ロールを付与する: 次のコマンドを実行して、有効期間の短い認証情報トークンの生成機能を指定されたシステム ユーザーにマッピングします。

    gcloud iam service-accounts add-iam-policy-binding \
      "${SERVICE_ACCOUNT_EMAIL}" \
      --member="${SYSTEM_USER}" \
      --role="roles/iam.serviceAccountTokenCreator" \
      --project="${PROJECT_ID}"
    

    この認可バインディングにより、次のことが保証されます。

    • --member="${SYSTEM_USER}": 認証情報の作成権限を受け取るユーザーを指定します。

    • --role="roles/iam.serviceAccountTokenCreator": 有効期間の短い OAuth 2.0 アクセス トークンを生成する権限を付与します。これにより、安全なサービス アカウントの権限借用が実現します。

    • "${SERVICE_ACCOUNT_EMAIL}": 受信ポリシーにバインドされるターゲット サービス アカウント リソースを指定します。

必要な API を有効にする

クラウド管理者は、プロジェクトで次の 2 つの API を有効にする必要があります。

  • Discovery Engine API(discoveryengine.googleapis.com)。Cloud API エンドポイントで AlphaEvolve を提供します。

  • Vertex AI の Gemini API を提供する Vertex AI API(aiplatform.googleapis.com)。AlphaEvolve は、Gemini モデルのアンサンブルを使用して各候補プログラムを生成するため、この API が有効になるまでシステム ユーザーはテストを実行できません。

API を有効にするために必要なロール

API を有効にするには、serviceusage.services.enable 権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を介してこの権限がすでに付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を介してこの権限を取得できます。ロールを付与する方法をご覧ください。

API を有効にする

または、Linux ホストで Google Cloud SDK を使用して両方の API を有効にします。

gcloud services enable discoveryengine.googleapis.com \
  aiplatform.googleapis.com --project="${PROJECT_ID}"

両方の API が有効になっていることを確認します。

gcloud services list --enabled --project="${PROJECT_ID}" \
  --filter="config.name:(discoveryengine.googleapis.com OR aiplatform.googleapis.com)"

Discovery Engine のリソースとセッションを作成する

構成プロセスは、管理 ID の設定からコア アプリケーション データレイヤーのプロビジョニングに移行します。このステージでは、コード変更テストの管理、ルーティング、追跡を行うために、基盤となる API で必要なネストされた論理コンポーネントを構築します。

Discovery Engine のリソース階層

Discovery Engine リソースの階層はGoogle Cloud プロジェクトから始まり、そのリソースは特定のロケーション(リージョン)内にホストされます。この基盤となる構造内で、コレクションは関連リソースの最上位の組織コンテナとして機能します。エンジンは、コア AI アプリケーションをホストするためにコレクション内にプロビジョニングされます。また、アシスタント リソースが構成され、アプリケーションの生成 AI プロパティとツールを管理します。エンジンは、セッション オブジェクトとしてキャプチャされた個々のユーザー インタラクションを管理します。

AlphaEvolveExperiment はセッションの下にネストされ、特定のユーザー インタラクションのコンテキスト内でアルゴリズムの検出と最適化に使用される進化型コーディング エージェントの 1 回の実行を表します。

ディスカバリー エンジンの階層

リソースをプロビジョニングする

  1. Google Cloud プロジェクト ID を設定します。

    このステップでは、ターゲット Google Cloudプロジェクトの環境変数を宣言し、後続のコマンドが正しいコンテキストで動作するようにします。

    PROJECT_ID="my-gcp-project-id"
    

    または

    PROJECT_ID=$(gcloud config get project)
    
  2. エンジン ID を定義します。

    このステップでは、エンジン ID の URL フレンドリな一意の識別子の環境変数を宣言します。

    ENGINE_ID="alpha-evolve-experiment-engine"
    
  3. エンジンを作成します。

    このコマンドは、 Google Cloud プロジェクト内に新しい Engine を登録し、その一意の名前、表示名、SolutionType(SOLUTION_TYPE_GENERATIVE_CHAT)を定義します。

    URL="https://discoveryengine.googleapis.com/v1alpha"
    URL="${URL}/projects/${PROJECT_ID}/locations/global"
    URL="${URL}/collections/default_collection/engines"
    URL="${URL}?engineId=${ENGINE_ID}"
    curl -X POST "${URL}" \
      -H "Content-Type: application/json" \
      -H "x-goog-user-project: ${PROJECT_ID}" \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -d '{
        "display_name": "'"${ENGINE_ID}"'",
        "data_store_ids": [],
        "solution_type": "SOLUTION_TYPE_GENERATIVE_CHAT"
      }'
    
  4. アシスタント ID を定義します。

    このステップでは、アシスタント ID の URL フレンドリな一意の ID の環境変数を宣言します。

    ASSISTANT_ID="default_assistant"
    
  5. アシスタントを作成します。

    このコマンドは、 Google Cloud プロジェクト内に新しいアシスタントを登録し、その一意の名前、表示名、目的の簡単な説明を定義します。

    URL="https://discoveryengine.googleapis.com/v1alpha"
    URL="${URL}/projects/${PROJECT_ID}/locations/global"
    URL="${URL}/collections/default_collection/engines"
    URL="${URL}/${ENGINE_ID}/assistants?assistantId=${ASSISTANT_ID}"
    curl -X POST "${URL}" \
      -H "Content-Type: application/json" \
      -H "x-goog-user-project: ${PROJECT_ID}" \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -d '{
        "display_name": "'"${ASSISTANT_ID}"'",
        "description": null,
        "generation_config": null,
        "web_grounding_type": "WEB_GROUNDING_TYPE_UNSPECIFIED",
        "enabled_actions": null,
        "customer_policy": null
      }'
    

API アクセスをテストする

クラウド管理者が ID のプロビジョニング、サービス アカウントの権限借用、エンジン レイアウトの確認を完了したら、次の最終チェックを実行します。この簡単なスモークテストでは、アクティブな最適化ワークロードを実行する前に、認可とエンドツーエンド接続を検証します。

エンジンの表示と削除

現在のアクセス トークンまたは権限を借用したサービス アカウントを使用して、エンジンを検証、一覧表示、削除します。

  URL="https://discoveryengine.googleapis.com/v1alpha"
  URL="${URL}/projects/${PROJECT_ID}/locations/global"
  URL="${URL}/collections/default_collection/engines"
  curl -X GET "${URL}" \
    -H "Content-Type: application/json" \
    -H "x-goog-user-project: ${PROJECT_ID}" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)"
  URL="https://discoveryengine.googleapis.com/v1alpha"
  URL="${URL}/projects/${PROJECT_ID}/locations/global"
  URL="${URL}/collections/default_collection/engines/${ENGINE_ID}"
  curl -X DELETE "${URL}" \
    -H "Content-Type: application/json" \
    -H "x-goog-user-project: ${PROJECT_ID}" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)"

これで設定手順は完了です。これで、AlphaEvolve V1 API を実行できるようになりました。