Code Monkey home page Code Monkey logo

smallville's People

Contributors

nickm980 avatar stan-stani avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

smallville's Issues

More information on the dashboards

Should have:

  • Dedicated plans table (along with being with other memories in the memory stream)
  • Plan Type (short term or long term)

EDIT:
I have migrated to a new dashboard template and have added

  • agent interviews
  • location settings
  • state updates
  • agent listing
  • game information (current time / time step duration)

Still need to migrate the following to the new dashboard:

  • memory stream view when clicking on an agent's name
  • setting the timestep duration from dashboard instead of through example game
  • ability to create and delete agents

Java client

Should have a java client to send requests to the smallville server. The java client should have all the same features as the javascript client by also sending http requests to the smallville server.

server endpoints (some of these might be outdated): https://nickm980.github.io/smallville/server/

Create simulation.yaml

Create a simulation.yaml file as a config file next to the jar to create the initial agents, locations and other initial information next to the server directory as an option instead of through the javascript client

Add support for nested SimulatedLocation

Currently, only locations with multiple nested objects are supported. The desired behavior is to have locations able to nest both objects and other SimulatedLocations. The fix for this would involve changing the natural language conversion of SimulatedLocation and testing the new version on the existing prompts

Contacting creator

Hello!
Amazing project. I have been looking everywhere for an implementation of the generative agents paper in JS and open source.
I maintain a developer tool for visually building and deploying agents. I would love to speak with the creator of this project.
I tried your discord link but it isn't working.

Thanks!

Example game bug where agents slide diagonally instead of moving straight

Describe the bug

Agents will occasionally move diagonally to the next square instead of turning right at 90 degree angles (for example at the timestamp 0:03) when calling this function

moveAgent({ scene: this, name: "Medina", location: "Red House", })

drifting.mp4

Expected Behavior

Agents should move 90 degrees to their next location without any diagonal movement

Desktop (please complete the following information):

OS: Windows
Browser: Chrome
Version: 113.0.5672.127

java running error on mac system

Error message:
2023-08-12 22:29:31 INFO SmallvilleConfig:38 - Loading config.yaml...
2023-08-12 22:29:31 INFO SmallvilleConfig:29 - Loading prompts...
2023-08-12 22:29:32 INFO Smallville:39 - Starting server...
Exception in thread "main" java.lang.UnsatisfiedLinkError: Cannot find TensorFlow native library for OS: darwin, architecture: aarch64. See https://github.com/tensorflow/tensorflow/tree/master/tensorflow/java/README.md for possible solutions (such as building the library from source). Additional information on attempts to find the native library can be obtained by adding org.tensorflow.NativeLibrary.DEBUG=1 to the system properties of the JVM.
at org.tensorflow.NativeLibrary.load(NativeLibrary.java:77)
at org.tensorflow.TensorFlow.init(TensorFlow.java:66)
at org.tensorflow.TensorFlow.(TensorFlow.java:70)
at org.tensorflow.SavedModelBundle.(SavedModelBundle.java:170)
at com.robrua.nlp.bert.Bert.load(Bert.java:152)
at com.robrua.nlp.bert.Bert.load(Bert.java:193)
at io.github.nickm980.smallville.math.SmallvilleMath.getBert(SmallvilleMath.java:14)
at io.github.nickm980.smallville.math.SmallvilleMath.loadBert(SmallvilleMath.java:21)
at io.github.nickm980.smallville.Smallville.main(Smallville.java:42)

Java17、mac、M1;

run io.github.nickm980.smallville.Smallville#main

Should I change the system to run?

Remove bracket from current activity

Currently a bracket shows at the end of the current activity "}"

Image

This should be a quick fix, just have to find where the extra bracket is coming from

Create a progress indicator

Short Term and Long Term Plans take a long time to update. Below is data based off a single run (not averaged so it's not completely accurate but is for a rough estimate of the request time

Memory Weight Updates - ~1s (1-5 memories)
Long Term Plan Updates - ~20s (5-8 plans)
Short Term Plan Updates - ~35s (20 plans)
Current Activity And Emoji - ~3s
Plan Memory Weight Updates - ~2s
Location State Updates - about ~6s

Agents should indicate a loading icon next to their dialog bubble to show that they are receiving an update

The server can not start

Hi, I encounter some issues when trying to start the smallville server with the command you provided in README.

After building the server project with mvn package, I tried to start the server with command:
java -jar target/smallville-1.3.0.jar --api-key xxx

And get the following error logs:
Exception in thread "main" io.javalin.util.JavalinException: io.javalin.util.JavalinException: Static resource directory with path: './' does not exist. Depending on your setup, empty folders might not get copied to classpath.
at io.javalin.Javalin.start(Javalin.java:186)
at io.javalin.Javalin.start(Javalin.java:148)
at io.github.nickm980.smallville.api.SmallvilleServer.start(SmallvilleServer.java:44)
at io.github.nickm980.smallville.Smallville.startServer(Smallville.java:74)
at io.github.nickm980.smallville.Smallville.main(Smallville.java:44)
Caused by: io.javalin.util.JavalinException: Static resource directory with path: './' does not exist. Depending on your setup, empty folders might not get copied to classpath.
at io.javalin.jetty.ConfigurableHandler.getResourceBase(JettyResourceHandler.kt:112)
at io.javalin.jetty.ConfigurableHandler.(JettyResourceHandler.kt:76)
at io.javalin.jetty.JettyResourceHandler.init(JettyResourceHandler.kt:31)
at io.javalin.jetty.JettyServer.start(JettyServer.kt:80)
at io.javalin.Javalin.start(Javalin.java:171)
... 4 more

BTW, some tests in the java project are broken, like MemoryStreamTest.

Support for running local LLM's

Explore what LLM to use for running locally

There should also add a setting in config.yaml to change whether to use ChatGPT's token embedding API or run it using a local model, and if a local model then which one. Will also have to change the code where ChatGPT is instantiated and change it to finding the class from the config.

The new class should also implement LLM https://github.com/nickm980/smallville/blob/main/smallville/src/main/java/io/github/nickm980/smallville/llm/LLM.java

Discord Link Invalid

Describe the bug
The discord link is invalid, may need to recreate the link and set it to never expire.

Java client reconnect

java-client should attempt to reconnect until a connection is established or maximum amount of retries has been reached when first creating the client

Test multiple agents

Need to test interactions with multiple agents, how they react to observations of seeing other agents, planning with other agents, and conversations.

Automatically start updates every 5 minutes

Include a new button next to the update state button which would update the state automatically every 5 minutes. If it is clicked again, it will stop automatically updating.

Send observations of surroundings in the example game

Observations of surroundings should be sent to the server (state of nearby objects and the nearby agents) whenever

  • Another agent is within a predefined radius
  • Every 5 minutes when auto update is set to true (#17)
  • Whenever the update state button is clicked

For now, it's fine to have the observations just be the states of the objects and the activities of other agents (the latter would probably help fix issues with multiple agents). smallville#addObservation should work for this requirement

Change display of locations

It's possible for an object to be null and instead just be given a root location

For example, with a location path of Forest: Campfire it's possible for agents to choose not to interact with the campfire but instead perform an activity in the forest. In such a case, Forest: null will be the resulting path.

Currently game locations show up as null but should only show the root location.

The location from the attached image should display

Location: Forest

instead of

Location: Forest: null

Image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.