Singlestore alberga dos hackatones internos cada año, donde los empleados son libres de trabajar en lo que quieran, no tiene que ser útil de ninguna manera.
El tema de este hackathon era AI/ML, por lo que decidimos tratar de hacer algo con la base de datos Vector Singlestore nos proporciona y también mezclar algunas travesuras de OpenAi .
El objetivo del proyecto era hacer algo como "Hay múltiples agentes de IA que viven en un mundo similar a Pokémon, que debe colaborar para lograr tareas dadas por el usuario".
Desafortunadamente, debido a las limitaciones de tiempo, terminamos solo implementando soporte de IA para un solo agente. Resulta que la ingeniería rápida no es fácil: los agentes son bastante tontos y, a veces, terminan repetiendo tareas que ya han realizado, como abrir una puerta que ya han abierto.
Los agentes pueden realizar dos acciones: walk(target) e interact(item, target) . Caminar a un objetivo solo mueve el personaje al lado del objeto o carácter dado. Interact se puede usar, por ejemplo, para abrir una puerta con una llave.
Los agentes reciben comentarios del resultado de sus acciones: por ejemplo, walk(goal) puede provocar que Cannot walk to 'goal' because 'door' is blocking the path . Las decisiones se realizan consultando información mundial de una base de datos vectorial ( SingleStore en este caso) e incluyendo la información.
La información mundial incluye reglas y estado. Por ejemplo:
You can open 'door's by interacting with them using 'key'.
There is a 'door' named 'door 1'.
Los agentes se controlan con 3 tipos de inmediato diferentes:
cp .env{.example,}.env y llenarlo (necesita crear una base de datos Singlestore)LEVEL=<level_name> DATABASE=[dumb|s2] python3 scripts/main.py Nota: level_name es el nombre de un archivo de su elección dentro de la carpeta scripts/levels .