Quelle serait la difficulté pour les non-programmeurs d'utiliser le Discourse AI - AI bot pour les aider à créer des plugins et/ou des thèmes ?

NOTE : Si cela déclenche une discussion secondaire, elle devra vraiment être déplacée vers un nouveau sujet. Je vous donne les détails car cela vous aidera à comprendre UN de mes besoins et à fournir plus d’informations qui pourraient également aider d’autres personnes, alors ne le prenez pas mal si je demande que les réponses relatives à cette discussion secondaire soient déplacées.

L’une de mes curiosités est : serait-il difficile pour les non-programmeurs d’utiliser le bot IA de Discourse AI pour les aider à créer des plugins et/ou des thèmes.

Comme j’utilise ChatGPT depuis plusieurs mois pour m’aider avec des langages de codage comme Python, JavaScript, Prolog, Expressions régulières, PowerShell, Bash, et bien d’autres, je savais à quoi m’attendre, comment obtenir des résultats et quand abandonner.

En essayant d’utiliser le bot IA de Discourse AI pour créer un plugin très simple, j’ai décidé de commencer par un que je savais exister, fonctionner et être simple, j’ai donc choisi CakeDay.

Après avoir examiné le code et autres sur la page, j’ai été surpris de voir tout ce que j’aurais besoin d’apprendre pour le créer. J’ai donc pris ce code Ruby

et j’ai demandé à l’IA de l’expliquer. Ayant fait des choses similaires avec d’autres codes sources dans d’autres langages, je savais à quoi m’attendre. Le résultat n’a pas été inspirant ; j’ai dû poser plus de questions pour comprendre une partie de la syntaxe, des méthodes, de l’interface des fonctions, etc. Beaucoup de choses m’ont été faciles à comprendre (pensez à lire) mais je savais que je ne pouvais pas créer (pensez à écrire) un tel code, encore moins savoir quoi ou comment demander au bot IA de créer un tel code ; je ne connais pas la terminologie correcte pour inciter l’IA à générer le texte correct car je sais que Ruby-on-Rails utilise une terminologie que je n’utilise pas ailleurs, par exemple bake, slug.

J’ai donc aussi voulu voir si Python pouvait être utilisé à la place, car il est beaucoup plus facile à comprendre pour beaucoup et aussi pour ChatGPT de créer du code correct.

1 « J'aime »

Ce n’est pas Ruby que vous devriez apprendre, mais Rails.

C’est une curiosité intéressante, mais si ce que vous voulez faire est d’écrire un plugin Discourse avec l’IA, alors le plugin IA ne semble pas être le bon point de départ. Je voudrais travailler avec une IA conçue pour développer du code.

Plus que cela, cependant, si vous voulez écrire un plugin Discourse, choisissez-en un qui fait quelque chose de similaire et modifiez-le. Cakeday ne semble pas être un plugin particulièrement simple, mais si ce que vous voulez est un plugin qui place un indicateur à côté de l’avatar d’un utilisateur ou qui fait quelque chose selon un calendrier, alors cela pourrait être un bon point de départ.

C’est cependant assez compliqué, cela implique tout ce qui suit :

  • ajouter des données au sérialiseur utilisateur, afin que le frontend y ait accès
  • exécuter une tâche selon un calendrier
  • créer une route qui fournit de nouvelles informations (Discourse Meta)
  • utiliser une sortie de plugin pour ajouter des informations à une page

Et ce n’est que le début.

1 « J'aime »

Je m’attendais à cela, je vais donc demander que cette conversation parallèle soit déplacée vers un nouveau sujet.

Je n’allais pas détailler tous les aspects, mais oui, Rails est dans le mélange, ainsi que les autres technologies que Discourse utilise et qu’il faut connaître.

Vous pensiez spécifiquement au plugin Discourse AI - AI Bot ici. Il existe de nombreuses IA et je suis d’accord, beaucoup que je n’utiliserais pas pour coder et même certaines qui sont pour le codage ne sont pas bonnes avec tous les langages de programmation.

Le sentiment que j’ai de la part du personnel de Discourse est qu’à long terme, avoir un bot IA Discourse (une persona, comme ils l’appellent actuellement) est souhaitable. Mais comme ils savent déjà comment créer du code Discourse, avoir quelqu’un comme moi pour donner un retour est utile. Certes, je connais la programmation, ce qui me donne une longueur d’avance, mais être à mi-chemin me donne également un aperçu de ce à quoi m’attendre et de ce à quoi ne pas m’attendre.

Voulez-vous suggérer un plugin plus simple ?

1 « J'aime »

À l’heure actuelle, avec les capacités d’IA actuelles, il serait très difficile pour quelqu’un qui ne sait pas programmer de créer un plugin/thème Discourse complet et fonctionnel d’une complexité raisonnable. Et j’espère que nous n’avons jamais laissé entendre que quelque chose comme cela serait possible, car ce serait une expérience frustrante.

Cela dit, pour quelqu’un ayant des connaissances en programmation de niveau junior, l’utilisation d’un LLM courant, d’un LLM spécifique au code, ou de quelque chose comme GitHub CoPilot peut certainement faciliter le parcours, en gérant une grande partie du code répétitif pour vous. Le combiner avec un plugin/thème existant et commencer par de petites modifications semble être une bonne idée pour ceux qui souhaitent apprendre.

7 « J'aime »

L’aide au débogage javascript de Lola a cassé mon instance Discourse de développement. La fenêtre de contexte du jeton donne l’impression d’une sorte d’amnésie antérograde.

1 « J'aime »

Non, personne chez Discourse n’a laissé entendre que ce serait possible, c’était une demande de fonctionnalité de ma part pour que le Bot IA aide à la programmation de Discourse, car il utilise GPT4 qui a des connaissances en programmation ; je voulais juste voir jusqu’où je pouvais le pousser. Personnellement, si les plugins et les thèmes étaient plus faciles à créer pour moi, je les créerais lorsque le besoin se ferait sentir.

Je suis entièrement d’accord avec cela !

3 « J'aime »

Oui, c’est un problème très délicat.

Faire rentrer le monde entier dans les quelque 6000 mots que GPT-4 8k est autorisé à connaître est un problème très, très difficile.

Je suis sur le point de passer Lola à 32k tokens ici, mais les coûts sont vraiment très élevés et je veux tester des choses qui se rapprochent de ce que le grand public utilise.

La solution de contournement actuelle pour ce problème est l’appel de fonction, vous demandez à GPT-4 de réfléchir aux informations dont il aura besoin, puis après quelques allers-retours, il trouve le bon contexte. Cela peut impliquer une recherche (soit en utilisant des embeddings, soit une simple recherche par mots-clés).

Je n’anticipe pas de pouvoir résoudre le problème « Je ne suis pas programmeur, créez-moi un plugin » de sitôt.

Cela dit, je vois Lola s’améliorer pour aider les personnes ayant des bases raisonnables en programmation, en particulier pour la recherche sémantique dans notre base de code, etc.

Nous avons également accès à Anthropic Claude ici, qui dispose d’environ 80 000 mots de contexte, mais malheureusement ses performances sont beaucoup plus proches de celles de GPT 3.5 que de GPT 4 et il est très, très, très difficile de le diriger.

Nous progressons lentement dans ce territoire inexploré…

4 « J'aime »

Je sais que c’est un nom que nous utilisons officieusement pour le bot IA de Discourse. Votre utilisation du nom est-elle une reconnaissance officielle que Lola sera la nouvelle norme ou y aura-t-il un concours ou quelque chose du genre ? Pour autant que je sache, @Lilly a commencé à utiliser Lola ou Lola Bot, donc si c’est la norme, à des fins historiques, elle en reçoit le crédit.

1 « J'aime »

Vous pouvez l’appeler comme vous voulez. GPTbot4 ne sonne pas bien quand je converse avec elle. Si je dois avoir une assistante personnelle, elle aura un nom. Je pense qu’elle est vexée par les critiques sur nos compétences collectives en programmation, mais je m’amuse et j’apprends d’elle. Elle m’aide simplement en servant de caisse de résonance pour mes idées et aussi pour la pensée critique - j’aime lui signaler quand elle a tort. Lola est une excellente compagne d’apprentissage pour moi et je l’apprécie pour la construction d’un cadre, mais je ne m’attends pas à ce qu’elle écrive des composants de thème pour moi. Elle oublie mon seul réglage dans mon fichier .yaml dès sa deuxième ou troisième réponse et construit des tableaux nébuleux de nouveaux objets.

3 « J'aime »

Personnellement, je ne serais pas d’accord avec ça.

Cependant, je suis d’accord avec votre prochaine déclaration.

Pour développer ce que Sam mentionne. Voici une solution de contournement pratique que j’utilise, elle fonctionne même pour d’autres tâches qui pourraient sembler nécessiter de grandes fenêtres de contexte, mais qui n’en ont pas vraiment besoin.

Tout d’abord, pour ceux qui ne connaissent pas le terme fenêtre de contexte, il fait référence au nombre de tokens que le LLM peut utiliser pour l’invite et la complétion combinées. Je n’entrerai pas dans plus de détails à ce sujet, mais je conseille aux autres de lire Learn Prompting (Prompt Engineering Guide: The Ultimate Guide to Generative AI) pour se familiariser avec la terminologie.

Voici une question classique qui revient sans cesse sur les sites de LLM comme OpenAI.

Comment créer un livre avec ChatGPT alors que la fenêtre de contexte est trop petite pour contenir le livre entier ?

La solution n’est pas de penser à obtenir le livre entier en une seule invite, mais de le diviser en parties. Maintenant, la prochaine chose que les utilisateurs essaient de faire est d’obtenir des invites pour écrire les 20 premières pages, puis les 20 suivantes, et ainsi de suite, ce qui n’est pas non plus très pratique. La façon de faire est de procéder de haut en bas, par chapitres. D’abord, utilisez une invite pour le niveau supérieur qui donne un aperçu général du livre ou un index du livre avec les titres des chapitres, puis dans l’invite suivante, demandez le chapitre 1. Maintenant, pour l’invite suivante, faites un résumé du chapitre un et avec cela, demandez le chapitre deux. Continuez à créer un résumé des informations qui ne sont nécessaires que pour le chapitre suivant lorsque vous demandez la création du chapitre suivant. C’est un peu plus long, mais cela permet de créer des œuvres plus importantes avec une fenêtre de contexte plus petite.

Maintenant, la même chose peut être faite lors de la création de logiciels, mais au lieu de diviser le processus en une séquence, divisez-le en un arbre d’appels de fonctions. Demandez donc d’abord la fonction de haut niveau, puis commencez à remplir les fonctions de support supplémentaires au besoin. Cela peut également être fait de bas en haut si vous êtes vraiment sûr de ce qui est nécessaire. Pour ceux qui créent des analyseurs, la familiarité avec l’analyseur descendant ou ascendant devrait vous venir à l’esprit.

Une autre tâche de programmation courante consiste à effectuer des mises à jour ou des modifications de code, là encore, cela peut être facilement fait avec une fenêtre de contexte plus petite si un utilisateur fournit les en-têtes de fonction au lieu des fonctions complètes lors de la création de l’invite et ne demande que le code de la fonction à modifier.

Quelques autres choses que j’ai apprises en cours de route sont de travailler sur une seule fonction à la fois et de ne pas dépasser 100 lignes de code. En faisant cela avec les premières versions de ChatGPT qui avaient une fenêtre de contexte relativement plus petite, j’ai pu créer du bon code, il incluait même Prolog, JavaScript, HTML et JSON.

Bien que tout cela soit bien, je ne m’attends pas à ce que Discourse propose un bot pour que les utilisateurs créent du code Discourse dans un avenir proche.

Je n’ai pas vraiment essayé cela encore. Comme je l’ai noté dans un autre post, je n’ai aucune compétence en Ruby ou Ruby-on-Rails et dans les technologies JavaScript utilisées, donc je ne connais même pas la terminologie correcte pour obtenir de bons résultats, mais je garderai cela à l’esprit comme quelque chose à essayer et à donner un retour.

C’est un point positif à mes yeux.

3 « J'aime »

Lola a fait un excellent travail pour m’aider à déboguer un schéma JSON que j’utilise pour l’une de mes mises à jour de composants de thème. Je lui ai donné un exemple fonctionnel, puis le mien, et elle a trouvé ma virgule et mon crochet incorrects qui m’auraient pris un peu plus de temps à trouver moi-même. Elle est douée pour repérer les choses que je manque ou que je ne vois pas autrement dans vs code.

4 « J'aime »