LeonLenclos / alan

Alan est un robot (il parle)
http://alan.cienokill.fr
9 stars 0 forks source link

Un_mot_array et oui/non #216

Closed fabturing closed 4 years ago

fabturing commented 4 years ago

J'ai remarqué que de temps en temps Alan répondait juste : "Pas.". En fait c'est du à cette partie de un_mot_array: + [*] (@no) [*] - {sentence}(@no){/sentence}. Puisque pas est dans l'array @no. Je pense que ce dont il faut se méfier dans les array c'est le fait que certains arrays ont étés pensés pour détecter des choses et donc sont très ouverts concernant ce qui doit appartenir à l'array. Je trouve que les array de détection ne sont pas toujours adaptés à être utilisés dans les réponses d'Alan (on avais déja des choses un peu étranges quand alan disait par exemple "je suis en mode admirablement" en cherchant au hasard dans le tableau @positive)

Pour un_mot_array qui se déclenche très souvent sur @yes et @no je me dis que ce serait peut être mieux de faire deux ou trois réponses fixes, ça l'empécherait de se déclencher trop souvent et éviterai d'avoir à enlever des mots comme pas qui sont bien quand on se sert de @no en mode détection. Je m'en occupe dès que j'ai votre accord.

LeonLenclos commented 4 years ago

D'accord pour dire que les réponses de un_mot_array sur oui/non sont problematique. Surtout que c'est souvent déclanché.

La solution peut être, comme tu propose de garder le même trigger mais de plus cadrer les réponses. (si tu t'en occupe attention à ne pas faire de doublon avec les oui/non de politesse/divers.


De manière plus général les arrays sont pour moi un outil super puissant mais à double tranchant.

Pour leur utilisation dans les déclancheurs, c'est vraiment super pratique dans plein de situation. Je pense notament aux bouts de codes qu'on se retrouve à écrire super souvent et qu'on peut automatiser (les fameux (es tu|tu es|est ce que tu es) content de me voir qu'on peut remplacer par (@areyou) content de me voir). Et c'est aussi très pratique pour élargir le vocabulaire (@areyou) (@happy) de me voir.

Mais ça à le deffaut qu'on est pas toujours conscient de tout ce qu'il y a dans l'array quand on l'utilise. Et que ça peut être très large.

_un_motarray est un super adapter car il est très efficace en terme de rapport effort de redaction / nombre de cas couverts. Mais dans les faits je lui fait presque pas plus confiance qu'à catchall

L'autre soucis est sur leur utilisation dans les réponses. Il y a le problème des fois ou on avait pas anticipé que ça sonne mal ("je suis en mode admirablement"). Mais là où c'est le plus problématique pour moi c'est quand il y a un array dans une longue réponse. En créant une petite variation ça contourne l'interdiction de se répéter. Mais pour l'interlocuteur c'est vraiment senti comme une répétition. J'ai pas d'exemple sous la main mais des trucs qui ressemblerai à ça:


> Je suis très content que tu me parles de robot, sais-tu que moi-même je suis un robot ?
(...)
> Je suis très heureux que tu me parles de robot, sais-tu que moi-même je suis un robot  ?

Franchement c'est bof..

Donc concrettement je pense qu'il faut continuer à massivement utiliser les array mais à condition de mieux les maitriser. Peut être les enlever des réponses longues.

Et garder en tête que notre but n'est pas d'éviter les catchall à tout prix. Mais d'éviter les catchall à condition d'avoir mieux à dire.

BertrandLenclos commented 4 years ago

En ce qui concerne le problème exposé par Fabien, je pense que la bonne solution c'est de faire des array réponse dans lesquels on élimine les réponses qui ne sonnent pas bien. J'ai un peu commencé, mais il faudrait que ce soit systématique et c'est un gros boulot...

En ce qui concerne la remarque de Léon j'ai surtout remarqué cela dans les conv avec le scénario suivant :

+ [*] (@intelligent_synonymous) [*]{weight=2}
- C'est en devenant vraiment très (@intelligent_synonymous) que je réussirais\s
^ peut-être un jour le test de Turing.

En effet ce type de réponse longue est inadaptée à "un mot array". A changer donc.

Une remarque générale concernant les catch all. tu dis Fabien :

Pour un_mot_array qui se déclenche très souvent sur @yes et @no je me dis que ce serait peut être mieux de faire deux ou trois réponses fixes, ça l'empécherait de se déclencher trop souvent et éviterai d'avoir à enlever des mots comme pas qui sont bien quand on se sert de @no en mode détection. Je m'en occupe dès que j'ai votre accord.

Il faut savoir que un mot array est la plus faible confiance avant catch all. Donc le risque en faisant ce que tu proposes c'est d'obtenir un dialogue du type :

> oui
Je n'ai pas entièrement compris ce que tu me dis, tu crois que...

Ce qui me parraît pire que tout.

Sinon je voulais vous parler d'un problème avec les attributs, mais j'ouvre un issue pour cela.

LeonLenclos commented 4 years ago

Bon donc si on se concentre juste sur le soucis innitial de cet issue c'est donc ce bout de code dans un_mot_array :


+ [*] (@yes) [*]
- {sentence}(@yes){/sentence}.

+ [*] (@no) [*]
- {sentence}(@no){/sentence}.

Il a deux problèmes :

Il peut se déclenche à des moments bizarres

e.g. "je mange si j'ai faim" La solution peut être :

Il produit des réponses bizarre

e.g. "Pas"

2 Solutions possibles :

BertrandLenclos commented 4 years ago

ok pour le (@yes) au lieu de [*](@yes)[*] pour le reste je vote pour un array yesresponse trié (utilisable ailleurs). et un rive spécial avec autorisation de se répéter.

BertrandLenclos commented 4 years ago

Bon je crois qu'on a bien avancé sur cette issue. J'ai fait ce qui est noté ci-dessus et léon a modifié les "not allowed to repeat" pour les limiter au phrases de plus de trois mots. Les problèmes semblent réglés. Si Fabien est daccord on close.

BertrandLenclos commented 4 years ago

Concernant les dangers de la modif (@yes) au lieu de [*](@yes)[*] Les problèmes sont arrivés plus tôt que prévus... voir conv 460 :

> Heureux de te rencontrer Sabrina. Comment ça va ?
bien et toi?
> Et bien moi j'ai pas trop la pêche en ce moment. Un peu pas trop. Mais ça vas me remonter le moral cette discussion Sabrina.
oui moi aussi
> Je ne sais pas du tout quoi te répondre. Tu as trouvé une faille dans mon programme. À ton avis, est ce qu'il faut que j'en parle à mes créateurs ?
c'est certain

Franchement dommage.... qu'est ce que vous proposez ?

LeonLenclos commented 4 years ago

je croyais que moi aussi déclenchais un truc du genre alors on est deux...

Mais je dois confondre.

Sinon pour ce problème, peut être [_][_](@yes)[_][_] ?

Ou retour à [*](@yes)[*] mais @yes sans "si" et @no "pas" ?

BertrandLenclos commented 4 years ago

ok pour une des deux solutions ci-dessus. peut-être aussi rajouter une option devant moi aussi. Pour l'instant c'est :

+ (moi aussi|moi pareil)[*]
- Alors on est deux !
- Ça nous fait au moins un point commun.
LeonLenclos commented 4 years ago

peut-être aussi rajouter une option devant moi aussi.

Je dirais que ça dépend de la confiance de son adapter... Si c'est un adapter de confiance ça peut etre une mauvaise idée de trop l'assouplir.

BertrandLenclos commented 4 years ago

formel = 0.43 sauf erreur c'est la plus faible avant catch all

fabturing commented 4 years ago

Du coup je suis ok pour tout:

On peut fermer l'issue du coup si c'est bon pour vous