Westworld est là ! La "ville" populaire de Stanford est open source, 25 agents IA sont amoureux et se font des amis|Avec des tutoriels de niveau nounou
Source : "Xinzhiyuan" (ID : AI_era), auteur : Xinzhiyuan
Préparez-vous, Stanford Smart Town, qui a fait sensation dans toute la communauté de l'IA, est désormais officiellement open source !
adresse du projet :
Dans cette ville virtuelle bac à sable numérique du "monde occidental", il y a des écoles, des hôpitaux et des familles.
25 agents IA peuvent non seulement travailler ici, discuter, socialiser, se faire des amis et même tomber amoureux, mais chaque agent a sa propre personnalité et sa propre histoire.
Cependant, ils n'ont aucune idée qu'ils vivent dans une simulation.
Le scientifique principal de Nvidia, Jim Fan, a commenté -
Stanford Agent Town est l'une des expériences d'agents IA les plus excitantes en 2023. Nous parlons souvent des capacités émergentes d'un seul grand modèle de langage, mais maintenant, avec plusieurs agents d'IA, la situation est plus complexe et fascinante.
Un groupe d'IA peut déduire le processus d'évolution de toute la civilisation.
Maintenant, la première chose à être affectée peut être le terrain de jeu.
En bref, il y a une infinité de nouvelles possibilités devant vous !
Netizen : Fabricants de jeux, comprenez-vous ce que je veux dire ?
Beaucoup de gens pensent que cet article de Stanford marque le début de l'AGI.
Il est concevable que divers RPG et jeux de simulation utilisent cette technologie.
Les internautes étaient également très excités et leur cerveau était grand ouvert.
Certains veulent regarder Pokémon, certains veulent regarder des histoires de détectives sur les meurtres, et certains veulent regarder des émissions de variétés sur l'amour...
"J'ai hâte de voir le triangle amoureux entre les agents de l'IA."
"Le dialogue répétitif et morne d'Animal Crossing et le système de personnalité unidimensionnel partagé par tous les villageois sont tellement décevants. Nintendo, apprends-le!"
« Les Sims peuvent-ils transférer cela ? »
Si vous pouvez voir l'IA s'exécuter sur des PNJ dans un jeu RPG classique comme "God Realm", toute l'expérience de jeu sera subvertie ! "
Certaines personnes imaginent également que cette technologie a également de nombreux scénarios d'application dans l'espace de l'entreprise, tels que la façon dont les employés interagissent avec différents environnements de travail/changements de processus.
Bien sûr, certaines personnes ont dit, qu'est-ce qui vous passionne ? En fait, nous avons vécu dans une telle simulation, mais notre monde a plus de puissance de calcul.
Oui, si nous grossissons suffisamment ce monde virtuel, nous pouvons certainement nous voir.
### Karpathy : les agents IA sont la prochaine frontière
Auparavant, Karpathy, l'ancien directeur de Tesla et gourou d'OpenAI, a déclaré que les agents d'IA sont désormais la direction la plus avant-gardiste à l'avenir.
L'équipe d'OpenAI a passé les cinq dernières années ailleurs, mais Karpathy pense maintenant que "les agents représentent une sorte d'avenir pour l'IA".
Si un article propose une manière différente de former un grand modèle de langage, quelqu'un du groupe Slack à l'intérieur d'OpenAI dira : "Cette méthode que j'ai essayée il y a deux ans et demi, ça n'a pas marché."
Cependant, chaque fois qu'un agent d'IA sort d'un article, tous les collègues sont très intéressés.
Karpathy appelait autrefois AutoGPT la prochaine frontière de l'ingénierie rapide
25 agents IA dans "Westworld"
Dans la série télévisée américaine " Western World ", un robot avec un scénario prédéfini est placé dans un parc à thème, agit comme un être humain, puis réinitialise sa mémoire et est placé dans son propre scénario principal un nouveau jour.
En avril de cette année, des chercheurs de Stanford et de Google ont en fait construit une ville virtuelle dans laquelle 25 agents de l'IA pourraient survivre et adopter des comportements complexes.
Adresse papier :
Architecture
Afin de générer des agents, les chercheurs proposent une nouvelle architecture qui étend le grand modèle de langage et peut stocker l'expérience de l'agent en langage naturel.
Au fil du temps, ces souvenirs sont synthétisés en réflexions de niveau supérieur que l'agent peut récupérer dynamiquement pour planifier ses actions.
Au final, les utilisateurs peuvent utiliser le langage naturel pour interagir avec les 25 agents de la ville.
Comme précédemment, l'architecture de l'agent générateur implémente une fonction de « récupération ».
Cette fonction prend en entrée la situation actuelle de l'agent et renvoie un sous-ensemble du flux mémoire à transmettre au modèle de langage.
La récupération, en revanche, a de nombreuses implémentations possibles, en fonction des facteurs importants que l'agent prend en compte lorsqu'il décide comment agir.
Un défi central pour les architectures d'agents génératifs est de savoir comment gérer le grand nombre d'événements et de mémoires qui doivent être conservés.
Pour résoudre ce problème, le cœur de l'architecture est le flux de mémoire, qui est une base de données qui enregistre l'intégralité de l'expérience de l'agent.
L'agent peut récupérer des souvenirs pertinents à partir du flux de mémoire, ce qui l'aide à planifier des actions, à répondre correctement, et chaque action est renvoyée dans le flux de mémoire pour améliorer de manière récursive les actions futures.
En outre, l'étude a également introduit un deuxième type de mémoire : la réflexion. La réflexion est la pensée abstraite de haut niveau générée par un agent sur la base d'expériences récentes.
Dans cette étude, la réflexion est un processus déclenché périodiquement, et le mécanisme de réflexion ne sera activé que lorsque l'agent juge les scores d'importance d'une série d'événements récents et que l'accumulation dépasse un seuil défini.
Les agents génératifs génèrent plus de détails de manière récursive de haut en bas afin de créer des plans plausibles.
Et ces plans ne décrivaient initialement que grossièrement ce qu'il fallait faire ce jour-là.
Pendant l'exécution du plan, l'agent générateur perçoit en continu l'environnement environnant et stocke les observations perçues dans le flux de mémoire.
En utilisant les observations comme indices, laissez le modèle de langage décider du prochain mouvement de l'agent : continuez avec le plan actuel ou répondez autrement.
Dans l'évaluation expérimentale, les chercheurs ont effectué une évaluation contrôlée de ce cadre, ainsi qu'une évaluation de bout en bout.
L'évaluation du contrôle consiste à comprendre si l'agent peut générer indépendamment un comportement individuel plausible. L'évaluation de bout en bout consiste à comprendre la capacité d'émergence et la stabilité de l'agent.
Par exemple, Isabella organise une fête pour la Saint-Valentin et invite tout le monde à venir. Sur les 12 agents, 7 sont encore à l'étude (3 ont d'autres projets, et 4 n'ont pas d'idées).
Ce lien est très similaire au mode d'interaction humaine.
### Interagissez comme une vraie personne
Dans cette ville mondiale sandbox appelée Smallville, les zones sont marquées. Le nœud racine décrit le monde entier, les nœuds enfants décrivent les zones (maisons, cafés, magasins) et les nœuds feuilles décrivent les objets (tables, étagères).
L'agent se souvient d'un sous-graphe qui reflète les parties du monde qu'il voit.
Les chercheurs ont programmé un langage naturel pour décrire l'identité de chaque agent, y compris sa profession et sa relation avec d'autres agents, comme une mémoire germe.
Par exemple, la mémoire germe de l'agent John Lin est comme ça -
John Lin est un propriétaire de pharmacie serviable qui cherche toujours des moyens de rendre les médicaments plus accessibles aux clients.
L'épouse de John Lin, Mei Lin, est professeur d'université, et son fils Eddy Lin étudie le solfège. Ils vivent ensemble. John Lin aime beaucoup sa famille.
John Lin connaît le vieux couple d'à côté, Sam Moore et Jennifer Moore, depuis plusieurs années, et John Lin pense que Sam Moore est une personne gentille.
John Lin est très proche de sa voisine Yuriko Yamamoto. John Lin connaissait ses voisines, Tamara Taylor et Carmen Ortiz, mais ne les avait jamais rencontrées.
John Lin et Tom Moreno sont des collègues et amis en pharmacie qui aiment discuter de politique locale, etc.
Ce qui suit est un matin de John Lin : se réveiller à 6 heures, commencer à se brosser les dents, prendre une douche, prendre son petit déjeuner, et avant d'aller travailler, il va rencontrer sa femme Mei et son fils Eddy.
Ainsi, au démarrage de la simulation, chaque agent dispose de sa propre mémoire germe.
Ces agents interagissent socialement les uns avec les autres. Lorsqu'ils se remarquent, une conversation peut s'ensuivre.
Au fil du temps, ces agents nouent de nouvelles relations et se souviennent de leurs interactions avec d'autres agents.
Une histoire intéressante est qu'au début de la simulation, un agent a été initialisé pour organiser une fête de la Saint-Valentin.
Il peut y avoir des points d'échec dans la série de choses qui se produisent par la suite : l'agent peut ne pas continuer à insister sur cette intention, ou oublier d'en parler aux autres, voire oublier de se présenter.
Heureusement, dans la simulation, la fête de la Saint-Valentin s'est réellement déroulée et de nombreux agents se sont réunis et ont eu des interactions intéressantes.
Tutoriel de niveau nounou
Environnement de configuration
Avant de configurer l'environnement, vous devez d'abord générer un fichier utils.py contenant la clé API OpenAI et télécharger les packages nécessaires.
Étape 1. Générer le fichier Utils
Dans le dossier reverie/backend_server (le dossier où se trouve reverie.py), créez un nouveau fichier utils.py, puis copiez et collez le contenu suivant dans le fichier :
sera remplacé par votre clé API OpenAI et sera remplacé par votre nom.
Étape 2. Installez requirements.txt
Installez tout ce qui est répertorié dans le fichier requirements.txt (nous vous recommandons fortement de configurer d'abord un environnement virtuel).
Actuellement, l'équipe a testé Python 3.9.12.
Exécuter la simulation
Pour exécuter une nouvelle simulation, vous devez démarrer deux serveurs en même temps : le serveur d'environnement et le serveur de simulation d'agent.
Étape 1. Démarrez le serveur d'environnement
Étant donné que l'environnement est implémenté en tant que projet Django, un serveur Django doit être démarré.
Pour ce faire, accédez d'abord à environment/frontend_server (où réside manage.py) sur la ligne de commande. Exécutez ensuite la commande suivante :
serveur d'exécution python manage.py
Ensuite, visitez-le dans votre navigateur préféré.
Si vous voyez l'invite "Votre serveur d'environnement est opérationnel", cela signifie que le serveur fonctionne normalement. Assurez-vous que le serveur d'environnement continue de fonctionner pendant l'exécution de la simulation, alors gardez cet onglet de ligne de commande ouvert.
(Remarque : Chrome ou Safari sont recommandés. Firefox peut rencontrer des problèmes frontaux, mais cela ne devrait pas affecter la simulation réelle.)
Étape 2. Démarrez le serveur fictif
Ouvrez une autre fenêtre de ligne de commande (le serveur d'environnement que vous avez utilisé à l'étape 1 est toujours en cours d'exécution et doit rester intact). Accédez à rêverie/backend_server et exécutez rêverie.py pour démarrer le serveur fictif :
python rêverie.py
À ce stade, une invite de ligne de commande apparaîtra demandant ce qui suit : "Entrez le nom de la simulation forkée : ".
Par exemple, nous voulons maintenant démarrer une simulation qui contient trois agents, Isabella Rodriguez, Maria Lopez et Klaus Mueller, puis saisir ce qui suit :
base_the_ville_isabella_maria_klaus
Ensuite, l'invite demandera : « Entrez le nom de la nouvelle simulation : ».
À ce stade, il vous suffit d'entrer un nom arbitraire pour représenter la simulation en cours (comme "test-simulation").
test-simulation
Gardez le serveur d'émulation en cours d'exécution. À ce stade, il affichera l'invite suivante : "Entrez l'option"
Étape 3. Exécuter et enregistrer la simulation
Accédez à simulator_home dans votre navigateur et gardez l'onglet ouvert.
Vous verrez maintenant une carte de la ville et une liste des agents actifs sur la carte, et vous pouvez utiliser les flèches du clavier pour vous déplacer sur la carte.
Pour exécuter la simulation, vous devez entrer la commande suivante dans le serveur de simulation en invitant "Enter option":
courir
Notez que ce qui précède doit être remplacé par un nombre entier représentant le nombre de coups de jeu à simuler.
Par exemple, si vous voulez simuler un jeu en 100 étapes, vous devez entrer run 100. Dans lequel, une étape de jeu représente 10 secondes dans le jeu.
Maintenant, la simulation va s'exécuter et vous pouvez regarder l'agent se déplacer sur la carte dans le navigateur.
Une fois l'exécution terminée, l'invite "Entrer l'option" s'affichera à nouveau. À ce stade, vous pouvez continuer la simulation en saisissant à nouveau la commande run et en spécifiant le nombre d'étapes de jeu souhaité, ou en tapant exit pour quitter sans enregistrer, ou fin pour enregistrer et quitter.
La prochaine fois que vous exécuterez le serveur de simulation, vous pourrez accéder à la simulation enregistrée simplement en fournissant le nom de la simulation. De cette façon, vous pouvez reprendre la simulation là où vous l'aviez laissée.
Étape 4. Rejouer la simulation
Pour rejouer une simulation en cours, lancez simplement le serveur d'environnement et rendez-vous à l'adresse suivante dans votre navigateur : replay//.
où doit être remplacé par le nom de la simulation en cours de relecture, et le pas de temps entier auquel commencer la relecture sera remplacé.
Étape 5. Simulation de démonstration
Vous constaterez peut-être que tous les sprites de personnages se ressemblent dans la rediffusion. En effet, la fonction de relecture est principalement destinée au débogage et ne donne pas la priorité à l'optimisation de la taille ou des visuels du dossier fictif.
Pour démontrer correctement une simulation avec des sprites de personnages, il est d'abord nécessaire de compresser la simulation. Pour ce faire, utilisez un éditeur de texte pour ouvrir le fichier compress_sim_storage.py situé dans le répertoire reverie. Ensuite, la fonction de compression est exécutée avec le nom du mock cible en entrée. De cette manière, le fichier de simulation sera compressé et donc prêt à être présenté.
Pour démarrer la démo, veuillez ouvrir l'adresse suivante dans votre navigateur : demo///.
Notez que et ont la même signification que celle mentionnée ci-dessus. Peut être utilisé pour contrôler la vitesse de présentation, où 1 est le plus lent et 5 est le plus rapide.
Simulation personnalisée
Vous avez deux options pour personnaliser les maquettes.
Méthode 1 : écrire et charger l'historique de l'agent
La première consiste à initialiser l'agent avec un historique unique au début de la simulation.
Pour ce faire, vous devez 1) démarrer avec l'une des simulations de base, 2) écrire et charger l'historique de l'agent.
Étape 1. Démarrer la simulation de base
Deux simulations de base sont incluses dans le référentiel : base_the_ville_n25 (25 agents) et base_the_ville_isabella_maria_klaus (3 agents). L'une des simulations de base peut être chargée en suivant les étapes ci-dessus.
Étape 2. Charger le fichier d'historique
Ensuite, lorsque vous êtes invité à entrer l'option "Enter", vous devez charger l'historique de l'agent avec la commande suivante :
call -- charger l'historique the_ville/.csv
où, doit être remplacé par le nom du fichier d'historique existant.
Deux exemples de fichiers d'historique sont inclus dans le référentiel : agent_history_init_n25.csv (pour base_the_ville_n25) et agent_history_init_n3.csv (pour base_the_ville_isabella_maria _klaus). Ces fichiers contiennent une liste d'enregistrements de mémoire pour chaque agent.
Étape 3. Personnalisation supplémentaire
Pour personnaliser l'initialisation en écrivant vos propres fichiers d'historique, placez les fichiers dans le dossier suivant : environment/frontend_server/static_dirs/assets/the_ville.
Le format de colonne du fichier d'historique personnalisé doit correspondre à l'exemple de fichier d'historique joint. Par conséquent, l'auteur recommande de démarrer le processus en copiant et en collant des fichiers déjà dans le référentiel.
Méthode 2 : Créer une nouvelle maquette de base
Pour une personnalisation plus approfondie, vous devrez écrire votre propre fichier de simulation de base.
Le moyen le plus simple consiste à copier et coller le dossier d'émulation de base existant, puis à le renommer et à le modifier en fonction de vos besoins.
Matériel de référence:
Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
Westworld est là ! La "ville" populaire de Stanford est open source, 25 agents IA sont amoureux et se font des amis|Avec des tutoriels de niveau nounou
Source : "Xinzhiyuan" (ID : AI_era), auteur : Xinzhiyuan
Préparez-vous, Stanford Smart Town, qui a fait sensation dans toute la communauté de l'IA, est désormais officiellement open source !
Dans cette ville virtuelle bac à sable numérique du "monde occidental", il y a des écoles, des hôpitaux et des familles.
25 agents IA peuvent non seulement travailler ici, discuter, socialiser, se faire des amis et même tomber amoureux, mais chaque agent a sa propre personnalité et sa propre histoire.
Cependant, ils n'ont aucune idée qu'ils vivent dans une simulation.
Maintenant, la première chose à être affectée peut être le terrain de jeu.
En bref, il y a une infinité de nouvelles possibilités devant vous !
Netizen : Fabricants de jeux, comprenez-vous ce que je veux dire ?
Beaucoup de gens pensent que cet article de Stanford marque le début de l'AGI.
Les internautes étaient également très excités et leur cerveau était grand ouvert.
Certains veulent regarder Pokémon, certains veulent regarder des histoires de détectives sur les meurtres, et certains veulent regarder des émissions de variétés sur l'amour...
"J'ai hâte de voir le triangle amoureux entre les agents de l'IA."
Auparavant, Karpathy, l'ancien directeur de Tesla et gourou d'OpenAI, a déclaré que les agents d'IA sont désormais la direction la plus avant-gardiste à l'avenir.
L'équipe d'OpenAI a passé les cinq dernières années ailleurs, mais Karpathy pense maintenant que "les agents représentent une sorte d'avenir pour l'IA".
Cependant, chaque fois qu'un agent d'IA sort d'un article, tous les collègues sont très intéressés.
25 agents IA dans "Westworld"
Dans la série télévisée américaine " Western World ", un robot avec un scénario prédéfini est placé dans un parc à thème, agit comme un être humain, puis réinitialise sa mémoire et est placé dans son propre scénario principal un nouveau jour.
Architecture
Afin de générer des agents, les chercheurs proposent une nouvelle architecture qui étend le grand modèle de langage et peut stocker l'expérience de l'agent en langage naturel.
Au fil du temps, ces souvenirs sont synthétisés en réflexions de niveau supérieur que l'agent peut récupérer dynamiquement pour planifier ses actions.
Au final, les utilisateurs peuvent utiliser le langage naturel pour interagir avec les 25 agents de la ville.
Cette fonction prend en entrée la situation actuelle de l'agent et renvoie un sous-ensemble du flux mémoire à transmettre au modèle de langage.
La récupération, en revanche, a de nombreuses implémentations possibles, en fonction des facteurs importants que l'agent prend en compte lorsqu'il décide comment agir.
Un défi central pour les architectures d'agents génératifs est de savoir comment gérer le grand nombre d'événements et de mémoires qui doivent être conservés.
Pour résoudre ce problème, le cœur de l'architecture est le flux de mémoire, qui est une base de données qui enregistre l'intégralité de l'expérience de l'agent.
L'agent peut récupérer des souvenirs pertinents à partir du flux de mémoire, ce qui l'aide à planifier des actions, à répondre correctement, et chaque action est renvoyée dans le flux de mémoire pour améliorer de manière récursive les actions futures.
En outre, l'étude a également introduit un deuxième type de mémoire : la réflexion. La réflexion est la pensée abstraite de haut niveau générée par un agent sur la base d'expériences récentes.
Les agents génératifs génèrent plus de détails de manière récursive de haut en bas afin de créer des plans plausibles.
Et ces plans ne décrivaient initialement que grossièrement ce qu'il fallait faire ce jour-là.
En utilisant les observations comme indices, laissez le modèle de langage décider du prochain mouvement de l'agent : continuez avec le plan actuel ou répondez autrement.
Dans l'évaluation expérimentale, les chercheurs ont effectué une évaluation contrôlée de ce cadre, ainsi qu'une évaluation de bout en bout.
L'évaluation du contrôle consiste à comprendre si l'agent peut générer indépendamment un comportement individuel plausible. L'évaluation de bout en bout consiste à comprendre la capacité d'émergence et la stabilité de l'agent.
Par exemple, Isabella organise une fête pour la Saint-Valentin et invite tout le monde à venir. Sur les 12 agents, 7 sont encore à l'étude (3 ont d'autres projets, et 4 n'ont pas d'idées).
Ce lien est très similaire au mode d'interaction humaine.
L'agent se souvient d'un sous-graphe qui reflète les parties du monde qu'il voit.
Les chercheurs ont programmé un langage naturel pour décrire l'identité de chaque agent, y compris sa profession et sa relation avec d'autres agents, comme une mémoire germe.
Par exemple, la mémoire germe de l'agent John Lin est comme ça -
Ce qui suit est un matin de John Lin : se réveiller à 6 heures, commencer à se brosser les dents, prendre une douche, prendre son petit déjeuner, et avant d'aller travailler, il va rencontrer sa femme Mei et son fils Eddy.
Ces agents interagissent socialement les uns avec les autres. Lorsqu'ils se remarquent, une conversation peut s'ensuivre.
Au fil du temps, ces agents nouent de nouvelles relations et se souviennent de leurs interactions avec d'autres agents.
Une histoire intéressante est qu'au début de la simulation, un agent a été initialisé pour organiser une fête de la Saint-Valentin.
Il peut y avoir des points d'échec dans la série de choses qui se produisent par la suite : l'agent peut ne pas continuer à insister sur cette intention, ou oublier d'en parler aux autres, voire oublier de se présenter.
Heureusement, dans la simulation, la fête de la Saint-Valentin s'est réellement déroulée et de nombreux agents se sont réunis et ont eu des interactions intéressantes.
Tutoriel de niveau nounou
Environnement de configuration
Avant de configurer l'environnement, vous devez d'abord générer un fichier utils.py contenant la clé API OpenAI et télécharger les packages nécessaires.
Étape 1. Générer le fichier Utils
Dans le dossier reverie/backend_server (le dossier où se trouve reverie.py), créez un nouveau fichier utils.py, puis copiez et collez le contenu suivant dans le fichier :
Copiez et collez votre API OpenAI Keyopenai_api_key = ""# Mettez votre namekey_owner = ""maze_assets_loc = "../../environment/frontend_server/static_dirs/assets"env _matrix = f"{maze_assets_loc}/the_ville/matrix"env_visuals = f"{maze_assets_loc}/the_ville/visuals"fs_storage = "../../ environment/frontend_server/storage"fs_temp_storage = "../../environment/frontend_server/temp_storage"collision_block_id = "32125"# Verbose debug = True
sera remplacé par votre clé API OpenAI et sera remplacé par votre nom.
Étape 2. Installez requirements.txt
Installez tout ce qui est répertorié dans le fichier requirements.txt (nous vous recommandons fortement de configurer d'abord un environnement virtuel).
Actuellement, l'équipe a testé Python 3.9.12.
Exécuter la simulation
Pour exécuter une nouvelle simulation, vous devez démarrer deux serveurs en même temps : le serveur d'environnement et le serveur de simulation d'agent.
Étape 1. Démarrez le serveur d'environnement
Étant donné que l'environnement est implémenté en tant que projet Django, un serveur Django doit être démarré.
Pour ce faire, accédez d'abord à environment/frontend_server (où réside manage.py) sur la ligne de commande. Exécutez ensuite la commande suivante :
serveur d'exécution python manage.py
Ensuite, visitez-le dans votre navigateur préféré.
Si vous voyez l'invite "Votre serveur d'environnement est opérationnel", cela signifie que le serveur fonctionne normalement. Assurez-vous que le serveur d'environnement continue de fonctionner pendant l'exécution de la simulation, alors gardez cet onglet de ligne de commande ouvert.
(Remarque : Chrome ou Safari sont recommandés. Firefox peut rencontrer des problèmes frontaux, mais cela ne devrait pas affecter la simulation réelle.)
Étape 2. Démarrez le serveur fictif
Ouvrez une autre fenêtre de ligne de commande (le serveur d'environnement que vous avez utilisé à l'étape 1 est toujours en cours d'exécution et doit rester intact). Accédez à rêverie/backend_server et exécutez rêverie.py pour démarrer le serveur fictif :
python rêverie.py
À ce stade, une invite de ligne de commande apparaîtra demandant ce qui suit : "Entrez le nom de la simulation forkée : ".
Par exemple, nous voulons maintenant démarrer une simulation qui contient trois agents, Isabella Rodriguez, Maria Lopez et Klaus Mueller, puis saisir ce qui suit :
base_the_ville_isabella_maria_klaus
Ensuite, l'invite demandera : « Entrez le nom de la nouvelle simulation : ».
À ce stade, il vous suffit d'entrer un nom arbitraire pour représenter la simulation en cours (comme "test-simulation").
test-simulation
Gardez le serveur d'émulation en cours d'exécution. À ce stade, il affichera l'invite suivante : "Entrez l'option"
Étape 3. Exécuter et enregistrer la simulation
Accédez à simulator_home dans votre navigateur et gardez l'onglet ouvert.
Vous verrez maintenant une carte de la ville et une liste des agents actifs sur la carte, et vous pouvez utiliser les flèches du clavier pour vous déplacer sur la carte.
Pour exécuter la simulation, vous devez entrer la commande suivante dans le serveur de simulation en invitant "Enter option":
courir
Notez que ce qui précède doit être remplacé par un nombre entier représentant le nombre de coups de jeu à simuler.
Par exemple, si vous voulez simuler un jeu en 100 étapes, vous devez entrer run 100. Dans lequel, une étape de jeu représente 10 secondes dans le jeu.
Maintenant, la simulation va s'exécuter et vous pouvez regarder l'agent se déplacer sur la carte dans le navigateur.
Une fois l'exécution terminée, l'invite "Entrer l'option" s'affichera à nouveau. À ce stade, vous pouvez continuer la simulation en saisissant à nouveau la commande run et en spécifiant le nombre d'étapes de jeu souhaité, ou en tapant exit pour quitter sans enregistrer, ou fin pour enregistrer et quitter.
La prochaine fois que vous exécuterez le serveur de simulation, vous pourrez accéder à la simulation enregistrée simplement en fournissant le nom de la simulation. De cette façon, vous pouvez reprendre la simulation là où vous l'aviez laissée.
Étape 4. Rejouer la simulation
Pour rejouer une simulation en cours, lancez simplement le serveur d'environnement et rendez-vous à l'adresse suivante dans votre navigateur : replay//.
où doit être remplacé par le nom de la simulation en cours de relecture, et le pas de temps entier auquel commencer la relecture sera remplacé.
Étape 5. Simulation de démonstration
Vous constaterez peut-être que tous les sprites de personnages se ressemblent dans la rediffusion. En effet, la fonction de relecture est principalement destinée au débogage et ne donne pas la priorité à l'optimisation de la taille ou des visuels du dossier fictif.
Pour démontrer correctement une simulation avec des sprites de personnages, il est d'abord nécessaire de compresser la simulation. Pour ce faire, utilisez un éditeur de texte pour ouvrir le fichier compress_sim_storage.py situé dans le répertoire reverie. Ensuite, la fonction de compression est exécutée avec le nom du mock cible en entrée. De cette manière, le fichier de simulation sera compressé et donc prêt à être présenté.
Pour démarrer la démo, veuillez ouvrir l'adresse suivante dans votre navigateur : demo///.
Notez que et ont la même signification que celle mentionnée ci-dessus. Peut être utilisé pour contrôler la vitesse de présentation, où 1 est le plus lent et 5 est le plus rapide.
Simulation personnalisée
Vous avez deux options pour personnaliser les maquettes.
Méthode 1 : écrire et charger l'historique de l'agent
La première consiste à initialiser l'agent avec un historique unique au début de la simulation.
Pour ce faire, vous devez 1) démarrer avec l'une des simulations de base, 2) écrire et charger l'historique de l'agent.
Étape 1. Démarrer la simulation de base
Deux simulations de base sont incluses dans le référentiel : base_the_ville_n25 (25 agents) et base_the_ville_isabella_maria_klaus (3 agents). L'une des simulations de base peut être chargée en suivant les étapes ci-dessus.
Étape 2. Charger le fichier d'historique
Ensuite, lorsque vous êtes invité à entrer l'option "Enter", vous devez charger l'historique de l'agent avec la commande suivante :
call -- charger l'historique the_ville/.csv
où, doit être remplacé par le nom du fichier d'historique existant.
Deux exemples de fichiers d'historique sont inclus dans le référentiel : agent_history_init_n25.csv (pour base_the_ville_n25) et agent_history_init_n3.csv (pour base_the_ville_isabella_maria _klaus). Ces fichiers contiennent une liste d'enregistrements de mémoire pour chaque agent.
Étape 3. Personnalisation supplémentaire
Pour personnaliser l'initialisation en écrivant vos propres fichiers d'historique, placez les fichiers dans le dossier suivant : environment/frontend_server/static_dirs/assets/the_ville.
Le format de colonne du fichier d'historique personnalisé doit correspondre à l'exemple de fichier d'historique joint. Par conséquent, l'auteur recommande de démarrer le processus en copiant et en collant des fichiers déjà dans le référentiel.
Méthode 2 : Créer une nouvelle maquette de base
Pour une personnalisation plus approfondie, vous devrez écrire votre propre fichier de simulation de base.
Le moyen le plus simple consiste à copier et coller le dossier d'émulation de base existant, puis à le renommer et à le modifier en fonction de vos besoins.
Matériel de référence: