Open thomasBontempsTecrisViattech opened 1 month ago
Pour l'instant, une seule action : goto [CHARACTER_NAME]
(est-ce qu'on ajoute RUN pour si un pnj veut fuir le détective ?)
@JosselinTILLAY Je ne sais pas trop. Si tu implémentes courir, le joueur pourra tout le temps courir avec son perso ?
En vrai si tu l'implémente, faut que un pnj qui voit quelqu'un courir le garde en mémoire et donc tu dois me renvoyer un string dès que quelqu'un court.
Comme ça je pourrais faire en sorte que le pnj s'en souvient.
Le gros problème d'ajouter des petites fonctions comme ça, c'est que l'on peut vite perdre l'effet "humain" du pnj.
Si on veut implémenter les actions, il faut changer le système de prompt et la façon dont on l'imagine.
Je tente un début de spec :
On utilise dorénavant deux types de prompts : les événements et les actions.
Les événements sont les prompts entrants. À chaque événement, un PNJ peut décider de ne pas réagir (répondre avec une action "nulle") ou bien de changer son action.
Types d'événements :
Les actions sont les prompts sortants. Certaines actions peuvent écraser d'autres actions précédentes (par exemple, "suivre X" va écraser "suivre Y").
Types d'actions :
Le thread d'un personnage ne contient désormais plus que des événements (prompts entrants) et des actions (prompts sortants). Ces prompts sont sous format JSON.
{ "type": "event", "name": "talk_from", "from": "Matthieu Mancini", "text": "You can do be do wat you want to do" }
{ "type": "action", "name": null }
{ "type": "event", "name": "talk_from", "from": "Matthieu Mancini", "text": "Be do be do" }
{ "type": "action", "name": null }
{ "type": "event", "name": "see_character", "character": "François Hollande" }
{ "type": "action", "name": "speak_to", "character": "François Hollande", "text": "Cher monsieur, que faites-vous ici ?" }
etc...
Les actions sont données par le LLM en fonction des conversations et besoin du pnj