Rupert le nutritionniste

Le chatbot qui vous aide à manger mieux

a marqué ce sujet comme résolu.

Rupert le nutritionniste

Qui suis-je ?

Bonjour, je suis Oxymore. Je suis doctorant en informatique à l’Université de Fribourg (en Suisse) et travaille à l’institut HumanTech. Mes recherches se portent sur la gestion de données et le machine learning dans le contexte de la nutrition en particulier et de la santé de manière plus générale. Je touche donc aux algorithmes d’apprentissage automatique, au traitement naturel du language et plusieurs autres choses tout autant intéressantes.

Vous avez peut-être déjà vu passer mon nom, je fais partie de l’équipe qui développe le jeu "Asylamba: Influence" qui a également un sujet sur ce forum.

Rupert le nutritionniste est un petit projet sur lequel je travaille actuellement avec mon collègue Nathan et c’est ce que je vais vous présenter aujourd’hui.

Agent conversationnel

Vous avez probablement déjà entendu parler d’agent conversationnel, ou chatbot. Il s’agit de service avec lequel on interagit via une interface de chat. Ce service fonctionne avec des règles (si l’utilisateur dit ça, répond ça) ou de l’intelligence artificielle (ou les deux). Bien que les chatbots existent depuis longtemps (voir ELIZA en 1966), ils se sont démocratisés en 2016 depuis la conférence F8 de Facebook qui annonçait le support des chatbots dans son service de messagerie Messenger.

Depuis là, la hype a décollé, si bien que nous retrouvons des chatbots sur beaucoup de plateformes différentes : Messenger, Telegram, Discord, Skype, Slack, Twitter, et j’en passe.

Rupert

Rupert est donc un chatbot, vous l’aurez compris. Il officie comme coach nutritionnel en challengeant l’utilisateur quant à sa consommation de nourriture. Deux challenges sont disponibles :

  1. manger moins de viande
  2. manger les 5 portions quotidiennes de fruits et légumes recommandées

L’utilisateur choisit donc son challenge, définit sa consommation cible et là démarre une période d’une semaine où il devra quotidiennement faire part à Rupert de son avancée. Rupert va donc engager la conversation avec l’utilisateur une fois par jour. L’échange est bref, c’est le but. Après une semaine, Rupert fait un bilan et l’utilisateur choisit s’il veut poursuivre son challenge ou en démarrer un nouveau.

Exemples de conversation

Les personnes qui souhaiteraient en savoir d’avantage sur des questions de nutrition peuvent le demander à Rupert. L’utilisateur peut notamment apprendre pourquoi il est mieux de réduire sa consommation de viande, en apprendre plus sur les labels des fruits en Suisse ou avoir la liste des légumes de saison. Pour cela, les onglets "en savoir plus" affichent des listes de sujets sur lesquels il suffit de cliquer pour que Rupert donne les infos.

Les informations sont données par Rupert sous la forme de discussions guidées où l’utilisateur presse simplement sur les propositions pour aller plus loin (vous le verrez assez vite).

Ah d’ailleurs, les chiffres mentionnées par Rupert sont spécifiques à la Suisse, mais le reste du contenu est valable pour tout le monde ;)

Technologies

Le chatbot est développé avec le service en ligne Chatfuel. Il s’agit d’un service WYSIWYG qui facilite la conception des différentes interactions. J’ai choisi ce système notamment pour sa simplicité. Il suffit amplement pour un prototype de ce type. Par contre sa gestion de la compréhension du langage n’est pas très poussée. J’ai choisi d’axer mon développement sur l’efficacité des interactions, donc l’utilisateur se verra souvent proposer des réponses sur lesquelles il suffit de cliquer pour répondre plutôt que de le laisser écrire ce qu’il souhaite. Donc pas besoin de compréhension du langage poussée.

Ce service permet la gestion générale des dialogues, mais il fallait également une sorte d’intelligence pour la gestion de données et les traitements plus précis. Pour cela un webhook a été développé en Python. Et les données sont stockés dans une petite base de données MongoDB.

Le prototype est déployé sur Facebook et Rupert est donc joignable sur Messenger.

Recherche testeurs

Maintenant que le prototype est en ligne, j’ai besoin de testeurs. Mon but est de récolter des données sur l’utilisation de ce chatbot. Plus il y a de monde, mieux c’est. Je me tourne donc vers vous, qui lisez cet article :D .

Démarrez une conversation ;)

Si vous avez quelques minutes à accorder à ce petit Rupert, je vous en serai grandement reconnaissant.

En testant, si vous avez des remarques, critiques ou idées d’amélioration à formuler, c’est avec un grand plaisir que je les lirai.

Merci de votre attention !

Oxymore

+2 -0

J’ai trouvé un « bug » :

  • Je mange de la viande 4 fois par semaine ;
  • Mon objectif est de manger de la viande 7 fois par semaine ;

Et Rupert est content que je baisse ma consommation de viande !

+2 -0

L’idée est originale mais je suis un peu dubitatif. En effet, je ne suis pas convaincu qu’un chatbot puisse jouer le rôle d’un nutritionniste (et je ne suis pas certain que beaucoup de gens lui feraient confiance). En effet, la nutrition est une science extrêmement complexe et il serait un peu simpliste de penser qu’un robot pourrait répondre à tous les besoins alimentaires de chacun. Cela pourrait même être dangereux dans certaines situations (par exemple, il n’est pas toujours mieux de réduire sa consommation de viande : un anémique, par exemple, pourrait empirer sa situation en suivant les consignes du robot). D’ailleurs, comme qwerty l’a remarqué, le robot (et toi-même) semblez croire que la réduction de la consommation de viande est toujours une bonne chose alors que la réalité n’est pas aussi simple. Bref, un site web où des suggestions de modes d’alimentation sont présentés, ça passe, mais la différence c’est que ton chatbot donne des consignes aux utilisateurs, et je ne suis pas certain que ce soit une bonne idée.

Aussi, j’ai un peu de difficulté à comprendre comment le chatbot peut être utile s’il ne propose que 2 suggestions. :P

+3 -0

Salut, projet intéressant !

Malgré tout j’ai du mal à comprendre pourquoi l’un des premiers trucs que le robot dis c’est "de manger moins de viande". Sachant qu’il me semble que le but est purement nutritionnel, manger de la viande n’est clairement pas néfaste pour la santé (je parle pas de la viande transformée, ou les qualités d’élevage, uniquement du produit en soit).

Du coup, navré mais je trouve un peu propagande pro-vegan de directement dire à l’utilisateur "je suis un robot nutritionniste et il va falloir réduire la consommation de viande" sans demander au préalable quoique ce soit à l’utilisateur.

+4 -0

@Shinix Pour le coup l’OMS met la viande rouge dans le même sac que les viandes transformées du point de vue du cancer, c’est-à-dire probablement cancérogène.http://www.who.int/features/qa/cancer-red-meat/fr/

Je vois pleins d’autres raisons qui poussent à manger moins de viande pour améliorer sa santé (perte de poids, maladies cardio-vasculaires, augmenter l’apport en fibres, …) mais vu que Oxymore travaille sur le sujet de la nutrition je pense qu’il est plus callé que moi sur le sujet et propose ce défi en connaissance de cause.

En plus le défi n’est pas d’arrêter de manger de la viande mais uniquement d’en diminuer sa consommation donc pas de "propagande pro-vegan" ici.


@Oxymore

Pour revenir au sujet qui est le chatbot en lui même, comptes tu ajouter du traitement naturel du langage dans ton chatbot vu que tu en parles dans ton premier post ?

Pour l’instant j’imagine que tu utilises un espèce d’arbre de décision en fonction des réponses de l’utilisateur ?

@Shinix Pour le coup l’OMS met la viande rouge dans le même sac que les viandes transformées du point de vue du cancer, c’est-à-dire probablement cancérogène.http://www.who.int/features/qa/cancer-red-meat/fr/

Guigz12

En fait il est intéressant de noter qu’en lisant les articles à ce sujet, on se rend compte qu’ils ne disent pas « la viande rouge c’est cancérigène », mais plutôt « les gens qui consomment davantage de viande et de produits transformés sont davantage à risque d’avoir le cancer ». C’est donc peut-être tout simplement le mode de vie parfois associé à la consommation de viande rouge qui est en cause, pas la viande en elle-même. C’est assez facile à imaginer qu’un amateur de steak va également avoir une plus grande propension à manger des frites avec son steak ou manger des hamburgers faits de bœuf, donc il a probablement un mode de vie moins optimal que quelqu’un qui en mangerait moins. C’est la raison pour laquelle ce type de personne serait davantage à risque pour certaines pathologies. Bref, la nuance est importante et souvent oubliée par la plupart des gens.

Par ailleurs, c’est surtout la viande rouge qui est concernée, mais les viandes blanches / le poisson sont des types de viande à privilégier.

Mais bon, peu importe si on est végétalien ou omnivore, le plus important est de manger de façon équilibrée. C’est certain que c’est important de manger aussi des fruits et des légumes, ça ne fait de mal à personne. :P

P.-S. : Par contre ne me mangez pas, même si je suis un Gigot. :'(

+2 -0

Ce slogan, contrairement à d’autres, n’est pas commercial, mais est mal compris. Le bon résumé de la chose ici.

Très résumé pour les pressé : manger des fruits et légumes réduit le risque de maladie cardiovasculaire et de cancer (pour le cœur, c’est -5 à -10 % par tranche de 2,5 portions de 80 g jusqu’à 5 portions). Au-delà de 5 portions, et jusqu’à 10, manger plus de fruits et légumes continue de réduire les risques, mais moins (inflexion du bénéfice).

Notez que 80 g, c’est peu. Ça représente une petite pomme, une petite tomate, un demi banane ou une demi orange.

+2 -0

Merci ! Ça serait bien de voir ce genre d’information dans ton application, si on choisit un mode "éducatif" par exemple. :D

Il s’agit, encore et toujours, de corrélations. Les auteurs soulignent ici encore que les personnes qui suivent un régime riche en fruits et légumes tendent à avoir une très bonne hygiène de vie globale. Même en prenant en compte divers facteurs de diminution du risque, des effets de synergie entre ces facteurs peuvent exister, qui pourraient entraîner une surestimation des bénéfices des seuls fruits et légumes.

Par contre, j’suis sûr que c’est aussi lié à une bonne hygiène de vie.

Merci pour vos commentaires. Je vais essayer de répondre à toutes vos questions/remarques.


@Arius (à propos de la protection des données)

C’est une bonne question, surtout dans le contexte actuel (GDPR, affaire Cambridge Analytica, etc.). Comme je l’ai dit dans la présentation, il s’agit ici d’un petit projet de recherche axé sur des techniques de coaching et d’analyse de comportement (human vs chatbot). Les personnes qui testent ce prototype sont soit des collègues de boulot, soit des membres de la communauté ZdS, ils sont donc au courant des tenants et aboutissants. La protection des données n’est ici pas vraiment de mise car il ne s’agit pas d’un vrai produit, commercialisé ou quoi que ce soit. Les données enregistrées sont des identifiants d’utilisateurs, de challenges enregistrés et des quantité de consommation journalières. Donc pas à mon avis de données trop "sensibles". Je vais ensuite analyser comportementales vis-à-vis du chatbot. Ces données sont sauvées sur une base de données protégée, par contre je ne peux pas contrôler ce que Facebook enregistre, vous vous en doutez ;)


@querty (à propos de la consommation de viande à 4 et de l’objectif à 7)

Ahah, oui en effet, il ne contrôle pas si la valeur est inférieure. C’est un proto ;)


@Le Gigot (pas convaincu que le bot puisse jouer le rôle d’un nutritionniste, seulement 2 choix)

Je suis d’accord avec toi, le nom "nutritionniste" est probablement mal choisi dans ce contexte.

Il ne va en effet pas répondre aux besoins alimentaires de tout le monde, chacun est différent. Un vrai conseil devrait être personnalisé. Le fait de n’avoir que deux choix possibles s’est plutôt fait dans l’idée de simplifier la compréhension pour l’utilisateur, tout en lui donnant la possiblité de choisir.

Encore une fois, il s’agit d’un prototype et non d’un produit fini !


@Shinix, Guigz12 (à propos de la viande)

Alors ce n’est en effet pas du tout une campagne pro-végane. Je mange d’ailleurs de la viande. Par contre tout le monde est d’accord pour dire que nous consommons (en général) trop de viande et que cela n’est pas bon ni écologiquement, ni pour la santé. Je vous propose de lire les deux premiers article ques Rupert vous donne quand vous cliquez sur "Infos sur la viande" (à savoir "Statistiques de consommation en Suisse" et "Le budget viande annuel idéal") pour en savoir plus.


@Guigz12 (à propos de l’ajout du traitement du language naturel)

Merci pour ta question ! Cela va dépendre des résultats et de la suite de ce projet de recherche. Pour l’instant nous allons analyser ce que nous avons avec le chatbot en l’état. Et si des résultats pointent le bout de leur nez, nous allons envisager la suite. A ce moment-là, la question de la compréhension du langage se posera.

Oui, c’est une sorte d’arbre de décision ou plutôt une suite de bloc de conversation avec la possiblité de changer de route en fonction de l’action de l’utilisateur. Je t’invite à tester le service Chatfuel (qui est gratuit), tu comprendras tout de suite le fonctionnement et les possibilités (et leur limitations).


Si vous avez encore des remarques ou questions, n’hésitez pas ;) Merci d’avoir testé le bot dans tous les cas !

Oxymore

+0 -0

L’idée est originale mais je suis un peu dubitatif. En effet, je ne suis pas convaincu qu’un chatbot puisse jouer le rôle d’un nutritionniste.

Le Gigot

C’est évident qu’il ne remplacera jamais un nutritionniste mais je le vois davantage comme une "vulgarisation" du domaine. Je ne pense pas en consulter un dans les prochains jours et ce chatbot pourrait me donner quelques conseils basics que je connais pas du tout. Je vais l’essayer prochainement ;)

Concernant les données des utilisateurs tu parles "d’identifiants d’utilisateurs". Tu parles du PSID ou d’autres données comme le user_id/prénom/nom de l’utilisateur ?

Bon courage pour la suite !

Voici les attributs relatifs à l’utilisateur qu’il est possible d’accéder à traver Chatfuel : User attributes.

Les infos sont donc "messenger ID", "first name", "last name", "gender", "timezone", "locale", "ref" et "profile picture". Je ne sais pas contre pas si le "messenger ID" correspond au PSID ou au user_id.

Salut Oxymore :)

Humm intéressant comme idée, c’est vrai que ça semble un peu chaud de donner un vrai conseil personnalisé avec un chatbot qui vise aussi large, d’un autre côté ça pourrait donner des conseils "de base" et ça pourrait être une porte d’entrée vers d’autres services plus personnalisés.

Pourquoi sinon ne pas faire un chatbot plus ciblé, du genre un chatbot qui ne s’adresse qu’au Vegan et qui les conseils en fonctions des carences qu’ils pourraient avoir, ou autres particularités auxquels ils faudrait qu’ils fassent attention ?

Ce n’est qu’un exemple, j’ai lu que tu n’es pas vegan, ce que je veux montré à travers cet exemple c’est que quelque chose de plus ciblé te permettrait peut-être d’avoir plus d’impact.

Qu’est-ce que tu en penses ?

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte