Gérer les coûts BigQuery pour les agents de l'API Conversational Analytics

Cette page explique comment surveiller et gérer les coûts BigQuery de vos agents de l'API Conversational Analytics, qui génèrent des coûts en exécutant des requêtes sur vos données BigQuery. Vous pouvez utiliser les méthodes suivantes pour contrôler vos dépenses et éviter les frais imprévus :

Avant de commencer

Avant d'implémenter les contrôles des coûts décrits sur cette page, vous devez répondre aux exigences suivantes :

  • Vous devez disposer d'un projet Google Cloud pour lequel la facturation est activée.
  • Vous devez disposer des autorisations IAM (Identity and Access Management) nécessaires pour gérer les quotas et la facturation de votre projet Google Cloud .

Définir des quotas pour les projets et les utilisateurs

Vous pouvez définir des limites de dépenses pour un projet Google Cloud ou pour des utilisateurs individuels en appliquant des quotas BigQuery standards. Ces limites vous aident à contrôler les coûts globaux et à éviter que des utilisateurs individuels ne dépensent trop.

Pour les agents susceptibles d'entraîner des coûts élevés, comme un agent basé sur une table très volumineuse ou non partitionnée, il est recommandé de l'isoler d'abord dans son propre projet dédié. Vous pouvez ensuite appliquer un quota au niveau du projet pour limiter le coût quotidien maximal du projet, un quota au niveau de l'utilisateur pour garantir une utilisation équitable entre les utilisateurs, ou les deux.

Configurer un projet dédié pour votre agent

Pour configurer un projet dédié à votre ou vos agents de l'API Conversational Analytics, procédez comme suit :

  1. Dans la console Google Cloud , créez un projet Google Cloud . Ce projet sera dédié à votre ou vos agents.
  2. Assurez-vous que la facturation est activée pour le nouveau projet.
  3. Vérifiez que l'agent est configuré pour utiliser ce nouveau projet pour la facturation. Lorsque vous configurerez l'agent, vous devrez spécifier l'ID de ce nouveau projet.

Définir un quota pour le projet

Une fois que vous avez configuré un projet Google Cloud dédié, vous pouvez appliquer un quota pour contrôler les coûts de l'ensemble du projet. Pour définir un quota au niveau du projet, procédez comme suit :

  1. Dans le projet Google Cloud de votre agent, accédez à IAM et administration > Quotas.

    Accéder à la section "Quotas"

  2. Filtrez le service de l'API BigQuery, puis sélectionnez le quota Utilisation des requêtes par jour.

  3. Modifiez le quota pour définir la limite quotidienne de votre choix (par exemple, 10 Tio). Cette limite crée un arrêt brutal qui empêche le projet de dépasser le coût quotidien spécifié.

Définir un quota pour les utilisateurs

Pour éviter qu'un utilisateur individuel ne génère une facture importante, vous pouvez définir un quota par utilisateur en procédant comme suit :

  1. Dans le projet Google Cloud de votre agent, accédez à IAM et administration > Quotas.

    Accéder à la section "Quotas"

  2. Filtrez le service API BigQuery et sélectionnez le quota Utilisation des requêtes par jour et par utilisateur.

  3. Modifiez le quota pour définir la limite quotidienne de votre choix (par exemple, 1 Tio par utilisateur et par jour). Cette limite permet de s'assurer qu'aucun utilisateur ne consomme une quantité excessive de ressources.

Limiter les coûts pour les requêtes individuelles

Pour éviter qu'une requête utilisateur individuelle ne génère une facture importante et inattendue, vous pouvez définir une limite de coût par requête en configurant le paramètre big_query_max_billed_bytes sur un agent.

Avant d'exécuter une requête, l'agent effectue un essai pour estimer son coût. Si le nombre d'octets à analyser dépasse la valeur big_query_max_billed_bytes, l'agent bloque la requête et envoie un message d'erreur à l'utilisateur.

Vous pouvez définir le paramètre big_query_max_billed_bytes dans le champ published_context lorsque vous créez ou configurez un agent avec HTTP ou avec le SDK Python. L'exemple suivant, au format textproto, illustre la structure d'une requête qui configure une limite de 100 Mo pour un agent qui répond aux questions sur les arbres de rue de San Francisco :

parent: "projects/sample-project-name/locations/global"
data_agent_id: "sample-agent-id"
data_agent {
  name: "projects/sample-project-name/locations/global/dataAgents/sample-agent-id"
  data_analytics_agent {
    published_context {
      system_instruction: "This agent provides information about street trees in San Francisco, including their species, location, and planting date."
      options {
        datasource {
          big_query_max_billed_bytes {
            value: 104857600 #100MB
          }
        }
      }
      datasource_references {
        bq {
          table_references {
            project_id: "bigquery-public-data"
            dataset_id: "san_francisco"
            table_id: "street_trees"
          }
        }
      }
    }
  }
}

Dans cet exemple, le paramètre big_query_max_billed_bytes est défini sur 104857600 octets (100 Mo). Cette valeur établit une limite pour toutes les requêtes exécutées par l'agent sample-agent-id sur la table BigQuery bigquery-public-data.san_francisco.street_trees.

Pour obtenir des exemples interactifs de création et de configuration d'agents, consultez les notebooks Colaboratory. Pour obtenir des informations détaillées sur les champs de l'API, consultez la documentation de référence de l'API.

Limites

Tenez compte des limites suivantes lorsque vous gérez les coûts de vos agents de l'API Conversational Analytics :