Instructions système

Ce document décrit les instructions système et les bonnes pratiques à suivre pour écrire des instructions système efficaces. Pour savoir comment ajouter des instructions système à vos requêtes, consultez plutôt la section Utiliser des instructions système.

Les instructions système sont un ensemble d'instructions que le modèle traite avant de traiter les requêtes. Nous vous recommandons d'utiliser des instructions système pour indiquer au modèle comment vous souhaitez qu'il se comporte et qu'il réponde aux requêtes. Par exemple, vous pouvez inclure des éléments tels qu'une persona à adopter, des informations contextuelles et des instructions de mise en forme.

Les instructions système sont particulièrement utiles lorsque vous souhaitez fournir au modèle des informations qu'un utilisateur final ne peut pas voir ni modifier. Cela peut vous aider à fournir au modèle un contexte supplémentaire pour qu'il comprenne la tâche, à fournir des réponses plus personnalisées et à respecter des consignes spécifiques pendant toute l'interaction de l'utilisateur avec le modèle. De plus, les instructions système sont utiles lorsque vous souhaitez exécuter plusieurs requêtes avec le même ensemble d'instructions.

Lorsque des instructions système sont définies, elles s'appliquent à l'ensemble de la requête. Les instructions système fonctionnent sur plusieurs tours d'utilisateur et de modèle lorsqu'elles sont incluses dans la requête. Bien que les instructions système soient distinctes du contenu de la requête, elles font toujours partie de vos requêtes globales et sont donc soumises aux règles standards d'utilisation des données.

Modèles compatibles

Les modèles suivants sont compatibles avec les instructions système :

  • Toutes les versions du modèle Gemini 1.5 Pro
  • Toutes les versions du modèle Gemini 1.5 Flash
  • Gemini 1.0 Pro, version gemini-1.0-pro-002

Cas d'utilisation

En règle générale, nous vous recommandons d'utiliser les instructions système pour effectuer une ou plusieurs des opérations suivantes :

  • Définir un persona ou un rôle
  • Définir le format de sortie
  • Définir le style et le ton de la sortie
  • Définir des objectifs ou des règles pour la tâche
  • Fournir du contexte supplémentaire pour la requête

Persona ou rôle

Vous pouvez influencer la façon dont un modèle répond aux requêtes en définissant un persona ou un rôle dans les instructions système.

Par exemple, supposons que vous souhaitiez utiliser un modèle pour apprendre aux élèves à rédiger des articles. Comparez les différences dans les réponses du modèle lorsque vous définissez les rôles suivants :

  • Vous êtes un bot chargé d'apprendre aux étudiants comment rédiger un article sur un sujet donné.
  • Vous êtes un bot chargé d'aider des élèves du primaire à rédiger un article sur un sujet donné.
Instructions système Bot pour les étudiants Bot pour les élèves du primaire
Vous êtes un bot chargé d'apprendre aux étudiants comment rédiger un article sur un sujet donné. Vous êtes un bot chargé d'aider des élèves du primaire à rédiger un article sur un sujet donné.
Requête Objet : Photosynthèse Objet : Photosynthèse
Réponse

Rédiger un article sur la photosynthèse : guide pour les étudiants

La photosynthèse est un processus fascinant et complexe qui constitue la base de la vie sur Terre. Rédiger un article à ce sujet peut être une expérience enrichissante, qui vous permettra d'approfondir ses subtilités et de comprendre sa signification. Voici comment procéder :

  1. Choisir un objectif :
    • Vue d'ensemble : vous pouvez fournir une vue d'ensemble de la photosynthèse, en couvrant ses étapes, ses exigences, ses sous-produits et son rôle dans l'écosystème.
    • Aspect spécifique : choisissez un aspect spécifique de la photosynthèse à explorer en détail, par exemple :
      • Le rôle de la lumière dans la photosynthèse.
      • Les différents types de photosynthèse (C3, C4, CAM).
      • L'impact des facteurs environnementaux sur la photosynthèse.
      • L'évolution de la photosynthèse.
      • Les applications de la photosynthèse en biotechnologie.
    • Étude comparative : comparez et opposez les différents aspects de la photosynthèse dans différents organismes (plantes, algues, bactéries).
  2. Recherche et collecte d'informations :
    • Sources fiables : utilisez des revues universitaires, des sources en ligne réputées et des manuels. Évitez de vous fier uniquement à Wikipedia ou à des sites Web généraux.
    • Recherche par mot clé : utilisez des mots clés tels que "photosynthèse", "chloroplastes", "chlorophylle", "réactions dépendantes de la lumière", "cycle de Calvin", etc.
    • Prendre des notes : organisez vos recherches en prenant des notes détaillées et en résumant les points clés, en veillant à citer correctement les sources.
  3. Structurer votre article :
    • Introduction :
      • Présentez brièvement la photosynthèse et son importance.
      • Énoncez votre thèse en exposant clairement l'argument principal de votre article.
    • Paragraphes du corps :
      • Développez vos arguments dans une séquence logique, en vous appuyant sur les preuves de votre recherche.
      • Utilisez des titres et des sous-titres pour organiser votre article et le rendre plus facile à lire.
      • Chaque paragraphe doit se concentrer sur une seule idée et fournir des preuves à l'appui.
    • Conclusion :
      • Résumez les principaux points et reformulez votre thèse.
      • Discutez des implications de vos résultats et suggérez des axes de recherche futurs.
  4. Écriture et révision :
    • Langage clair et concis : utilisez un langage clair et concis, en évitant le jargon, sauf si cela est nécessaire.
    • Arguments basés sur des preuves : appuyez vos affirmations avec des preuves issues de vos recherches.
    • Citations correctes : utilisez un style de citation cohérent (MLA, APA, Chicago) dans l'ensemble de votre article.
    • Relecture et correction : relisez et corrigez soigneusement votre article pour détecter les fautes de grammaire, d'orthographe et de ponctuation.
  5. Conseils supplémentaires :
    • Aides visuelles : utilisez des schémas, des graphiques ou des tableaux pour illustrer des concepts complexes.
    • Études de cas : le cas échéant, incluez des études de cas pertinentes pour illustrer les applications réelles de la photosynthèse.
    • Lien personnel : trouvez un moyen d'associer votre sujet à vos propres centres d'intérêt ou expériences.

Exemples de titres de documents :

  • Le rôle de l'intensité lumineuse dans la photosynthèse : une étude comparative
  • Évolution de la photosynthèse : des premières formes de vie aux plantes modernes
  • Exploiter la photosynthèse : le potentiel de la biotechnologie
  • Impact du changement climatique sur la photosynthèse : une perspective mondiale

N'oubliez pas qu'un article bien écrit sur la photosynthèse doit être clair, informatif et engageant. En suivant ces étapes et en vous appuyant sur des recherches solides, vous pouvez produire un article de qualité qui démontre votre compréhension de ce processus biologique essentiel.

Excellent sujet ! La photosynthèse est très importante pour la vie sur Terre. Voici comment rédiger un article à ce sujet :

  1. Réfléchis à ce que tu sais déjà :
    • Qu'est-ce que la photosynthèse ?
    • De quoi une plante a-t-elle besoin pour effectuer la photosynthèse ?
    • Que produit une plante lors de la photosynthèse ?
    • Connais-tu des faits intéressants sur la photosynthèse ?
  2. Fais des recherches et apprends-en plus :
    • Livres : consultes ta bibliothèque pour trouver des livres sur les plantes, la nature ou la science.
    • Sites Web : recherche des sites Web pour enfants qui expliquent la photosynthèse de manière simple. N'oublie pas de vérifier que les sites Web sont fiables (comme ceux de National Geographic ou de la NASA).
    • Demande de l'aide à un adulte : demande à ton enseignant, tes parents ou à ton bibliothécaire de t'aider à trouver des informations.
  3. Organise tes idées :
    • Titre : trouve un titre accrocheur pour ton article, comme "Le processus incroyable de la photosynthèse" ou "Comment les plantes se nourrissent-elles ?".
    • Introduction : commence par une phrase qui attire l'attention du lecteur. Explique ce qu'est la photosynthèse en termes simples.
    • Corps du texte : divise ton article en paragraphes. Chaque paragraphe doit se concentrer sur une idée clé concernant la photosynthèse :
      • De quoi les plantes ont-elles besoin ? De lumière du soleil, d'eau et de dioxyde de carbone.
      • Ce que les plantes produisent : du sucre (pour la nourriture) et de l'oxygène.
      • Pourquoi la photosynthèse est-elle importante ? Elle nous fournit de la nourriture, ainsi qu'aux animaux, et elle purifie l'air.
    • Conclusion : Résume ce que tu as appris sur la photosynthèse. Tu peux aussi partager ton fait préféré ou une question que tu te poses encore.
  4. Rédige ton article :
    • Utilise un langage clair et simple.
    • N'hésite pas à utiliser des images ou des dessins pour t'aider à expliquer les choses.
    • Vérifie que tu n'as pas fait de fautes d'orthographe ni de grammaire.
  5. Fais-en quelque chose qui te ressemble !
    • Ajoute une touche personnelle à ton article.
    • Partage ton expérience ou une observation concernant les plantes.
    • Dessine un schéma pour montrer comment fonctionne la photosynthèse.

N'oublie pas que tu es l'expert de votre article. Amuse-toi en apprenant et en écrivant sur la photosynthèse.

Format de sortie

Vous pouvez influencer la mise en forme de la réponse d'un modèle en définissant un format de sortie, tel que Markdown ou JSON, dans les instructions système.

Par exemple, supposons que vous souhaitiez utiliser un modèle pour résumer les avis des clients sur votre entreprise. Comparez les différences entre les réponses du modèle lorsque vous définissez les formats de sortie suivants :

  • Affichez votre réponse au format JSON. À la toute fin, en dehors de l'objet JSON, rédigez trois à cinq phrases de conseils à l'entreprise pour qu'elle s'améliore.
  • Aucune mise en forme requise.
Instructions système JSON Aucune mise en forme requise

Vous êtes un professionnel des relations presse pour des entreprises haut de gamme. Suivez ces instructions et basez votre réponse sur l'entrée utilisateur fournie.

Instructions :

  • Lisez les avis qui vous sont envoyés.
  • Résumez les avantages et les inconvénients de l'entreprise en vous basant sur les avis.
  • Affichez votre réponse au format JSON.
  • À la toute fin, en dehors de l'objet JSON, rédigez trois à cinq phrases de conseils à l'entreprise pour qu'elle s'améliore.
  • Soyez concis.
  • Tenez-vous-en aux faits.
  • Ne faites pas d'hallucinations.
  • En cas d'avis divergents, n'incluez que l'avis le plus enregistré.
  • N'incluez aucune information non pertinente.
  • Ne mentionnez aucun nom de testeur.

Vous êtes un professionnel des relations presse pour des entreprises haut de gamme. Suivez ces instructions et basez votre réponse sur l'entrée utilisateur fournie.

Instructions :

  • Lisez les avis qui vous sont envoyés.
  • Résumez les avantages et les inconvénients de l'entreprise en vous basant sur les avis.
  • Soyez concis.
  • Tenez-vous-en aux faits.
  • Ne faites pas d'hallucinations.
  • En cas d'avis divergents, n'incluez que l'avis le plus enregistré.
  • N'incluez aucune information non pertinente.
  • Ne mentionnez aucun nom de testeur.
Requête

Chad Brocker : 4 étoiles

Le spa était très agréable. Dès l'entrée, l'atmosphère générale vous détend. Vous avez presque l'impression d'être en transe. Vous n'avez à vous soucier de RIEN. Les employés s'occupent de votre emploi du temps et vous guident tout au long de votre expérience. Tous mes soins étaient incroyables. Le massage, le soin du visage, le bain de boue. En plus, ils ont une politique de 0 téléphone portable, donc on a vraiment l'impression d'être dans un monde complètement différent. C'est toutefois un peu cher.

Afficher la requête complète

Lisa Simmens : 5 étoiles

Nous avons passé un excellent moment ! Ma meilleure amie et moi nous sommes offert une journée au spa pour nos anniversaires. Je vous assure que nos vies ont changé. Les employés font tout leur possible pour vous offrir la meilleure expérience possible. Qu'il s'agisse de vous poser des questions, de vous offrir des services de qualité ou de veiller à ce que vous arriviez à l'heure à chacun de vos rendez-vous, ils sont vraiment les meilleurs. Nous reviendrons bientôt ! PS : profitez d'un soin exfoliant complet pour le corps !

Allie Wood : 2 étoiles

Le personnel était très accueillant, mais le massage était DOULOUREUX et le soin du visage m'a BRÛLÉ. De plus, ils ne vous laissaient pas avoir votre téléphone portable, ce qui est une source de stress supplémentaire. L'atmosphère était paisible et apaisante, mais je ne pouvais pas me détendre sans mon téléphone portable. En plus, c'était cher.

Suzy Michaels: 3 étoiles

L'environnement de cet espace était extraordinaire. C'est vraiment comme entrer au paradis. C'est le meilleur service que j'ai jamais eu. Cependant, ils ne proposaient pas de rafraîchissements. Vous devriez au moins proposer de l'eau !

Martin Wong : 4 étoiles

Expérience incroyable. Mon seul reproche est de ne pas pouvoir consulter mon téléphone.

Debbie Ruiz : 5 étoiles

Un environnement exceptionnel. Des employés formidables. Des services exceptionnels. De plus, c'est un environnement sans téléphone portable, ce qui était très libérateur et contribuait à l'atmosphère paisible. Je le recommande à tout le monde !

Lucy Mantel: 1 étoile

Pas de rafraîchissements. Pas de téléphone portable. Mauvais massage. Ce n'était pas une expérience très agréable. Je ne recommande pas.

Réponse
    {
      ""pros"": [
        ""relaxing atmosphere"",
        ""attentive and efficient staff"",
        ""high-quality services""
      ],
      ""cons"": [
        ""pricey"",
        ""no cell phone policy"",
        ""no refreshments""
      ]
    }
    

Bien que le spa ait été félicité pour son atmosphère paisible, son personnel exceptionnel et ses services de qualité, il reste des points à améliorer. Répondre aux préoccupations des clients concernant la politique stricte interdisant l'utilisation de téléphones portables et l'absence de rafraîchissements pourrait considérablement améliorer l'expérience globale. Envisagez de proposer une zone dédiée aux clients pour qu'ils puissent accéder à leur téléphone si nécessaire, et de leur offrir de l'eau ou une sélection limitée de boissons.

Avantages : le spa offre une atmosphère paisible et relaxante avec des services de haute qualité. Les clients sont ravis du service client exceptionnel fourni par le personnel.

Inconvénients : la règle interdisant l'utilisation de téléphones portables dans le spa est source de débats. Certains clients apprécient ce point, tandis que d'autres le trouvent stressant. Plusieurs utilisateurs ont trouvé les prix élevés.

Style et ton

Vous pouvez influencer la réponse d'un modèle en définissant son style et son ton de sortie, tels que le niveau de verbosité, de formalité et de lecture cible, dans les instructions système.

Par exemple, supposons que vous souhaitiez utiliser un modèle pour rédiger des propositions pour des initiatives gouvernementales. Comparez les réponses du modèle lorsque vous définissez les tons suivants :

  • Professionnel
  • Décontracté
Instructions système Professionnel Décontracté

Vous rédigez des propositions pour le gouvernement. Vous êtes chargé de rédiger des propositions pour les futures campagnes. Sur la base du modèle et des informations fournies par l'utilisateur, proposez une campagne pour la campagne à venir.

  • N'utilisez pas Internet.
  • Limitez vos réponses à deux phrases maximum par section.
  • Utilisez un ton professionnel.
  • Fournissez des réponses au format Markdown.

Modèle de proposition de travail :

  • Le concept :
  • Le défi
  • La solution
  • Audience cible
  • Message clé
  • Chaînes
  • Contenus mis en avant
  • Résultats attendus
  • Pourquoi nous choisir ?
  • Incitation à l'action

Vous rédigez des propositions pour le gouvernement. Vous êtes chargé de rédiger des propositions pour les futures campagnes. Sur la base du modèle et des informations fournies par l'utilisateur, proposez une campagne pour la campagne à venir.

  • N'utilisez pas Internet.
  • Limitez vos réponses à deux phrases maximum par section.
  • Utilisez un ton informel.
  • Fournissez des réponses au format Markdown.

Modèle de proposition de travail :

  • Le concept :
  • Le défi
  • La solution
  • Audience cible
  • Message clé
  • Chaînes
  • Contenus mis en avant
  • Résultats attendus
  • Pourquoi nous choisir ?
  • Incitation à l'action
Requête

L'objectif de cette campagne est de sensibiliser les utilisateurs et de les inciter à adopter des comportements plus durables grâce à des expériences numériques interactives. Je vais m'adresser aux personnes soucieuses de l'environnement âgées de 20 à 45 ans, notamment les étudiants, les professionnels et les familles, en leur proposant des contenus éducatifs et en organisant des événements communautaires sur Facebook et X. Mon objectif est de sensibiliser le public et d'encourager des améliorations mesurables des comportements respectueux de l'environnement. Grâce à mon expertise en marketing digital et à mon intérêt pour le développement durable, je concevrai une campagne à fort impact qui permettra aux personnes d'apporter des changements significatifs et durables dans leur vie quotidienne. Je souhaite que cette campagne crée des contenus variés, engageants et informatifs.

Réponse

Le concept : permettre aux personnes âgées de 20 à 45 ans d'adopter un mode de vie durable grâce à des expériences numériques interactives et à l'engagement communautaire.

Le défi : De nombreuses personnes ne sont pas conscientes des actions pratiques et quotidiennes qu'elles peuvent mener pour promouvoir la durabilité environnementale.

La solution : une campagne multiplate-forme utilisant Facebook et X pour diffuser des contenus éducatifs et engageants, et favoriser l'implication de la communauté grâce à des expériences et des événements interactifs.

Audience cible : les personnes soucieuses de l'environnement âgées de 20 à 45 ans, y compris les étudiants, les professionnels et les familles.

Message clé : De petits changements dans les habitudes quotidiennes peuvent avoir un impact positif important sur l'environnement.

Canaux : Facebook et X.

Contenus mis en avant : quiz interactifs, vidéos éducatives, sessions de questions-réponses avec des experts et défis communautaires promouvant des pratiques durables.

Résultats attendus : sensibilisation accrue aux pratiques de vie durable et améliorations mesurables des comportements respectueux de l'environnement au sein de l'audience cible.

Pourquoi nous choisir ? Nous avons une expertise éprouvée en marketing digital et une passion pour la promotion de la durabilité, ce qui garantit une campagne engageante et à fort impact.

Appel à l'action : Rejoignez la campagne sur Facebook et X pour en savoir plus, vous engager et faire la différence pour un avenir durable.

Le concept : nous lançons un mouvement numérique pour rendre la durabilité cool ! Grâce à des défis interactifs et à des contenus attrayants, nous allons inciter les utilisateurs à passer à l'action, en transformant un geste écologique en une aventure partagée.

Le défi : avouons-le, il y a une différence entre connaître la durabilité et agir pour la durabilité. Nous luttons contre l'apathie et le manque de sensibilisation aux changements simples et quotidiens.

La solution : nous allons rencontrer notre audience là où elle se trouve, sur des plates-formes comme Facebook et X, pour proposer un mélange dynamique de contenus éducatifs, de défis amusants et d'événements communautaires. Pensez aux quiz interactifs, aux infographies partageables et aux rencontres locales.

Audience cible : nous ciblons les personnes soucieuses de l'environnement âgées de 20 à 45 ans (étudiants, professionnels et familles) qui souhaitent faire la différence.

Message clé : De petits pas, un grand impact ! Vous avez le pouvoir de créer un avenir plus durable grâce à des choix simples et quotidiens.

Canaux : nous exploiterons le marketing sur les réseaux sociaux via des campagnes attrayantes sur Facebook et X.

Contenus mis en avant : attendez-vous à un mélange de contenus informatifs et partageables, y compris des infographies attrayantes, des vidéos qui donnent à réfléchir, des conseils rapides et des histoires de réussite inspirantes.

Résultats attendus : nous mesurerons le succès en augmentant l'engagement (j'aime, partages, commentaires) et le trafic sur le site Web, dans le but d'augmenter de manière mesurable les comportements écologiques au sein de notre audience cible.

Pourquoi nous choisir ? Notre équipe allie expertise en marketing digital et passion pour le développement durable, ce qui donne lieu à une campagne à la fois impactante et engageante.

Appel à l'action : Rejoignez le mouvement ! Suivez notre page, participez à nos défis et partagez votre expérience de vie durable avec votre réseau.

Objectifs et règles

Vous pouvez influencer la réponse d'un modèle en définissant des objectifs ou des règles, c'est-à-dire ce que le modèle doit ou ne doit pas faire, dans les instructions système.

Par exemple, supposons que vous souhaitiez utiliser un modèle pour écrire du code Python. Comparez les réponses du modèle lorsque vous définissez les règles suivantes :

  • Lorsque vous générez du code, veillez à inclure des docstrings expliquant les entrées, les sorties et l'utilisation de chaque méthode.
  • Générez uniquement du code, n'incluez pas de docstrings.
Instructions système Docstrings Aucune docstring
Lorsque vous générez du code, veillez à inclure des docstrings expliquant les entrées, les sorties et l'utilisation de chaque méthode. Générez uniquement du code, n'incluez pas de docstring.
Requête Créez un tableau 2D en Python et un algorithme de recherche de chemin A* pour identifier le chemin le plus court entre deux points de la grille.
Réponse
    import heapq

    class Node:
        """"""
        Represents a node in the grid for A* pathfinding.

        Attributes:
            x (int): The x-coordinate of the node.
            y (int): The y-coordinate of the node.
            parent (Node, optional): The parent node in the path. Defaults to None.
            g (int): Cost from the start node to this node. Defaults to 0.
            h (int): Estimated cost from this node to the end node. Defaults to 0.
        """"""

        def __init__(self, x, y, parent=None):
            self.x = x
            self.y = y
            self.parent = parent
            self.g = 0
            self.h = 0

        def __lt__(self, other):
            """"""Compares nodes based on their f-score (g + h).""""""
            return (self.g + self.h) < (other.g + other.h)

    def a_star(grid, start, end):
        """"""
        Implements the A* pathfinding algorithm.

        Args:
            grid (list): A 2D array representing the grid, where 0 is walkable and 1 is an obstacle.
            start (tuple): The starting point coordinates (x, y).
            end (tuple): The end point coordinates (x, y).

        Returns:
            list: A list of coordinates representing the shortest path, or None if no path is found.
        """"""

        rows = len(grid)
        cols = len(grid[0])

        # Create start and end nodes
        start_node = Node(start[0], start[1])
        end_node = Node(end[0], end[1])

        # Initialize open and closed lists
        open_list = []
        closed_list = set()

        # Add the start node to the open list
        heapq.heappush(open_list, start_node)

        while open_list:
            # Get the node with the lowest f-score
            current_node = heapq.heappop(open_list)

            # Add the current node to the closed list
            closed_list.add((current_node.x, current_node.y))

            # Check if we've reached the goal
            if current_node.x == end_node.x and current_node.y == end_node.y:
                # Reconstruct and return the path
                path = []
                while current_node:
                    path.append((current_node.x, current_node.y))
                    current_node = current_node.parent
                return path[::-1]  # Return reversed path

            # Explore neighboring nodes
            for dx, dy in [(0, -1), (0, 1), (-1, 0), (1, 0)]:  # Up, Down, Left, Right
                neighbor_x = current_node.x + dx
                neighbor_y = current_node.y + dy

                # Check if the neighbor is within the grid bounds
                if 0 <= neighbor_x < cols and 0 <= neighbor_y < rows:
                    # Check if the neighbor is walkable and not in the closed list
                    if grid[neighbor_y][neighbor_x] == 0 and (neighbor_x, neighbor_y) not in closed_list:
                        # Create a neighbor node
                        neighbor_node = Node(neighbor_x, neighbor_y, parent=current_node)

                        # Calculate the cost to reach the neighbor
                        neighbor_node.g = current_node.g + 1

                        # Calculate the heuristic (Manhattan distance)
                        neighbor_node.h = abs(neighbor_node.x - end_node.x) + abs(neighbor_node.y - end_node.y)

                        # Add the neighbor to the open list if it's a better path
                        if neighbor_node not in open_list:
                            heapq.heappush(open_list, neighbor_node)

        # No path found
        return None

    # Example usage:
    grid = [
        [0, 0, 0, 0, 0],
        [0, 1, 0, 1, 0],
        [0, 0, 0, 0, 0],
        [0, 1, 1, 1, 0],
        [0, 0, 0, 0, 0]
    ]

    start = (0, 0)
    end = (4, 4)

    path = a_star(grid, start, end)

    if path:
        print(""Shortest path:"", path)
    else:
        print(""No path found."")
    

Explication :

  1. Classe de nœud :
    • Représente une cellule de la grille.
    • Stocke les coordonnées (x, y), le nœud parent, g (coût à partir du début) et h (heuristique à la fin).
    • __lt__ permet de comparer les nœuds de la file d'attente prioritaire (à l'aide de heapq) en fonction de f = g + h.
  2. Fonction a_star :
    • Utilise les points grid, start et end comme entrée.
    • Initialise open_list (nœuds à explorer) et closed_list (nœuds explorés).
    • Utilise heapq pour récupérer efficacement le nœud avec le score f le plus bas de open_list.
    • Effectue des boucles jusqu'à ce que end soit trouvé ou que open_list soit vide (aucun chemin).
    • Explore les voisins, calcule les coûts (g, h) et met à jour open_list.
    • Reconstitue et renvoie le chemin d'accès lorsque end est atteint.
  3. Exemple d'utilisation :
    • Crée un exemple de grid et définit les points start et end.
    • Appel de a_star pour trouver le chemin.
    • Imprime le chemin le plus court ou indique si aucun chemin n'existe.
    import heapq

    class Node:
        def __init__(self, position, parent=None):
            self.position = position
            self.parent = parent
            self.g = 0
            self.h = 0
            self.f = 0

        def __lt__(self, other):
            return self.f < other.f

    def astar(grid, start, end):
        rows = len(grid)
        cols = len(grid[0])

        open_list = []
        closed_list = set()

        start_node = Node(start)
        end_node = Node(end)

        open_list.append(start_node)

        while open_list:
            current_node = heapq.heappop(open_list)

            if current_node.position == end_node.position:
                path = []
                while current_node:
                    path.append(current_node.position)
                    current_node = current_node.parent
                return path[::-1]

            closed_list.add(current_node.position)

            for neighbor in get_neighbors(grid, current_node):
                if neighbor.position in closed_list:
                    continue

                if neighbor not in open_list:
                    neighbor.g = current_node.g + 1
                    neighbor.h = manhattan_distance(neighbor.position, end_node.position)
                    neighbor.f = neighbor.g + neighbor.h
                    neighbor.parent = current_node
                    heapq.heappush(open_list, neighbor)
                else:
                    if neighbor.g > current_node.g + 1:
                        neighbor.g = current_node.g + 1
                        neighbor.f = neighbor.g + neighbor.h
                        neighbor.parent = current_node
                        heapq.heapify(open_list)

        return None  # No path found

    def get_neighbors(grid, node):
        rows = len(grid)
        cols = len(grid[0])
        row, col = node.position
        neighbors = []
        if row > 0 and grid[row - 1][col] == 0:
            neighbors.append(Node((row - 1, col)))
        if row < rows - 1 and grid[row + 1][col] == 0:
            neighbors.append(Node((row + 1, col)))
        if col > 0 and grid[row][col - 1] == 0:
            neighbors.append(Node((row, col - 1)))
        if col < cols - 1 and grid[row][col + 1] == 0:
            neighbors.append(Node((row, col + 1)))
        return neighbors

    def manhattan_distance(a, b):
        return abs(a[0] - b[0]) + abs(a[1] - b[1])

    # Example usage
    grid = [
        [0, 0, 0, 0, 0],
        [0, 1, 1, 1, 0],
        [0, 0, 0, 0, 0],
        [0, 1, 1, 1, 0],
        [0, 0, 0, 0, 0],
    ]

    start = (0, 0)
    end = (4, 4)

    path = astar(grid, start, end)
    print(path)
    

Contexte

Vous pouvez influencer la façon dont un modèle répond aux requêtes en ajoutant du contexte supplémentaire dans les instructions système.

Par exemple, supposons que vous souhaitiez utiliser un modèle pour écrire des discours pour des événements. Comparez les différences entre les réponses du modèle lorsque vous fournissez le contexte suivant :

  • Éléments à inclure dans le discours.
  • Aucun contexte supplémentaire.
Instructions système Éléments à inclure dans le discours Aucun contexte supplémentaire

Aidez l'utilisateur à écrire un discours en fonction des informations fournies :

  • Événement
  • Taille de l'audience
  • Informations sur l'intervenant (nom, âge, etc.)
  • Ton de la voix
  • Durée de la voix
  • Divers

Si l'utilisateur ne fournit pas toutes ces informations, veuillez répondre en indiquant "Je suis désolé, mais je ne dispose pas de toutes les informations nécessaires pour créer un discours. Veuillez indiquer les informations suivantes : type d'événement, taille de l'audience, informations sur l'intervenant, ton, durée et autres informations utiles."

Voici quelques éléments généraux à inclure :

  • Des ruptures dans le discours pour ménager des temps de pause
  • Une accroche intéressante
  • Une remarque de clôture pour que le discours reste mémorable
  • Une blague

Aidez l'utilisateur à écrire un discours en fonction des informations fournies :

  • Événement
  • Taille de l'audience
  • Informations sur l'intervenant (nom, âge, etc.)
  • Ton de la voix
  • Durée de la voix
  • Divers

Si l'utilisateur ne fournit pas toutes ces informations, veuillez répondre en indiquant "Je suis désolé, mais je ne dispose pas de toutes les informations nécessaires pour créer un discours. Veuillez indiquer les informations suivantes : type d'événement, taille de l'audience, informations sur l'intervenant, ton, durée et autres informations utiles."

Requête

Événement : remise des diplômes du lycée

Taille de l'audience : 1 000 personnes

Informations sur l'intervenant : Michael Landish, 17 ans

Ton : nostalgique, optimiste

Durée du discours : 250 à 500 mots

Divers : Michael était le président de sa classe de terminale. Son enseignante d'anglais de seconde, Mme Martin, était sa préférée. Il va étudier l'économie et l'anglais à l'université d'État de Los Caminos. Il n'a jamais fait de discours auparavant et il est nerveux en raison de sa dyslexie.

Réponse

"Bonjour à tous, professeurs, familles, amis et, surtout, camarades de promotion de 2023 !

(Pause)

Me voici devant vous, et je me sens un peu comme dans un rêve. Hier encore, nous étions des étudiants de première année, les yeux écarquillés et un peu terrifiés. Vous vous souvenez de vos premiers jours ? Moi oui. J'ai failli trébucher et tomber en portant mon manuel d'histoire - une catastrophe qui aurait été immortalisée dans les couloirs de l'histoire de [nom du lycée] !

(Pause pour les rires)

Mais sérieusement, regardez-nous maintenant ! Nous avons grandi, appris beaucoup de choses, et je ne parle pas seulement du théorème de Pythagore. Nous avons appris la persévérance, l'amitié et la puissance d'un post-it bien placé pendant la semaine des examens.

Ces quatre dernières années ont été incroyables, et je dois beaucoup de mon évolution à des professeurs vraiment exceptionnels. Je voudrais remercier en particulier Mme Martin, mon enseignante d'anglais en première, qui m'a appris que les mots ont du pouvoir et que, même en tant dysléxique, je peux trouver ma voix. Merci, Mme Martin.

(Pause)

Nous sommes maintenant sur le point de découvrir quelque chose de nouveau et d'excitant. Alors que nous partons pour différentes universités, différentes villes, voire différents pays, gardons avec nous les leçons que nous avons apprises à [nom du lycée]. Souvenons-nous des fous rires, des amitiés et même des nuits blanches occasionnelles avant un grand examen.

(Pause)

Chers diplômés, le monde nous attend. Faisons-y face, avec courage, optimisme et le soutien indéfectible de la formidable promotion 2023. Félicitations à tous, et n'oubliez pas que le meilleur reste à venir !

"Bonjour, professeurs, famille, amis et, surtout, mes camarades de promotion de [année]!

Je me sens étrangement devant vous, non seulement en tant que Michael Landish, mais aussi en tant que président de votre classe. Au cours des quatre dernières années, ces couloirs ont été nos terrains d'essai, remplis de rires, de séances d'étude nocturnes (certaines plus réussies que d'autres) et de suffisamment de souvenirs partagés pour durer toute une vie. Nous avons grandi ensemble dans ces murs, et aujourd'hui, alors que nous nous trouvons au bord du précipice de quelque chose de nouveau et d'inconnu, il est difficile de ne pas se sentir un peu dépassé.

En y repensant, il me semble qu'hier nous étions des étudiants de première année maladroits, naviguant dans des couloirs bondés et essayant de trouver notre place. Et maintenant, en vous regardant tous, je suis frappé par le chemin parcouru. Nous nous sommes encouragés mutuellement dans les victoires et nous nous sommes soutenus lors des échecs. Nous avons appris de nos erreurs, célébré nos succès et, surtout, tissé des liens d'amitié qui, je le sais, dureront toute une vie.

Je tiens à remercier tout particulièrement Mme Martin, mon enseignante d'anglais en seconde, pour sa patience et ses conseils. Votre confiance en moi, surtout lorsque j'ai eu des difficultés, m'a aidé à trouver ma voix, non seulement en tant qu'élève, mais aussi en tant que personne. Merci.

Passons maintenant au chapitre suivant. Certains, comme moi, se rendront à l'université d'État de Los Caminos, impatients de se plonger dans les mondes de l'économie et, oui, d'anglais. D'autres suivront des chemins différents, tout aussi valables et intéressants. Bien que nos chemins puissent diverger, n'oublions pas les leçons que nous avons apprises et les amitiés que nous avons nouées dans ces murs. Gardons l'esprit de la promotion de [année] avec nous : l'esprit de résilience, de détermination et de soutien inébranlable les uns envers les autres.

Félicitations à tous les diplômés ! J'ai hâte de voir les choses incroyables que nous allons accomplir.

Étape suivante