Westworld está aqui! A popular "cidade" de Stanford é de código aberto, 25 agentes de IA estão apaixonados e fazem amigos|Com tutoriais em nível de babá
Prepare-se, Stanford Smart Town, que causou sensação em toda a comunidade de IA, agora é oficialmente de código aberto!
endereço do projeto:
Nesta cidade virtual sandbox digital do "Mundo Ocidental", existem escolas, hospitais e famílias.
25 Os agentes de IA podem não apenas trabalhar aqui, conversar, socializar, fazer amigos e até se apaixonar, mas cada agente tem sua própria personalidade e história de fundo.
No entanto, eles não têm ideia de que estão vivendo em uma simulação.
O cientista sênior da Nvidia, Jim Fan, comentou -
Stanford Agent Town é um dos experimentos de agente de IA mais emocionantes em 2023. Costumamos falar sobre as capacidades emergentes de um único grande modelo de linguagem, mas agora com vários agentes de IA, a situação é mais complexa e fascinante.
Um grupo de AI pode deduzir o processo de evolução de toda a civilização.
Agora, a primeira coisa a ser afetada pode ser o campo de jogo.
Em suma, existem infinitas novas possibilidades pela frente!
Internauta: Fabricantes de jogos, vocês entendem o que quero dizer?
Muitas pessoas acreditam que este artigo de Stanford marca o início da AGI.
É concebível que vários jogos de RPG e simulação usem essa tecnologia.
Os internautas também ficaram muito animados e seus cérebros bem abertos.
Alguns querem assistir Pokémon, alguns querem assistir histórias de detetives de assassinato e alguns querem assistir programas de variedades de amor...
"Mal posso esperar para ver o triângulo amoroso entre agentes de IA."
"O diálogo monótono e repetitivo de Animal Crossing e o sistema de personalidade unidimensional compartilhado por todos os aldeões são tão decepcionantes. Nintendo, aprenda!"
"Os Sims podem transferir isso?"
Se você puder ver a IA rodando no NPC em um jogo de RPG clássico como "God Realm", toda a experiência do jogo será subvertida! "
Algumas pessoas também imaginam que essa tecnologia também tem muitos cenários de aplicação no espaço corporativo, como a forma como os funcionários interagem com diferentes ambientes de trabalho/mudanças de processos.
Claro, algumas pessoas disseram, com o que você está animado? Na verdade, vivemos em tal simulação, mas nosso mundo tem mais poder de computação.
Sim, se ampliarmos este mundo virtual o suficiente, podemos definitivamente nos ver.
### Karpathy: agentes de IA são a próxima fronteira
Anteriormente, Karpathy, o ex-diretor da Tesla e guru da OpenAI, disse que os agentes de IA são agora a direção mais avançada no futuro.
A equipe da OpenAI passou os últimos cinco anos em outro lugar, mas Karpathy agora acredita que "os agentes representam uma espécie de futuro para a IA".
Se um artigo propõe uma maneira diferente de treinar um grande modelo de linguagem, alguém do grupo Slack dentro do OpenAI dirá: "Este método que tentei há dois anos e meio não funcionou."
No entanto, sempre que um agente de IA sai de um papel, todos os colegas ficam muito interessados.
Karpathy certa vez chamou o AutoGPT de a próxima fronteira da engenharia rápida
25 agentes de IA em "Westworld"
Na série de TV americana "Western World", um robô com um enredo predefinido é colocado em um parque temático, age como um ser humano e, em seguida, redefine sua memória e é colocado em seu próprio enredo central em um novo dia.
E em abril deste ano, pesquisadores de Stanford e do Google realmente construíram uma cidade virtual na qual 25 agentes de IA podem sobreviver e se envolver em comportamentos complexos. Pode ser chamado de "Mundo Ocidental" tornando-se realidade.
Endereço de papel:
Arquitetura
Para gerar agentes, os pesquisadores propõem uma nova arquitetura que estende o modelo de linguagem grande e pode armazenar a experiência do agente em linguagem natural.
Com o tempo, essas memórias são sintetizadas em reflexões de alto nível que o agente pode recuperar dinamicamente para planejar suas ações.
No final, os usuários podem usar a linguagem natural para interagir com todos os 25 Agentes da cidade.
Como acima, a arquitetura do agente generativo implementa uma função de "recuperação".
Esta função toma como entrada a situação atual do agente e retorna um subconjunto do fluxo de memória para passar para o modelo de linguagem.
A recuperação, por outro lado, tem muitas implementações possíveis, dependendo dos fatores importantes que o agente considera ao decidir como agir.
Um desafio central para arquiteturas de agentes generativos é como gerenciar o grande número de eventos e memórias que devem ser retidos.
Para resolver esse problema, o núcleo da arquitetura é o fluxo de memória, que é um banco de dados que registra toda a experiência do agente.
O agente pode recuperar memórias relevantes do fluxo de memória, o que o ajuda a planejar ações, responder corretamente e cada ação é realimentada no fluxo de memória para melhorar recursivamente as ações futuras.
Além disso, o estudo também introduziu um segundo tipo de memória – a reflexão. A reflexão é o pensamento abstrato de alto nível gerado por um agente com base em experiências recentes.
Neste estudo, a reflexão é um processo acionado periodicamente, e o mecanismo de reflexão só será ativado quando o agente julgar as pontuações de importância de uma série de eventos recentes e o acúmulo exceder um limite definido.
Agentes generativos geram mais detalhes recursivamente de cima para baixo para criar planos plausíveis.
E esses planos inicialmente descreviam apenas aproximadamente o que fazer naquele dia.
Durante a execução do plano, o agente gerador percebe continuamente o ambiente circundante e armazena as observações percebidas no fluxo de memória.
Ao usar observações como pistas, deixe o modelo de linguagem decidir o próximo movimento do agente: continuar com o plano atual ou responder de outra forma.
Na avaliação experimental, os pesquisadores realizaram uma avaliação controlada desse framework, bem como uma avaliação de ponta a ponta.
A avaliação do controle é entender se o agente pode gerar de forma independente um comportamento individual plausível. A avaliação de ponta a ponta é entender a capacidade de emergência e estabilidade do agente.
Por exemplo, Isabella planeja uma festa de Dia dos Namorados e convida a todos. Dos 12 agentes, 7 ainda estão em estudo (3 têm outros planos e 4 não têm ideias).
Este link é muito semelhante ao modo de interação humana.
### Interaja como uma pessoa real
Nesta cidade mundial sandbox chamada Smallville, as áreas são marcadas. O nó raiz descreve o mundo inteiro, os nós filhos descrevem áreas (casas, cafés, lojas) e os nós folhas descrevem objetos (mesas, estantes).
O agente se lembra de um subgrafo que reflete as partes do mundo que ele vê.
Os pesquisadores programaram uma linguagem natural para descrever a identidade de cada agente, incluindo sua ocupação e relacionamento com outros agentes, como uma memória-semente.
Por exemplo, a memória semente do agente John Lin é assim -
John Lin é um proprietário de farmácia prestativo que está sempre procurando maneiras de tornar os medicamentos mais acessíveis aos clientes.
A esposa de John Lin, Mei Lin, é professora universitária, e seu filho Eddy Lin está estudando teoria musical. Eles moram juntos. John Lin ama muito sua família.
John Lin conhece o velho casal vizinho, Sam Moore e Jennifer Moore, há vários anos, e John Lin acha que Sam Moore é uma pessoa gentil.
John Lin é muito próximo de sua vizinha Yuriko Yamamoto. John Lin conhecia suas vizinhas, Tamara Taylor e Carmen Ortiz, mas nunca as conheceu.
John Lin e Tom Moreno são colegas de farmácia e amigos que gostam de discutir política local e assim por diante.
O seguinte é uma manhã de John Lin: acordar às 6 horas, começar a escovar os dentes, tomar banho, tomar café da manhã e, antes de sair para o trabalho, encontrará sua esposa Mei e seu filho Eddy.
Dessa forma, ao iniciar a simulação, cada agente possui sua própria memória semente.
Esses agentes interagem socialmente uns com os outros. Quando eles percebem um ao outro, uma conversa pode acontecer.
Com o tempo, esses agentes formam novos relacionamentos e se lembram de suas interações com outros agentes.
Uma história interessante é que no início da simulação, um agente foi inicializado para dar uma festa de Dia dos Namorados.
Pode haver pontos de falha na série de coisas que acontecem depois, o agente pode não continuar a insistir nessa intenção, ou esquecer de contar para os outros, ou mesmo esquecer de comparecer.
Felizmente, na simulação, a festa do Dia dos Namorados realmente aconteceu, e muitos agentes se reuniram e tiveram interações interessantes.
Tutorial de nível de babá
Ambiente de configuração
Antes de configurar o ambiente, primeiro você precisa gerar um arquivo utils.py contendo a chave da API OpenAI e baixar os pacotes necessários.
Etapa 1. Gerar arquivo Utils
Na pasta reverie/backend_server (a pasta onde reverie.py está localizado), crie um novo arquivo utils.py e copie e cole o seguinte conteúdo no arquivo:
Copie e cole sua OpenAI API Keyopenai_api_key = ""# Coloque sua 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
será substituído por sua chave API OpenAI e será substituído por seu nome.
Etapa 2. Instalar requirements.txt
Instale tudo listado no arquivo requirements.txt (recomendamos configurar um ambiente virtual primeiro).
Atualmente, a equipe testou no Python 3.9.12.
Execute a simulação
Para executar uma nova simulação, você precisa iniciar dois servidores ao mesmo tempo: o servidor de ambiente e o servidor de simulação do agente.
Etapa 1. Inicie o servidor do ambiente
Como o ambiente é implementado como um projeto Django, um servidor Django precisa ser iniciado.
Para fazer isso, primeiro navegue até environment/frontend_server (onde reside manage.py) na linha de comando. Em seguida, execute o seguinte comando:
python manage.py runserver
Em seguida, visite-o em seu navegador favorito.
Se você vir o prompt "Seu servidor de ambiente está funcionando", isso significa que o servidor está funcionando normalmente. Certifique-se de que o servidor do ambiente continue em execução durante a execução da simulação, portanto, mantenha esta guia de linha de comando aberta.
(Observação: Chrome ou Safari são recomendados. O Firefox pode apresentar algumas falhas de front-end, mas não deve afetar a simulação real.)
Etapa 2. Inicie o servidor fictício
Abra outra janela de linha de comando (o servidor de ambiente usado na etapa 1 ainda está em execução e precisa permanecer intocado). Navegue até reverie/backend_server e execute reverie.py para iniciar o servidor fictício:
python reverie.py
Neste ponto, um prompt de linha de comando aparecerá solicitando o seguinte: "Digite o nome da simulação bifurcada: ".
Por exemplo, agora queremos iniciar uma simulação que contém três agentes, Isabella Rodriguez, Maria Lopez e Klaus Mueller, então insira o seguinte:
base_the_ville_isabella_maria_klaus
Em seguida, o prompt perguntará: "Digite o nome da nova simulação: ".
Neste momento, você só precisa inserir um nome arbitrário para representar a simulação atual (como "teste-simulação").
simulação de teste
Mantenha o servidor do emulador em execução. Nesta fase, ele exibirá o seguinte prompt: "Enter option"
Etapa 3. Execute e salve a simulação
Acesse o simulator_home em seu navegador e mantenha a aba aberta.
Agora você verá um mapa da cidade e uma lista de agentes ativos no mapa e poderá usar as setas do teclado para se mover pelo mapa.
Para executar a simulação, você precisa inserir o seguinte comando no servidor de simulação solicitando "Enter option":
correr
Observe que o acima precisa ser substituído por um inteiro representando o número de movimentos do jogo a serem simulados.
Por exemplo, se você quiser simular um jogo de 100 etapas, insira a execução 100. Em que uma etapa do jogo representa 10 segundos no jogo.
Agora, a simulação será executada e você poderá observar o agente se mover pelo mapa no navegador.
Quando a execução estiver concluída, o prompt "Inserir opção" aparecerá novamente. Neste ponto, você pode continuar a simulação digitando novamente o comando de execução e especificando o número desejado de etapas do jogo, ou digitando exit para sair sem salvar, ou fin para salvar e sair.
Na próxima vez que executar o servidor de simulação, você poderá acessar a simulação salva simplesmente fornecendo o nome da simulação. Dessa forma, você pode reiniciar a simulação de onde parou.
Etapa 4. Simulação de Repetição
Para reproduzir uma simulação em execução, basta executar o servidor do ambiente e acessar o seguinte endereço em seu navegador: replay//.
onde precisa ser substituído pelo nome da simulação que está sendo reproduzida, e o intervalo de tempo inteiro no qual iniciar a reprodução será substituído.
Etapa 5. Simulação de Demonstração
Você pode descobrir que todos os sprites dos personagens parecem iguais no replay. Isso ocorre porque o recurso de reprodução é principalmente para depuração e não prioriza a otimização do tamanho ou do visual da pasta fictícia.
Para demonstrar adequadamente uma simulação com sprites de personagens, primeiro é necessário compactar a simulação. Para fazer isso, use um editor de texto para abrir o arquivo compress_sim_storage.py localizado no diretório devaneio. Em seguida, a função de compactação é executada com o nome do mock de destino como entrada. Desta forma, o arquivo de simulação estará compactado e assim pronto para apresentação.
Para iniciar a demonstração, abra o seguinte endereço em seu navegador: demo///.
Observe que e tem o mesmo significado mencionado acima. Pode ser usado para controlar a velocidade da apresentação, onde 1 é o mais lento e 5 é o mais rápido.
Simulação personalizada
Você tem duas opções para personalizar os mocks.
Método 1: gravar e carregar o histórico do agente
A primeira é inicializar o agente com um histórico único no início da simulação.
Para fazer isso, você precisa 1) começar com uma das simulações básicas, 2) escrever e carregar o histórico do agente.
Etapa 1. Inicie a simulação básica
Duas simulações básicas estão incluídas no repositório: base_the_ville_n25 (25 agentes) e base_the_ville_isabella_maria_klaus (3 agentes). Uma das simulações básicas pode ser carregada seguindo as etapas acima.
Etapa 2. Carregar arquivo de histórico
Então, quando solicitado a "Enter option", você precisa carregar o histórico do agente com o seguinte comando:
chamada -- carregar histórico the_ville/.csv
onde, precisa ser substituído pelo nome do arquivo de histórico existente.
Dois arquivos de histórico de exemplo estão incluídos no repositório: agent_history_init_n25.csv (para base_the_ville_n25) e agent_history_init_n3.csv (para base_the_ville_isabella_maria _klaus). Esses arquivos contêm uma lista de registros de memória para cada agente.
Etapa 3. Mais personalização
Para personalizar a inicialização escrevendo seus próprios arquivos de histórico, coloque os arquivos na seguinte pasta: environment/frontend_server/static_dirs/assets/the_ville.
O formato da coluna do arquivo de histórico personalizado deve corresponder ao arquivo de histórico de amostra anexado. Portanto, o autor recomenda iniciar o processo copiando e colando os arquivos já existentes no repositório.
Método 2: Criar uma nova simulação de base
Para uma personalização mais aprofundada, você precisará escrever seu próprio arquivo de simulação básico.
A maneira mais direta é copiar e colar a pasta de emulação base existente, renomeá-la e editá-la de acordo com suas necessidades.
Materiais de referência:
Ver original
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
Westworld está aqui! A popular "cidade" de Stanford é de código aberto, 25 agentes de IA estão apaixonados e fazem amigos|Com tutoriais em nível de babá
Fonte: "Xinzhiyuan" (ID: AI_era), autor: Xinzhiyuan
Prepare-se, Stanford Smart Town, que causou sensação em toda a comunidade de IA, agora é oficialmente de código aberto!
Nesta cidade virtual sandbox digital do "Mundo Ocidental", existem escolas, hospitais e famílias.
25 Os agentes de IA podem não apenas trabalhar aqui, conversar, socializar, fazer amigos e até se apaixonar, mas cada agente tem sua própria personalidade e história de fundo.
No entanto, eles não têm ideia de que estão vivendo em uma simulação.
Agora, a primeira coisa a ser afetada pode ser o campo de jogo.
Em suma, existem infinitas novas possibilidades pela frente!
Internauta: Fabricantes de jogos, vocês entendem o que quero dizer?
Muitas pessoas acreditam que este artigo de Stanford marca o início da AGI.
Os internautas também ficaram muito animados e seus cérebros bem abertos.
Alguns querem assistir Pokémon, alguns querem assistir histórias de detetives de assassinato e alguns querem assistir programas de variedades de amor...
"Mal posso esperar para ver o triângulo amoroso entre agentes de IA."
Anteriormente, Karpathy, o ex-diretor da Tesla e guru da OpenAI, disse que os agentes de IA são agora a direção mais avançada no futuro.
A equipe da OpenAI passou os últimos cinco anos em outro lugar, mas Karpathy agora acredita que "os agentes representam uma espécie de futuro para a IA".
No entanto, sempre que um agente de IA sai de um papel, todos os colegas ficam muito interessados.
25 agentes de IA em "Westworld"
Na série de TV americana "Western World", um robô com um enredo predefinido é colocado em um parque temático, age como um ser humano e, em seguida, redefine sua memória e é colocado em seu próprio enredo central em um novo dia.
Arquitetura
Para gerar agentes, os pesquisadores propõem uma nova arquitetura que estende o modelo de linguagem grande e pode armazenar a experiência do agente em linguagem natural.
Com o tempo, essas memórias são sintetizadas em reflexões de alto nível que o agente pode recuperar dinamicamente para planejar suas ações.
No final, os usuários podem usar a linguagem natural para interagir com todos os 25 Agentes da cidade.
Esta função toma como entrada a situação atual do agente e retorna um subconjunto do fluxo de memória para passar para o modelo de linguagem.
A recuperação, por outro lado, tem muitas implementações possíveis, dependendo dos fatores importantes que o agente considera ao decidir como agir.
Um desafio central para arquiteturas de agentes generativos é como gerenciar o grande número de eventos e memórias que devem ser retidos.
Para resolver esse problema, o núcleo da arquitetura é o fluxo de memória, que é um banco de dados que registra toda a experiência do agente.
O agente pode recuperar memórias relevantes do fluxo de memória, o que o ajuda a planejar ações, responder corretamente e cada ação é realimentada no fluxo de memória para melhorar recursivamente as ações futuras.
Além disso, o estudo também introduziu um segundo tipo de memória – a reflexão. A reflexão é o pensamento abstrato de alto nível gerado por um agente com base em experiências recentes.
Agentes generativos geram mais detalhes recursivamente de cima para baixo para criar planos plausíveis.
E esses planos inicialmente descreviam apenas aproximadamente o que fazer naquele dia.
Ao usar observações como pistas, deixe o modelo de linguagem decidir o próximo movimento do agente: continuar com o plano atual ou responder de outra forma.
Na avaliação experimental, os pesquisadores realizaram uma avaliação controlada desse framework, bem como uma avaliação de ponta a ponta.
A avaliação do controle é entender se o agente pode gerar de forma independente um comportamento individual plausível. A avaliação de ponta a ponta é entender a capacidade de emergência e estabilidade do agente.
Por exemplo, Isabella planeja uma festa de Dia dos Namorados e convida a todos. Dos 12 agentes, 7 ainda estão em estudo (3 têm outros planos e 4 não têm ideias).
Este link é muito semelhante ao modo de interação humana.
O agente se lembra de um subgrafo que reflete as partes do mundo que ele vê.
Os pesquisadores programaram uma linguagem natural para descrever a identidade de cada agente, incluindo sua ocupação e relacionamento com outros agentes, como uma memória-semente.
Por exemplo, a memória semente do agente John Lin é assim -
O seguinte é uma manhã de John Lin: acordar às 6 horas, começar a escovar os dentes, tomar banho, tomar café da manhã e, antes de sair para o trabalho, encontrará sua esposa Mei e seu filho Eddy.
Esses agentes interagem socialmente uns com os outros. Quando eles percebem um ao outro, uma conversa pode acontecer.
Com o tempo, esses agentes formam novos relacionamentos e se lembram de suas interações com outros agentes.
Uma história interessante é que no início da simulação, um agente foi inicializado para dar uma festa de Dia dos Namorados.
Pode haver pontos de falha na série de coisas que acontecem depois, o agente pode não continuar a insistir nessa intenção, ou esquecer de contar para os outros, ou mesmo esquecer de comparecer.
Felizmente, na simulação, a festa do Dia dos Namorados realmente aconteceu, e muitos agentes se reuniram e tiveram interações interessantes.
Tutorial de nível de babá
Ambiente de configuração
Antes de configurar o ambiente, primeiro você precisa gerar um arquivo utils.py contendo a chave da API OpenAI e baixar os pacotes necessários.
Etapa 1. Gerar arquivo Utils
Na pasta reverie/backend_server (a pasta onde reverie.py está localizado), crie um novo arquivo utils.py e copie e cole o seguinte conteúdo no arquivo:
Copie e cole sua OpenAI API Keyopenai_api_key = ""# Coloque sua 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
será substituído por sua chave API OpenAI e será substituído por seu nome.
Etapa 2. Instalar requirements.txt
Instale tudo listado no arquivo requirements.txt (recomendamos configurar um ambiente virtual primeiro).
Atualmente, a equipe testou no Python 3.9.12.
Execute a simulação
Para executar uma nova simulação, você precisa iniciar dois servidores ao mesmo tempo: o servidor de ambiente e o servidor de simulação do agente.
Etapa 1. Inicie o servidor do ambiente
Como o ambiente é implementado como um projeto Django, um servidor Django precisa ser iniciado.
Para fazer isso, primeiro navegue até environment/frontend_server (onde reside manage.py) na linha de comando. Em seguida, execute o seguinte comando:
python manage.py runserver
Em seguida, visite-o em seu navegador favorito.
Se você vir o prompt "Seu servidor de ambiente está funcionando", isso significa que o servidor está funcionando normalmente. Certifique-se de que o servidor do ambiente continue em execução durante a execução da simulação, portanto, mantenha esta guia de linha de comando aberta.
(Observação: Chrome ou Safari são recomendados. O Firefox pode apresentar algumas falhas de front-end, mas não deve afetar a simulação real.)
Etapa 2. Inicie o servidor fictício
Abra outra janela de linha de comando (o servidor de ambiente usado na etapa 1 ainda está em execução e precisa permanecer intocado). Navegue até reverie/backend_server e execute reverie.py para iniciar o servidor fictício:
python reverie.py
Neste ponto, um prompt de linha de comando aparecerá solicitando o seguinte: "Digite o nome da simulação bifurcada: ".
Por exemplo, agora queremos iniciar uma simulação que contém três agentes, Isabella Rodriguez, Maria Lopez e Klaus Mueller, então insira o seguinte:
base_the_ville_isabella_maria_klaus
Em seguida, o prompt perguntará: "Digite o nome da nova simulação: ".
Neste momento, você só precisa inserir um nome arbitrário para representar a simulação atual (como "teste-simulação").
simulação de teste
Mantenha o servidor do emulador em execução. Nesta fase, ele exibirá o seguinte prompt: "Enter option"
Etapa 3. Execute e salve a simulação
Acesse o simulator_home em seu navegador e mantenha a aba aberta.
Agora você verá um mapa da cidade e uma lista de agentes ativos no mapa e poderá usar as setas do teclado para se mover pelo mapa.
Para executar a simulação, você precisa inserir o seguinte comando no servidor de simulação solicitando "Enter option":
correr
Observe que o acima precisa ser substituído por um inteiro representando o número de movimentos do jogo a serem simulados.
Por exemplo, se você quiser simular um jogo de 100 etapas, insira a execução 100. Em que uma etapa do jogo representa 10 segundos no jogo.
Agora, a simulação será executada e você poderá observar o agente se mover pelo mapa no navegador.
Quando a execução estiver concluída, o prompt "Inserir opção" aparecerá novamente. Neste ponto, você pode continuar a simulação digitando novamente o comando de execução e especificando o número desejado de etapas do jogo, ou digitando exit para sair sem salvar, ou fin para salvar e sair.
Na próxima vez que executar o servidor de simulação, você poderá acessar a simulação salva simplesmente fornecendo o nome da simulação. Dessa forma, você pode reiniciar a simulação de onde parou.
Etapa 4. Simulação de Repetição
Para reproduzir uma simulação em execução, basta executar o servidor do ambiente e acessar o seguinte endereço em seu navegador: replay//.
onde precisa ser substituído pelo nome da simulação que está sendo reproduzida, e o intervalo de tempo inteiro no qual iniciar a reprodução será substituído.
Etapa 5. Simulação de Demonstração
Você pode descobrir que todos os sprites dos personagens parecem iguais no replay. Isso ocorre porque o recurso de reprodução é principalmente para depuração e não prioriza a otimização do tamanho ou do visual da pasta fictícia.
Para demonstrar adequadamente uma simulação com sprites de personagens, primeiro é necessário compactar a simulação. Para fazer isso, use um editor de texto para abrir o arquivo compress_sim_storage.py localizado no diretório devaneio. Em seguida, a função de compactação é executada com o nome do mock de destino como entrada. Desta forma, o arquivo de simulação estará compactado e assim pronto para apresentação.
Para iniciar a demonstração, abra o seguinte endereço em seu navegador: demo///.
Observe que e tem o mesmo significado mencionado acima. Pode ser usado para controlar a velocidade da apresentação, onde 1 é o mais lento e 5 é o mais rápido.
Simulação personalizada
Você tem duas opções para personalizar os mocks.
Método 1: gravar e carregar o histórico do agente
A primeira é inicializar o agente com um histórico único no início da simulação.
Para fazer isso, você precisa 1) começar com uma das simulações básicas, 2) escrever e carregar o histórico do agente.
Etapa 1. Inicie a simulação básica
Duas simulações básicas estão incluídas no repositório: base_the_ville_n25 (25 agentes) e base_the_ville_isabella_maria_klaus (3 agentes). Uma das simulações básicas pode ser carregada seguindo as etapas acima.
Etapa 2. Carregar arquivo de histórico
Então, quando solicitado a "Enter option", você precisa carregar o histórico do agente com o seguinte comando:
chamada -- carregar histórico the_ville/.csv
onde, precisa ser substituído pelo nome do arquivo de histórico existente.
Dois arquivos de histórico de exemplo estão incluídos no repositório: agent_history_init_n25.csv (para base_the_ville_n25) e agent_history_init_n3.csv (para base_the_ville_isabella_maria _klaus). Esses arquivos contêm uma lista de registros de memória para cada agente.
Etapa 3. Mais personalização
Para personalizar a inicialização escrevendo seus próprios arquivos de histórico, coloque os arquivos na seguinte pasta: environment/frontend_server/static_dirs/assets/the_ville.
O formato da coluna do arquivo de histórico personalizado deve corresponder ao arquivo de histórico de amostra anexado. Portanto, o autor recomenda iniciar o processo copiando e colando os arquivos já existentes no repositório.
Método 2: Criar uma nova simulação de base
Para uma personalização mais aprofundada, você precisará escrever seu próprio arquivo de simulação básico.
A maneira mais direta é copiar e colar a pasta de emulação base existente, renomeá-la e editá-la de acordo com suas necessidades.
Materiais de referência: