環境と 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 が使用されます。

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

プロフィール 説明 必要なロールと権限
Cloud 管理者 1 回限りの初期環境構成、IAM 割り当て、Vertex AI での Discovery Engine API と Gemini API の有効化を管理します。
  • 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.editor または 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": 基盤となるディスカバリー エンジン インスタンス、会話セッション、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 API(aiplatform.googleapis.com)。Vertex AI で Gemini API を提供します。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 プロジェクトから始まり、そのリソースは特定のロケーション(AlphaEvolve でサポートされているロケーションは global、us、eu)でホストされます。この基盤構造内で、コレクションは関連リソースの最上位の組織コンテナとして機能します。エンジンは、コア 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 フレンドリーな固有識別子の環境変数を宣言します。

    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 を実行できるようになりました。