Gérer les modèles de bac à sable

Chaque bac à sable est associé à un modèle d'environnement de bac à sable, qui décrit l' image de conteneur à exécuter. Les modèles de bac à sable servent de plans pour les bacs à sable de conteneurs personnalisés. Cette page explique comment gérer le cycle de vie des modèles de bac à sable à l'aide du SDK Agent Platform. Vous pouvez répertorier les modèles existants, afficher leurs détails ou les supprimer lorsqu'ils ne sont plus nécessaires.

Pour modifier la configuration d'un modèle (par exemple, en modifiant l'image de conteneur), supprimez le modèle existant et créez-en un avec la configuration mise à jour.

Avant de commencer

Pour gérer les modèles de bac à sable, vous devez disposer des rôles suivants dans votre projet :

  • Utilisateur Agent Platform (roles/aiplatform.user)

Réutiliser des modèles dans plusieurs bacs à sable

Pour les bacs à sable Computer Use et Shell, si vous ne spécifiez pas de modèle, le modèle par défaut (DEFAULT_CONTAINER_CATEGORY_COMPUTER_USE ou DEFAULT_CONTAINER_CATEGORY_SHELL_SANDBOX) est créé pour le bac à sable.

Un modèle est créé à chaque appel create() qui ne nomme pas de modèle. La suppression du bac à sable n'entraîne pas la suppression du modèle. Vous devez donc supprimer les modèles séparément. Si vous créez de nombreux bacs à sable, nous vous recommandons de réutiliser les modèles pour économiser des ressources.

Pour créer un modèle :

from agentplatform._genai import types

template_op = client.agent_engines.sandboxes.templates.create(
    name=instance_name,
    display_name="shell-sandbox-template",
    config=types.CreateSandboxEnvironmentTemplateConfig(
        default_container_environment=types.SandboxEnvironmentTemplateDefaultContainerEnvironment(
            default_container_category=types.DefaultContainerCategory.DEFAULT_CONTAINER_CATEGORY_SHELL_SANDBOX,
        ),
    ),
)
template = template_op.response.name

Associez chaque bac à sable au modèle en définissant sandbox_environment_template :

operation = client.sandboxes.create(
    name=instance_name,
    spec={"shell_environment": {}},
    config={
        "sandbox_environment_template": template,
        "wait_for_completion": True,
    },
)

Répertorier les modèles

Pour répertorier tous les modèles de bac à sable associés à une instance Agent Platform :

import agentplatform

client = agentplatform.Client(project='PROJECT_ID', location='LOCATION')
instance_name = 'projects/PROJECT_ID/locations/LOCATION/reasoningEngines/INSTANCE_ID'

templates_response = client.sandboxes.templates.list(name=instance_name)

for template in templates_response.sandbox_environment_templates:
    print(template.name)

Remplacez les éléments suivants :

  • PROJECT_ID: ID de votre Cloud de Confiance projet.
  • LOCATION : Cloud de Confiance région de votre instance Agent Platform. Consultez la section Régions compatibles.
  • INSTANCE_ID : ID de l'instance Agent Platform.

Afficher les détails d'un modèle

Pour afficher la configuration d'un modèle de bac à sable spécifique :

template_name = 'projects/PROJECT_ID/locations/LOCATION/reasoningEngines/INSTANCE_ID/SandboxEnvironmentTemplate/TEMPLATE_ID'

template = client.sandboxes.templates.get(name=template_name)
print(template)

Remplacez les éléments suivants :

  • PROJECT_ID: ID de votre Cloud de Confiance projet.
  • LOCATION : Cloud de Confiance région de votre instance Agent Platform. Consultez la section Régions compatibles.
  • INSTANCE_ID : ID de l'instance Agent Platform contenant votre modèle de bac à sable.
  • TEMPLATE_ID : ID du modèle de bac à sable.

Afficher le modèle d'un bac à sable

Pour afficher le modèle de bac à sable associé à un bac à sable, exécutez la commande suivante :

print(sandbox.sandbox_environment_template)

Pour supprimer un modèle

Pour supprimer un modèle de bac à sable :

client.sandboxes.templates.delete(name=template_name)
print("Template deleted.")