jeudi, 25 avril 2024

Quand le canard en caoutchouc répond

J’avais besoin de refactoriser la logique de pagination dans le plugin Mastodon pour Steampipe. Après un certain nombre d’essais avortés, j’ai recommencé cette semaine avec l’aide de la dernière génération d’assistants de codage alimentés par LLM.

C’était là le problème. La variante de pré-version du plugin a consolidé la pagination pour de nombreuses tables en un seul endroit. C’était un avantage, mais l’inconvénient était qu’il n’y avait qu’une seule table Steampipe qui représentait ce qui aurait dû être la plupart d’entre eux. Ainsi, vous pourriez dire select * from mastodon_timeline Ensuite, vous deviez certifier avec where timeline ="home" ou where timeline ="local " et ainsi de suite . Pour un utilisateur du plugin, c’était gênant, vous préféreriez indiquer select * from mastodon_timeline_home ou select * from mastodon_timeline_local, et réserver le where clause pour des fonctions plus particulières.

Le plugin v1 créait différentes tables, mais reproduisait la logique de pagination table par table. Cela a fonctionné et était assez bon pour expédier le plugin à temps pour la démonstration au FediForum, mais il nécessitait clairement une amélioration.

ChatGPT-4 et Sourcegraph Cody

Depuis lors, Sourcegraph a effectivement lancé son nouvel assistant de codage, Cody, que vous pouvez exécuter en tant qu’extension VS Code ou sur sourcegraph.com. Cela a créé la possibilité d’un contraste intéressant. ChatGPT-4 s’appuie sur le LLM d’OpenAI ; Cody de Sourcegraph, d’autre part, utilise Claude d’Anthropic.

Une autre différence essentielle est que ChatGPT n’a que le contexte que vous y collez. Cody, assis à l’intérieur de VS Code, peut voir votre référentiel et a tout ce contexte. Et si vous indexez votre référentiel, ce que Sourcegraph est prêt à faire pour les utilisateurs bêta à la demande, alors Cody a accès à ce qu’on appelle des incorporations qui représentent la structure de votre code de différentes manières. Ces intégrations, selon Sourcegraph, peuvent grandement améliorer vos déclencheurs LLM.

Même sans intégrations, Cody utilise plutôt une variété de supports, allant d’un résumé de haut niveau de ce que fait votre dépôt à une amélioration au niveau de la ligne. Tout est emballé, dans l’extension, sous la forme d’un ensemble de recettes derrière des boutons avec des noms tels que Explain picked code, Enhance variable names et Odor code . Je n’ai pas encore assez utilisé ces plats pour me faire des avis solides. Pour cet exercice, j’ai utilisé Cody principalement dans une méthode conversationnelle de type ChatGPT. Parce que mode, c’est formidable de pouvoir choisir le code dont on veut parler, plutôt que de le coller dans le chat.

Dans les deux cas, comme cela ne doit pas être une surprise, il ne suffisait pas de demandez simplement aux outils de combiner le raisonnement de pagination. Ils étaient complètement heureux de proposer des solutions qui ne pourraient jamais fonctionner et pourraient même ne pas compiler. J’ai commencé avec une version simplifiée du problème. Mastodon utilise exactement le même équipement de pagination pour les API qui renvoient des tableaux de différents types de résultats : statuts (toots), comptes et alertes. En me concentrant sur ceux-ci individuellement, j’ai réduit la pagination en double de 13 cas à 3. Dans une autre passe, j’ai trouvé comment les regrouper en une seule fonction paginate qui acceptait parmi trois spécifications de fonction de récupération de données.

J’ai essayé de prêter une attention particulière aux déclencheurs et aux conclusions au fur et à mesure, mais dans le feu de l’action, je n’ai pas fait une excellente tâche, en partie parce que je faisait des allers-retours entre les deux outils. Cependant je suis plutôt satisfait du résultat. Il y avait une idée essentielle en particulier pour laquelle, de manière fascinante, j’ai du mal à attribuer le mérite. Était-ce moi ou parmi les assistants ? Je pense que c’était moi, mais d’une telle manière que cela n’a pas d’importance, et ce n’est pas le but de cette histoire.

La perspicacité cruciale

Voici la perspicacité. Lorsque je construisais la fonction de transition paginateStatus, le premier effort renvoyait des résultats au code appelant dans la fonction List de chaque table, qui était responsable de la diffusion des données vers Steampipe. Cela a entraîné une série de détours pour contourner le problème selon lequel les informations renvoyées pouvaient être assez volumineuses et consommer beaucoup de mémoire. Cela pourrait probablement être résolu avec une goroutine qui transmettrait les résultats à l’appelant, plutôt que de les renvoyer par lots. J’ai tenté d’inciter les deux LLM à proposer ce type d’option, je n’ai pas eu de chance avec un certain nombre d’essais dans les deux cas, mais j’ai ensuite compris. Les fonctions d’assistance pourraient transmettre les résultats directement à Steampipe et renvoyer simplement nil ou err à la fonction appelante List.

Avec cette simplification dramatique, j’ai pu terminer la refactorisation de l’étape 1, qui a donné trois fonctions de pagination : paginateStatus, paginateAccount et paginateNotification. L’étape 2, qui les combinait en une seule fonction paginate, était un peu plus prosaïque. J’ai eu besoin d’aide pour comprendre comment les instructions switch nécessaires pouvaient activer les types de chronologie transmis à la fonction paginate. Les deux assistants avaient en fait vu de nombreux exemples de ce modèle, et tous deux ont utilement augmenté ma compréhension imparfaite des idiomes golang.

Partenariat avec l’intelligence du fabricant

Je suis reparti avec le sentiment profond que le La véritable valeur de ces assistants n’est pas un morceau de code particulier qu’ils obtiennent « meilleur » ou « incorrect », mais plutôt la procédure de collaboration avec eux. Lorsque vous travaillez seul, vous avez une discussion continue avec vous-même, généralement dans votre propre tête. L’intérêt de parler avec un canard en caoutchouc est d’exprimer cette conversation afin que vous puissiez raisonner plus efficacement à ce sujet.

Extériorisez votre réflexion, car la méthode est intrinsèquement précieuse. Lorsque le canard en caoutchouc répond, c’est un tout nouveau jeu vidéo. Comme Garry Kasparov l’a écrit :

Le gagnant s’est avéré être non pas un grand maître avec un PC avancé, mais un groupe de joueurs d’échecs américains amateurs utilisant trois systèmes informatiques en même temps. Leur habileté à manipuler et à former leurs systèmes informatiques pour examiner extrêmement profondément les positions a neutralisé efficacement la remarquable compréhension des échecs de leurs grands adversaires et la puissance de calcul plus élevée des autres participants. Une meilleure procédure de fabricant humain faible transcendée à un ordinateur puissant seul et, plus incroyablement, remarquable à un processus inférieur d’appareil humain puissant.

Je ne suis pas inquiet pour les seigneurs des robots. Au lieu de cela, j’anticipe avec impatience de collaborer avec des partenaires robotiques.

Cette série :

  1. Autonomie, taille de l’emballage, friction, sortance et vitesse
  2. Mastodon, Steampipe, et RSS
  3. Naviguer sur le fedivers
  4. Un terminal Bloomberg pour Mastodon
  5. Produire votre propre Mastodon UX
  6. Listes et individus sur Mastodon
  7. Le nombre d’individus dans mon flux Mastodon a également tweeté aujourd’hui ?
  8. URL Mastodon qualifiées pour les instances
  9. Graphiques de relations Mastodon
  10. Traitement avec Listes de mastodontes
  11. Images considérées comme préjudiciables (dans certains cas)
  12. Cartographier le monde entier
  13. Procédures, API et conventions
  14. Actualités dans le fedivers
  15. Cartographier les personnes et les balises dans Mastodon
  16. Illustrer de petites quantités du serveur Mastodon
  17. Chronologies Mastodon pour les groupes
  18. Le plugin Mastodon est maintenant facilement disponible sur le Steampipe Hub
  19. Listes de mastodontes en mouvement
  20. Quand le canard en caoutchouc répond

Vérifiez ensuite ceci :

  • Le meilleur logiciel open source de 2022
  • Les développeurs ne veulent pas faire d’opérations
  • 7 raisons pour lesquelles Java est toujours génial
  • Pourquoi Wasm est l’avenir du cloud computing
  • Pourquoi les devis d’ingénierie d’applications logicielles sont inutiles
  • Intégration continue et envoi continu discuté

.

Toute l’actualité en temps réel, est sur L’Entrepreneur

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici

xnxx sex download russianporntrends.com hardxxxpics saboten campus freehentai4u.com read manga porn rakhi sex photo ganstagirls.com nani sex video xxx indian girl video download elporno.mobi tamilauntycom bf hd video bf hd video porn555.me anyporn hd tamil beach sex erolenta.com xxx sex boy to boy bustyboobs pakistanixxxx.com nude sexy videos desi sex xvideos.com tubaka.mobi justdesi in free naked dance vegasmpegs.mobi eva grover desi ass lick eroanal.net 69 xvideo 4k xnxx thefuckingtube.com xxii roman numerals translation tamil nayanthara sex sexozavr.com indian porn videos tumblr كلبات سكس porn-arab.net نيك ف الكس y3df comics popsexy.net akhil wife hentai ahri wowhentai.net the sarashina bloodline