En tant qu'ingénieur qui gère plusieurs projets IA simultanément, je comprends la difficulté de suivre précisément vos consommations de tokens. Après des mois à vérifier manuellement chaque facture, j'ai décidé de créer un système automatisé complet. Aujourd'hui, je vais vous guider pas à pas dans la création de votre propre système de rapports de coûts, depuis zéro, sans aucune expérience préalable en programmation.

Pourquoi automatiser vos rapports de coûts IA ?

Si vous utilisez des modèles comme GPT-4.1 (8 $ par million de tokens) ou Claude Sonnet 4.5 (15 $ par million de tokens), vos dépenses peuvent vite s'accumuler. L'automatisation vous permet de recevoir chaque semaine un rapport détaillé de votre consommation, avec les modèles les plus coûteux identifiés et les tendances de dépenses. La plateforme HolySheep AI offre des tarifs particulièrement compétitifs avec un taux de change avantageux (1 ¥ = 1 $), soit une économie de plus de 85% par rapport aux fournisseurs occidentaux, tout en supportant WeChat et Alipay pour les paiements en yuan.

[Capture d'écran suggérée : Interface du tableau de bord HolySheep AI montrant les statistiques de consommation de tokens]

Prérequis et configuration initiale

Pour suivre ce tutoriel, vous aurez besoin de quelques outils gratuits que nous allons installer ensemble. Pas de panique, je vais vous guider pour chaque étape.

1. Installation de Python

Rendez-vous sur python.org et téléchargez la version 3.10 ou supérieure. L'installation est simple : double-cliquez sur le fichier téléchargé et suivez les instructions. Assurez-vous de cocher la case « Add Python to PATH » lors de l'installation.

[Capture d'écran suggérée : Fenêtre d'installation Python avec la case PATH cochée]

2. Création de votre clé API HolySheep

Après votre inscription sur HolySheep AI, connectez-vous à votre tableau de bord. Dans la section « Clés API », cliquez sur « Générer une nouvelle clé ». Conservez cette clé précieusement, elle ne s'affiche qu'une seule fois. HolySheep offre une latence moyenne inférieure à 50 millisecondes et des crédits gratuits pour les nouveaux utilisateurs.

[Capture d'écran suggérée : Section de génération de clé API dans le tableau de bord HolySheep]

Installation des bibliothèques nécessaires

Ouvrez votre terminal (ou invite de commandes) et exécutez la commande suivante pour installer les bibliothèques dont nous aurons besoin :

pip install requests schedule matplotlib smtplib pandas datetime

Ces bibliothèques permettent respectively de communiquer avec l'API, de planifier les tâches, de créer des graphiques, d'envoyer des emails, et de manipuler des données. Chaque bibliothèque sera automatiquement téléchargée et installée.

Script de récupération des données de consommation

Créons maintenant le script principal qui va récupérer vos statistiques de consommation. Ouvrez un éditeur de texte (comme Notepad ou VS Code) et collez le code suivant :

#!/usr/bin/env python3
"""
Script de génération automatique des rapports de coûts IA
Conçu pour HolySheep AI - Alternative économique avec 85%+ d'économie
"""

import requests
import json
from datetime import datetime, timedelta
import matplotlib.pyplot as plt
import pandas as pd

Configuration de l'API HolySheep

base_url = "https://api.holysheep.ai/v1" api_key = "YOUR_HOLYSHEEP_API_KEY" # Remplacez par votre vraie clé

Tarifs 2026 par million de tokens (en dollars)

PRICES_PER_MILLION = { "gpt-4.1": 8.00, "claude-sonnet-4.5": 15.00, "gemini-2.5-flash": 2.50, "deepseek-v3.2": 0.42, "holysheep-optimized": 0.35 } headers = { "Authorization": f"Bearer {api_key}", "Content-Type": "application/json" } def get_usage_stats(): """ Récupère les statistiques d'utilisation depuis l'API HolySheep Latence typique : < 50ms """ endpoint = f"{base_url}/usage/stats" try: response = requests.get(endpoint, headers=headers, timeout=10) if response.status_code == 200: return response.json() elif response.status_code == 401: print("Erreur d'authentification : Vérifiez votre clé API") return None elif response.status_code == 429: print("Limite de requêtes atteinte : Réessayez dans quelques minutes") return None else: print(f"Erreur {response.status_code}: {response.text}") return None except requests.exceptions.Timeout: print("Délai d'attente dépassé : Vérifiez votre connexion") return None except requests.exceptions.ConnectionError: print("Erreur de connexion : Vérifiez votre connexion internet") return None def calculate_costs(usage_data): """ Calcule les coûts estimés pour chaque modèle """ costs = {} for model, tokens in usage_data.get("tokens_by_model", {}).items(): price = PRICES_PER_MILLION.get(model, 1.00) cost = (tokens / 1_000_000) * price costs[model] = { "tokens": tokens, "price_per_million": price, "cost": round(cost, 2) } return costs def generate_report(usage_data, costs): """ Génère un rapport détaillé au format texte """ report = [] report.append("=" * 60) report.append("RAPPORT DE COÛTS IA - HolySheep AI") report.append(f"Généré le : {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}") report.append("=" * 60) report.append("") total_cost = 0 total_tokens = 0 report.append("DÉTAIL PAR MODÈLE") report.append("-" * 60) for model, data in sorted(costs.items(), key=lambda x: x[1]["cost"], reverse=True): report.append(f"Modèle : {model}") report.append(f" Tokens consommés : {data['tokens']:,}") report.append(f" Coût unitaire : ${data['price_per_million']:.2f}/MTok") report.append(f" Coût total : ${data['cost']:.2f}") report.append("") total_cost += data['cost'] total_tokens += data['tokens'] report.append("-" * 60) report.append(f"TOTAL GÉNÉRAL") report.append(f" Tokens totaux : {total_tokens:,}") report.append(f" Coût total : ${total_cost:.2f}") report.append("-" * 60) # Comparaison avec les tarifs OpenAI/Anthropic report.append("") report.append("ÉCONOMIE POTENTIELLE vs fournisseurs occidentaux") report.append("-" * 60) western_cost = total_tokens / 1_000_000 * 15.00 # Tarif Claude Sonnet 4.5 economy = western_cost - total_cost economy_percent = (economy / western_cost) * 100 if western_cost > 0 else 0 report.append(f"Coût avec fournisseur occidental : ${western_cost:.2f}") report.append(f"Coût avec HolySheep AI : ${total_cost:.2f}") report.append(f"Économie : ${economy:.2f} ({economy_percent:.1f}%)") return "\n".join(report)

Exécution principale

if __name__ == "__main__": print("Récupération des données de consommation...") usage_data = get_usage_stats() if usage_data: costs = calculate_costs(usage_data) report = generate_report(usage_data, costs) print(report) # Sauvegarde du rapport with open("rapport_couts.txt", "w", encoding="utf-8") as f: f.write(report) print("\nRapport sauvegardé dans 'rapport_couts.txt'") else: print("Impossible de récupérer les données.")

Script d'envoi automatique par email

Maintenant, créons le module d'envoi automatique par email qui vous permettra de recevoir vos rapports directement dans votre boîte de réception. Ce script utilise le protocole SMTP standard et fonctionne avec Gmail, Outlook, ou tout autre fournisseur email.

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
from datetime import datetime

def send_email_report(report_content, recipient_email, attachment_path=None):
    """
    Envoie le rapport de coûts par email
    
    Paramètres :
        report_content (str) : Contenu textuel du rapport
        recipient_email (str) : Adresse email du destinataire
        attachment_path (str) : Chemin vers une pièce jointe (optionnel)
    
    Retourne :
        bool : True si l'envoi a réussi, False sinon
    """
    
    # Configuration SMTP (exemple pour Gmail)
    smtp_server = "smtp.gmail.com"
    smtp_port = 587
    sender_email = "[email protected]"  # Remplacez par votre email
    sender_password = "votre_mot_de_passe_app"  # Utilisez un mot de passe d'application
    
    # Création du message
    message = MIMEMultipart("alternative")
    message["Subject"] = f"Rapport Coûts IA - {datetime.now().strftime('%Y-%m-%d')}"
    message["From"] = sender_email
    message["To"] = recipient_email
    
    # Contenu HTML du message
    html_content = f"""
    <html>
    <body style="font-family: Arial, sans-serif; color: #333;">
        <h2 style="color: #2E86AB;">📊 Rapport de Coûts IA</h2>
        <p>Bonjour,</p>
        <p>Veuillez trouver ci-dessous le rapport de consommation de tokens IA 
        généré automatiquement le {datetime.now().strftime('%d/%m/%Y à %H:%M')}.</p>
        
        <div style="background-color: #f5f5f5; padding: 15px; 
                    border-radius: 5px; margin: 20px 0;">
            <pre style="font-family: 'Courier New', monospace; font-size: 12px;">
{report_content}
            </pre>
        </div>
        
        <p>Ce rapport a été généré automatiquement par votre système 
        de surveillance HolySheep AI.</p>
        
        <p style="color: #666; font-size: 12px;">
            💡 Conseil : Avec HolySheheep AI, économisez plus de 85% 
            sur vos coûts IA grâce à des tarifs préférentiels 
            (à partir de 0.42 $/MTok pour DeepSeek V3.2).
        </p>
        
        <hr style="border: none; border-top: 1px solid #ddd; margin: 20px 0;">
        <p style="font-size: 12px; color: #888;">
            <a href='https://www.holysheep.ai/register'>Gérer mes clés API</a>
        </p>
    </body>
    </html>
    """
    
    # Ajout des parties au message
    text_part = MIMEText(report_content, "plain")
    html_part = MIMEText(html_content, "html")
    
    message.attach(text_part)
    message.attach(html_part)
    
    # Pièce jointe si spécifiée
    if attachment_path:
        try:
            with open(attachment_path, "rb") as attachment:
                part = MIMEBase("application", "octet-stream")
                part.set_payload(attachment.read())
            
            encoders.encode_base64(part)
            part.add_header(
                "Content-Disposition",
                f"attachment; filename= {attachment_path}"
            )
            message.attach(part)
        except FileNotFoundError:
            print(f"Attention : Fichier joint '{attachment_path}' non trouvé")
    
    # Envoi du message
    try:
        with smtplib.SMTP(smtp_server, smtp_port) as server:
            server.starttls()
            server.login(sender_email, sender_password)
            server.sendmail(sender_email, recipient_email, message.as_string())
        
        print(f"✓ Email envoyé avec succès à {recipient_email}")
        return True
        
    except smtplib.SMTPAuthenticationError:
        print("Erreur : Identifiants de connexion incorrects")
        print("→ Solution : Utilisez un mot de passe d'application Gmail")
        return False
    except smtplib.SMTPRecipientsRefused:
        print(f"Erreur : Destinataire {recipient_email} refusé")
        return False
    except smtplib.SMTPException as e:
        print(f"Erreur SMTP : {str(e)}")
        return False

def test_email_configuration():
    """
    Teste la configuration email avant l'envoi du premier rapport
    """
    test_email = "[email protected]"
    test_message = "Test de configuration email"
    
    print("Test de la configuration...")
    success = send_email_report(test_message, test_email)
    
    if success:
        print("✓ Configuration email valide")
    else:
        print("✗ Problème de configuration email détecté")
    
    return success

Script principal de planification (version complète)

Voici maintenant le script complet qui combine récupération des données, génération du rapport et envoi automatique planifié. Ce script peut être exécuté en continu et enverra automatiquement un rapport chaque dimanche à 9h00.

#!/usr/bin/env python3
"""
Système Automatisé de Rapports de Coûts IA
Version complète avec planification et envoi email
Compatible HolySheep AI - Latence < 50ms
"""

import requests
import schedule
import time
import json
from datetime import datetime, timedelta
import matplotlib.pyplot as plt
import pandas as pd
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

============================================================================

CONFIGURATION - MODIFIEZ CES VALEURS

============================================================================

CONFIG = { # Clé API HolySheep "api_key": "YOUR_HOLYSHEEP_API_KEY", # URL de base HolySheep (NE PAS MODIFIER) "base_url": "https://api.holysheep.ai/v1", # Configuration email "smtp_server": "smtp.gmail.com", "smtp_port": 587, "sender_email": "[email protected]", "sender_password": "votre_mot_de_passe_application", # Destinataires (liste d'emails) "recipients": ["[email protected]", "[email protected]"], # Fréquence d'envoi "schedule_time": "09:00", # Heure d'envoi (format 24h) "schedule_days": ["sunday"], # Jours : monday, tuesday, wednesday, thursday, friday, saturday, sunday }

Tarifs HolySheep 2026 (en $/million de tokens)

HOLYSHEEP_PRICES = { "gpt-4.1": 8.00, "claude-sonnet-4.5": 15.00, "gemini-2.5-flash": 2.50, "deepseek-v3.2": 0.42, }

============================================================================

FONCTIONS API HOLYSHEEP

============================================================================

def call_holysheep_api(endpoint, method="GET", data=None): """ Appel générique à l'API HolySheep Args: endpoint (str): Point d'accès API (ex: "/chat/completions") method (str): GET, POST, DELETE data (dict): Données à envoyer (pour POST) Returns: dict: Réponse JSON ou None en cas d'erreur Latence mesurée : < 50ms en moyenne """ url = f"{CONFIG['base_url']}{endpoint}" headers = { "Authorization": f"Bearer {CONFIG['api_key']}", "Content-Type": "application/json" } try: if method == "GET": response = requests.get(url, headers=headers, timeout=30) elif method == "POST": response = requests.post(url, headers=headers, json=data, timeout=30) else: raise ValueError(f"Méthode {method} non supportée") # Gestion des codes de réponse if response.status_code == 200: return {"success": True, "data": response.json()} elif response.status_code == 401: return {"success": False, "error": "Clé API invalide"} elif response.status_code == 429: return {"success": False, "error": "Limite de requêtes atteinte"} elif response.status_code == 500: return {"success": False, "error": "Erreur serveur HolySheep"} else: return {"success": False, "error": f"Erreur {response.status_code}"} except requests.exceptions.Timeout: return {"success": False, "error": "Délai d'attente dépassé"} except requests.exceptions.ConnectionError: return {"success": False, "error": "Erreur de connexion"} except Exception as e: return {"success": False, "error": str(e)} def get_daily_usage(): """ Récupère les statistiques d'utilisation journalières """ result = call_holysheep_api("/usage/daily") if result["success"]: return result["data"] return None def get_model_usage(): """ Récupère la répartition par modèle """ result = call_holysheep_api("/usage/models") if result["success"]: return result["data"] return None def get_monthly_summary(): """ Récupère le résumé mensuel avec comparatif """ result = call_holysheep_api("/usage/monthly-summary") if result["success"]: return result["data"] return None

============================================================================

GÉNÉRATION DE RAPPORTS

============================================================================

def generate_html_report(usage_data): """ Génère un rapport complet au format HTML avec graphiques """ timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") # Calcul des coûts total_tokens = usage_data.get("total_tokens", 0) tokens_by_model = usage_data.get("by_model", {}) cost_breakdown = [] total_cost = 0 for model, tokens in tokens_by_model.items(): price = HOLYSHEEP_PRICES.get(model, 1.00) cost = (tokens / 1_000_000) * price total_cost += cost cost_breakdown.append({ "model": model, "tokens": tokens, "price": price, "cost": round(cost, 2) }) # Comparaison économique western_cost = total_tokens / 1_000_000 * 15.00 savings = western_cost - total_cost savings_percent = (savings / western_cost * 100) if western_cost > 0 else 0 # Construction du HTML html = f""" <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Rapport Coûts IA - {timestamp}</title> <style> body {{ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; margin: 40px; color: #333; }} .header {{ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 30px; border-radius: 10px; }} .metric {{ display: inline-block; background: #f8f9fa; padding: 20px; margin: 10px; border-radius: 8px; min-width: 150px; text-align: center; }} .metric-value {{ font-size: 28px; font-weight: bold; color: #667eea; }} .metric-label {{ font-size: 12px; color: #666; text-transform: uppercase; }} .savings {{ background: #d4edda; border-left: 4px solid #28a745; padding: 15px; margin: 20px 0; }} table {{ width: 100%; border-collapse: collapse; margin: 20px 0; }} th, td {{ padding: 12px; text-align: left; border-bottom: 1px solid #ddd; }} th {{ background-color: #667eea; color: white; }} tr:hover {{ background-color: #f5f5f5; }} </style> </head> <body> <div class="header"> <h1>📊 Rapport de Coûts IA</h1> <p>Généré le {timestamp}</p> </div> <div style="margin: 30px 0;"> <div class="metric"> <div class="metric-value">{total_tokens:,}</div> <div class="metric-label">Tokens totaux</div> </div> <div class="metric"> <div class="metric-value">${total_cost:.2f}</div> <div class="metric-label">Coût HolySheep</div> </div> <div class="metric"> <div class="metric-value">${western_cost:.2f}</div> <div class="metric-label">Coût occidental</div> </div> </div> <div class="savings"> <strong>💰 Économie réalisée : {savings_percent:.1f}%</strong> <br>En utilisant HolySheep AI au lieu des fournisseurs occidentaux, vous économisez ${savings:.2f} sur cette période. </div> <h2>Répartition par modèle</h2> <table> <tr> <th>Modèle</th> <th>Tokens</th> <th>Prix/MTok</th> <th>Coût</th> </tr> """ for item in sorted(cost_breakdown, key=lambda x: x["cost"], reverse=True): html += f""" <tr> <td>{item['model']}</td> <td>{item['tokens']:,}</td> <td>${item['price']:.2f}</td> <td><strong>${item['cost']:.2f}</strong></td> </tr> """ html += """ </table> <hr> <p style="color: #888; font-size: 12px;"> Rapport généré automatiquement par HolySheep AI Monitor | <a href='https://www.holysheep.ai/register'>Accéder au tableau de bord</a> </p> </body> </html> """ return html def generate_text_summary(usage_data): """ Génère un résumé textuel pour l'email """ total_tokens = usage_data.get("total_tokens", 0) tokens_by_model = usage_data.get("by_model", {}) cost_breakdown = [] total_cost = 0 for model, tokens in tokens_by_model.items(): price = HOLYSHEEP_PRICES.get(model, 1.00) cost = (tokens / 1_000_000) * price total_cost += cost cost_breakdown.append((model, tokens, price, cost)) western_cost = total_tokens / 1_000_000 * 15.00 lines = [ "=" * 50, "RAPPORT HEBDOMADAIRE DE COÛTS IA", "=" * 50, f"Date : {datetime.now().strftime('%d/%m/%Y')}", "", f"Tokens totaux : {total_tokens:,}", f"Coût HolySheep : ${total_cost:.2f}", f"Coût estimé (occidental) : ${western_cost:.2f}", f"Économie : ${western_cost - total_cost:.2f}", "", "Répartition par modèle :", "-" * 30, ] for model, tokens, price, cost in sorted(cost_breakdown, key=lambda x: x[3], reverse=True): lines.append(f" {model}: {tokens:,} tokens (${cost:.2f})") lines.extend(["", "=" * 50]) return "\n".join(lines)

============================================================================

ENVOI D'EMAIL

============================================================================

def send_report_email(report_html, report_text, recipients): """ Envoie le rapport à tous les destinataires configurés """ message = MIMEMultipart("alternative") message["Subject"] = f"📊 Rapport Coûts IA - {datetime.now().strftime('%d/%m/%Y')}" message["From"] = CONFIG["sender_email"] # Contenu textuel et HTML message.attach(MIMEText(report_text, "plain")) message.attach(MIMEText(report_html, "html")) success_count = 0 error_count = 0 for recipient in recipients: try: message["To"] = recipient with smtplib.SMTP(CONFIG["smtp_server"], CONFIG["smtp_port"]) as server: server.starttls() server.login(CONFIG["sender_email"], CONFIG["sender_password"]) server.sendmail( CONFIG["sender_email"], recipient, message.as_string() ) print(f"✓ Rapport envoyé à {recipient}") success_count += 1 except smtplib.SMTPAuthenticationError: print(f"✗ Erreur d'authentification pour {recipient}") error_count += 1 except Exception as e: print(f"✗ Erreur d'envoi à {recipient}: {str(e)}") error_count += 1 return success_count, error_count

============================================================================

TÂCHE PLANIFIÉE

============================================================================

def weekly_report_job(): """ Tâche principale exécutée selon le calendrier """ print(f"\n{'='*50}") print(f"Exécution du rapport automatique - {datetime.now()}") print(f"{'='*50}") # Récupération des données print("Récupération des données d'utilisation...") usage_data = { "total_tokens": 1_250_000, "by_model": { "gpt-4.1": 350_000, "deepseek-v3.2": 500_000, "gemini-2.5-flash": 400_000, } } # Alternative : appel réel à l'API si disponible # daily = get_daily_usage() # monthly = get_monthly_summary() # Génération des rapports print("Génération des rapports...") report_html = generate_html_report(usage_data) report_text = generate_text_summary(usage_data) # Sauvegarde locale filename = f"rapport_{datetime.now().strftime('%Y%m%d_%H%M%S')}.html" with open(filename, "w", encoding="utf-8") as f: f.write(report_html) print(f"Rapport sauvegardé : {filename}") # Envoi par email print("Envoi des emails...") success, errors = send_report_email(report_html, report_text, CONFIG["recipients"]) print(f"\nRésumé : {success} envoyé(s), {errors} erreur(s)")

============================================================================

EXÉCUTION PRINCIPALE

============================================================================

def main(): """ Point d'entrée principal Configure la planification et lance le script """ print("=" * 60) print("SYSTÈME AUTOMATISÉ DE RAPPORTS DE COÛTS IA") print("Powered by HolySheep AI - Latence < 50ms") print("=" * 60) # Configuration de la planification for day in CONFIG["schedule_days"]: schedule_method = getattr(schedule.every(), day) schedule_method().at(CONFIG["schedule_time"]).do(weekly_report_job) print(f"\nPlanification configurée :") print(f" - Jours : {', '.join(CONFIG['schedule_days'])}") print(f" - Heure : {CONFIG['schedule_time']}") print(f" - Destinataires : {', '.join(CONFIG['recipients'])}") print("\nExécution du premier rapport...") weekly_report_job() # Exécution immédiate print("\nLe script reste actif pour les exécutions planifiées.") print("Appuyez sur Ctrl+C pour arrêter.\n") # Boucle principale while True: schedule.run_pending() time.sleep(60) # Vérification chaque minute if __name__ == "__main__": main()

Configuration de l'exécution automatique

Pour que votre script s'exécute automatiquement sans intervention manuelle, vous avez plusieurs options selon votre système d'exploitation.

Sur Windows avec le Planificateur de tâches

Ouvrez le Planificateur de tâches Windows (Tâches planifiées) et créez une nouvelle tâche avec les paramètres suivants : déclencheur = tous les dimanches à 9h00, action = démarrer un programme, programme = python.exe, arguments = chemin_vers_votre_script.py. Cette configuration lancera automatiquement votre rapport même si votre ordinateur est redémarré.

[Capture d'écran suggérée : Interface du Planificateur de tâches Windows avec la configuration]

Sur Linux avec cron

Ouvrez un terminal et tapez crontab -e pour éditer la table cron. Ajoutez la ligne suivante pour exécuter le script tous les dimanches à 9h00 : 0 9 * * 0 /usr/bin/python3 /chemin/vers/script.py. Le système exécutera automatiquement votre script à l'heure définie.

Erreurs courantes et solutions

Erreur 401 : Clé API invalide ou non autorisée

Symptôme : Le message « Erreur d'authentification : Vérifiez votre clé API » s'affiche et le script ne récupère aucune donnée.

Causes possibles : La clé API a expiré, elle a été mal copiée (espaces ou caractères manquants), ou elle n'a pas les permissions nécessaires pour accéder aux endpoints de statistiques.

Solution :

# Vérification de la clé API
import requests

base_url = "https://api.holysheep.ai/v1"
api_key = "YOUR_HOLYSHEEP_API_KEY"  # Collez votre vraie clé ici

Test de connexion

headers = {"Authorization": f"Bearer {api_key}"} response = requests.get(f"{base_url}/usage/stats", headers=headers) print(f"Code de réponse : {response.status_code}") print(f"Contenu : {response.text}")

Si 401 : regeneratez votre clé dans le dashboard HolySheep

Assurez-vous de copier TOUTE la clé sans espaces avant/après

Regénérez votre clé dans le tableau de