Singlestore accueille deux hackathons internes chaque année, où les employés sont libres de travailler sur ce qu'ils veulent - ne doivent pas être utiles.
Le thème de ce hackathon était AI / ML, nous avons donc décidé d'essayer de faire quelque chose avec la base de données vectorielle que Singlestore nous fournit et nous mélangez également dans des manigans Openai .
L'objectif du projet était de faire quelque chose dans le sens de "il y a plusieurs agents d'IA vivant dans un monde de type Pokémon, qui doit collaborer pour réaliser des tâches données par l'utilisateur".
Malheureusement, en raison des contraintes de temps, nous avons fini par implémenter uniquement la prise en charge de l'IA pour un seul agent. Il s'avère que l'ingénierie rapide n'est pas facile - les agents sont assez stupides et finissent parfois par répéter des tâches qu'ils ont déjà effectuées, comme ouvrir une porte qu'ils ont déjà ouverte.
Les agents peuvent effectuer deux actions: walk(target) et interact(item, target) . Marcher vers une cible déplace juste le caractère à côté de l'objet ou du caractère donné. L'interaction peut être utilisée, par exemple, pour ouvrir une porte à l'aide d'une clé.
Les agents obtiennent des commentaires du résultat de leurs actions: par exemple, walk(goal) peut entraîner Cannot walk to 'goal' because 'door' is blocking the path . Les décisions sont effectuées en interrogeant les informations mondiales d'une base de données vectorielle ( SingleStore dans ce cas) et en l'incluant dans des invites.
Les informations sur le monde comprennent les règles et l'État. Par exemple:
You can open 'door's by interacting with them using 'key'.
There is a 'door' named 'door 1'.
Les agents sont contrôlés avec 3 types d'invites différents:
cp .env{.example,}.env et remplissez-le (Besoin de créer une base de données Singlestore)LEVEL=<level_name> DATABASE=[dumb|s2] python3 scripts/main.py Remarque: level_name est le nom d'un fichier de votre choix dans le dossier scripts/levels .