Réflexions sur l'utilisation de Devin après un mois d'exécution de plus de 20 tâches avec Devin

Nouvelles de l'IAMise à jour il y a 7 mois Cercle de partage de l'IA
11.9K 00

En mars 2024, une nouvelle entreprise d'IA est apparue sous les feux de la rampe avec un soutien impressionnant : une série A de 21 millions de dollars menée par Founders Fund et soutenue par des leaders du secteur tels que les frères Collison, Elad Gil et d'autres grands noms de la technologie. L'équipe à l'origine de ce projet ? Des médaillés d'or des Olympiades internationales d'informatique, le genre de personnes capables de résoudre des problèmes de programmation que la plupart d'entre nous n'arrivent même pas à comprendre. Leur produit, Devin, promet d'être un ingénieur logiciel entièrement autonome qui peut discuter avec vous comme un collègue humain, capable de tout faire, de l'apprentissage de nouvelles technologies et du débogage de bases de code matures au déploiement d'applications complètes et même à l'entraînement de modèles d'intelligence artificielle.

Les premières démonstrations étaient convaincantes. Elle montre comment Devin a réalisé de manière indépendante une tâche de prime sur Upwork, en installant et en exécutant un projet PyTorch sans intervention humaine. L'entreprise affirme que Devin a été en mesure de résoudre de bout en bout le problème GitHub réel de 13,86% dans le test de référence SWE-bench, soit environ trois fois mieux que le système précédent. Il n'était initialement accessible qu'à un petit groupe d'utilisateurs, ce qui a donné lieu à des tweets passionnants sur la façon dont il allait révolutionner le développement de logiciels.

agir en tant que Réponse.AI Faisant partie d'une équipe qui teste souvent des outils de développement de l'IA, nous avons senti que Devin avait quelque chose de différent. S'il tient la moitié de ses promesses, il pourrait changer notre façon de travailler. Mais malgré tout l'enthousiasme qui régnait sur Twitter, nous n'avons pas trouvé beaucoup de témoignages détaillés de personnes l'ayant réellement utilisé. Nous avons donc décidé de la tester en profondeur, en l'appliquant à diverses tâches réelles. Voici notre histoire - une tentative approfondie et réelle de travailler avec l'un des produits d'IA les plus médiatisés de 2024.

 

Qu'est-ce que Devin ?

Ce qui rend Devin unique, c'est son infrastructure. Contrairement aux assistants d'IA classiques, Devin gère et lance son propre environnement informatique via Slack. Lorsque vous parlez à Devin, vous parlez à une IA qui a accès à un environnement de calcul complet - avec un navigateur web, un éditeur de code et un shell - qui peut installer des dépendances, lire de la documentation et même prévisualiser les applications web qu'il crée. Voici une capture d'écran montrant comment lancer Devin pour effectuer une tâche :

使用Devin一个月执行20多个任务后,关于使用Devin的思考

Une façon de lancer Devin sur une tâche via Slack

 

Cette expérience est conçue pour vous donner l'impression de discuter avec un collègue. Vous décrivez ce que vous voulez et Devin se met au travail. Par l'intermédiaire de Slack, vous pouvez le voir réfléchir à des problèmes, demander des informations d'identification si nécessaire et partager des liens vers des travaux achevés. En coulisses, il fonctionne dans un conteneur Docker, ce qui lui donne l'isolation dont il a besoin pour expérimenter en toute sécurité tout en protégeant votre système.Devin fournit également une interface web, qui vous permet également d'accéder à son environnement et de le regarder travailler en temps réel à l'aide d'un IDE, d'un navigateur web, et plus encore. Vous trouverez ci-dessous une capture d'écran de l'interface web :

使用Devin一个月执行20多个任务后,关于使用Devin的思考

 

Premiers succès

Notre première tâche était simple mais réelle : déplacer les données de l'application Notion La base de données a été extraite dans Google Sheets. Devin a résolu ce problème avec une compétence étonnante. Il a navigué jusqu'à la documentation de l'API Notion, a compris ce dont il avait besoin et m'a guidé tout au long du processus de configuration des informations d'identification nécessaires dans la Google Cloud Console. Au lieu de simplement lancer des commandes API, il m'a guidé à travers chaque menu et chaque clic de bouton - ce qui m'a permis de gagner du temps qui aurait normalement nécessité une recherche fastidieuse dans la documentation. L'ensemble du processus a pris environ une heure (mais seulement quelques minutes d'interaction humaine). À la fin, Devin a partagé un lien vers une feuille Google parfaitement formatée contenant nos données.

Le code généré est un peu long, mais il fonctionne. Cela ressemble à un aperçu de l'avenir - une IA capable de gérer les tâches de "code collé" qui prennent tant de temps à un développeur. Johno a connu un succès similaire à celui de Devin en créant un traqueur de planètes pour démentir les affirmations sur les emplacements historiques de Jupiter et de Saturne. Ce qui est particulièrement impressionnant, c'est qu'il l'a fait entièrement à partir de son téléphone portable, Devin se chargeant de toutes les tâches lourdes de mise en place de l'environnement et d'écriture du code.

 

Élargir nos tests

Forts de nos premiers succès, nous avons exploité les capacités asynchrones de Devin. Nous avons imaginé que Devin rédigerait de la documentation pendant les réunions, ou qu'il déboguerait des problèmes pendant que nous nous concentrerions sur le travail de conception. Mais au fur et à mesure que nous développions nos tests, des fissures sont apparues. Des tâches apparemment simples prenaient souvent des jours au lieu d'heures, et Devin se heurtait à des impasses techniques ou produisait des solutions trop complexes pour être utilisées.

Ce qui est encore plus inquiétant, c'est la tendance de Devin à vouloir accomplir des tâches qui sont pratiquement impossibles. Lorsqu'on lui a demandé de déployer plusieurs applications sur un seul déploiement Railway (une fonctionnalité non prise en charge par Railway), au lieu de reconnaître cette limitation, Devin a passé plus d'une journée à essayer diverses approches et à truquer des fonctionnalités qui n'existaient pas.

Ce qui est le plus frustrant, ce ne sont pas les échecs eux-mêmes - tous les outils ont des limites - mais le temps que nous passons à essayer de sauver ces tentatives.

 

Comprendre ce qui n'a pas fonctionné

Au cours de notre voyage, nous avons été déconcertés. Nous avons constaté que Devin était capable d'intégrer des API et de créer des applications fonctionnelles, mais qu'il avait du mal à accomplir des tâches apparemment plus simples. S'agissait-il d'un manque de chance ? L'utilisions-nous mal ?

Pendant un mois, nous avons systématiquement documenté nos tentatives dans les catégories suivantes :

  1. Créer un nouveau projet à partir de zéro
  2. Mise en œuvre du mandat de recherche
  3. Analyser et modifier les projets existants

Les résultats ont été décourageants. Sur 20 tâches, nous avons enregistré 14 échecs, 3 réussites (dont nos 2 premières) et 3 résultats non concluants. Plus révélateur encore, nous n'avons pu discerner aucun schéma permettant de prédire quelles tâches allaient réussir. Des tâches similaires à nos premières réussites ont échoué de manière inattendue.Nous fournissons des informations plus détaillées sur ces tâches dans l'annexe ci-dessous. Vous trouverez ci-dessous un résumé de notre expérience dans chaque catégorie au cours du processus :

1. créer un nouveau projet à partir de zéro

Cette catégorie devrait être le point fort de Devin. Après tout, la vidéo de démonstration de la société montre comment elle accomplit de manière autonome des tâches de prime sur Upwork, et nos propres succès précoces suggèrent qu'elle peut prendre en charge de tout nouveaux développements. Mais la réalité s'est avérée plus compliquée.

Prenons l'exemple de notre tentative d'intégration avec une plateforme d'observabilité de type Large Language Model (LLM) appelée Braintrust. Au lieu de fournir une solution claire et ciblée, Devin a généré ce qui ne peut être décrit que comme une soupe de code - de multiples couches d'abstraction qui compliquaient inutilement des opérations simples. Nous avons finalement abandonné les tentatives de Devin et utilisé le logiciel Curseur Construire l'intégration étape par étape s'est avéré plus efficace. De même, lorsqu'on lui a demandé de créer une intégration entre notre preneur de notes AI et Spiral.computer, Devin a produit ce qu'un membre de l'équipe a décrit comme "un code spaghetti qui était plus difficile à lire que le code que j'avais écrit à partir de zéro". Bien qu'il ait eu accès à la documentation des deux systèmes, Devin a semblé compliquer à l'excès tous les aspects de l'intégration.

Le plus révélateur est peut-être notre tentative d'exploration du web. Nous avons demandé à Devin de suivre les liens Google Scholar et de parcourir les 25 articles les plus récents des auteurs - une tâche simple pour un outil comme Playwright. Étant donné la capacité de Devin à naviguer sur le web et à écrire du code, cette tâche aurait dû être particulièrement facile à réaliser. Au lieu de cela, il s'est retrouvé coincé dans une boucle sans fin à essayer d'analyser le HTML et n'a pas pu sortir de son propre chemin.

2. mandat de recherche

Si Devin éprouve des difficultés dans des tâches de codage spécifiques, est-il susceptible d'obtenir de meilleurs résultats dans le cadre d'un projet de recherche ? Les résultats sont pour le moins mitigés. Bien qu'il puisse gérer les recherches de documents de base (comme nous l'avons vu dans les premières intégrations Notion/Google Sheets), les tâches de recherche plus complexes se sont avérées difficiles.

Lorsque nous avons demandé à Devin d'examiner les résumés de transcription avec des horodatages précis (un défi technique spécifique auquel nous étions confrontés), il s'est contenté de répéter des informations techniques superficiellement pertinentes au lieu d'aborder le problème de fond. Au lieu d'explorer les solutions potentielles ou d'identifier les principaux défis techniques, il a fourni des exemples de code génériques qui n'abordaient pas le problème sous-jacent. Même lorsque Devin semble progresser, les résultats ne sont généralement pas ce qu'ils semblent être. Par exemple, lorsqu'on lui a demandé de créer un thème DaisyUI minimal, il a généré une solution qui semblait fonctionner. Cependant, en y regardant de plus près, nous avons constaté que le thème ne faisait rien en réalité - les couleurs que nous voyions provenaient du thème par défaut, et non de nos personnalisations.

3. analyser et modifier le code existant

Les échecs les plus inquiétants de Devin se produisent peut-être lorsqu'il travaille avec des bases de code existantes. Ces tâches nécessitent de comprendre le contexte et de maintenir la cohérence avec les modèles établis - des compétences qui devraient être au cœur des capacités d'un ingénieur en logiciel d'IA.

Nos tentatives pour amener Devin à gérer des projets nbdev ont été particulièrement éclairantes. Lorsqu'on lui a demandé de migrer un projet Python vers nbdev, Devin a été incapable de comprendre la configuration de base de nbdev, même lorsque nous lui avons fourni une documentation complète. La façon dont il gérait les carnets de notes le laissait encore plus perplexe : au lieu de les éditer directement, il créait des scripts Python pour les modifier, ce qui ajoutait une complexité inutile à une tâche simple. Bien qu'il fournisse parfois des commentaires ou des idées utiles, le code qu'il génère est toujours problématique.

L'évaluation de la sécurité a révélé des problèmes similaires. Lorsque nous avons demandé à Devin d'évaluer un dépôt GitHub (moins de 700 lignes de code) à la recherche de vulnérabilités de sécurité, il est allé trop loin, signalant de nombreux faux positifs et dissimulant des problèmes qui n'existaient pas. Ce type d'analyse est probablement mieux géré par un appel ciblé au Large Language Model (LLM) plutôt que par l'approche plus sophistiquée de Devin.

Cette tendance s'est poursuivie lors des tâches de débogage. Lorsqu'il a cherché à savoir pourquoi la transmission de clés SSH ne fonctionnait pas dans le script d'installation, Devin s'est concentré sur le script lui-même et n'a jamais envisagé que le problème puisse se situer ailleurs. Cet effet "peek-a-boo" ne nous a pas aidés à découvrir la cause première du problème. De même, lorsqu'on lui a demandé d'ajouter un contrôle de conflit entre les entrées de l'utilisateur et les valeurs de la base de données, un membre de l'équipe a passé des heures à étudier les tentatives de Devin avant d'abandonner et d'écrire lui-même la fonctionnalité en 90 minutes environ.

 

Réflexions en équipe

Après un mois de tests intensifs, notre équipe s'est réunie pour faire le point sur notre expérience. Ces citations expriment au mieux nos sentiments :

Les tâches qu'il peut accomplir sont si petites et si bien définies qu'il vaut mieux que je les accomplisse plus rapidement à ma façon. Je pense qu'il est susceptible d'échouer dans des tâches plus importantes, permettant de gagner du temps, que je pourrais voir. Par conséquent, il n'y a pas de cas d'utilisation réels pour lesquels je voudrais vraiment l'utiliser.- Johno Whitaker

Au début, j'étais très enthousiaste parce que c'était si proche et que j'avais l'impression de pouvoir modifier certaines choses. Ensuite, je me suis sentie peu à peu frustrée de devoir modifier de plus en plus de choses et j'ai fini par me rendre compte qu'il valait mieux faire les choses progressivement, en partant de zéro.- Isaac Flath

Devin a eu du mal à utiliser les outils internes d'AnswerAI, ce qui, entre autres, a rendu son utilisation difficile. Malgré la documentation complète et les exemples que nous fournissons à Devin, ce problème persiste. J'ai constaté que ce n'est pas un problème avec des outils comme Cursor, où il y a plus de possibilités d'orienter les choses dans la bonne direction d'une manière plus incrémentale.- Hamel Husain

Par rapport à Devin, nous avons constaté que les processus supplémentaires pilotés par les développeurs (comme Cursor) permettaient d'éviter la plupart des problèmes rencontrés dans Devin.

rendre un verdict

La collaboration avec Devin illustre la vision du développement autonome de l'IA. L'expérience de l'utilisateur est exceptionnelle - discuter via Slack, le regarder travailler de manière asynchrone, le voir mettre en place des environnements et gérer les dépendances. Quand ça marche, c'est impressionnant.

Mais c'est là que réside le problème : cela fonctionne rarement. Sur les 20 tâches que nous avons tentées, nous avons constaté 14 échecs, 3 résultats incertains et seulement 3 réussites. Ce qui est encore plus inquiétant, c'est notre incapacité à prédire quelles tâches seraient couronnées de succès. Même les tâches similaires à nos premiers succès ont échoué de manière complexe et fastidieuse. Ce qui semblait être une autonomie prometteuse est devenu un fardeau - Devin passait des jours à rechercher des solutions impossibles plutôt qu'à identifier les obstacles sous-jacents.

Cela reflète une tendance que nous avons observée à maintes reprises dans les outils d'IA. L'engouement des médias sociaux et la valorisation des entreprises n'ont pas grand-chose à voir avec l'utilité réelle. Les signaux les plus fiables que nous ayons trouvés proviennent d'histoires détaillées d'utilisateurs qui fournissent des produits et des services. Pour l'instant, nous nous en tenons à des outils qui nous permettent de diriger le processus de développement tout en fournissant une assistance en matière d'IA.

 

Annexe : Tentative de mission de Devin

Le tableau suivant énumère les projets que nous avons confiés à Devin, classés selon les thèmes suivants : (1) création de nouveaux projets, (2) recherche, (3) analyse de bases de code existantes et (4) modification de bases de code.

1. création de nouveaux projets

Nom du projetétat des lieuxdescriptionsréévaluation
traqueur planétairesuccèsJ'aimerais démentir certaines affirmations concernant les positions historiques de Jupiter et de Saturne.Devin a fait un excellent travail. J'ai parlé à Devin via Slack sur mon téléphone et c'était fait.
Migration des données de Notion vers Google SheetssuccèsJ'ai demandé à Devin d'extraire par programmation les informations du document Notion dans une feuille Google. C'était le premier projet que j'exécutais avec Devin, et il était bien fait ; Devin a lu lui-même la documentation de Notion et de l'API de Google ; Devin m'a également guidé vers la console de Google Cloud et m'a fourni des instructions sur tous les différents menus sur lesquels il fallait cliquer, ce qui m'aurait pris pas mal de temps ! Au final, j'ai obtenu un script Python raisonnable qui a exécuté la tâche.C'était ma première interaction avec Devin et il s'est comporté exactement comme je le souhaitais, ce qui était une nouvelle expérience pour moi. À ce stade, je suis très enthousiaste à propos de Devin.
Déploiement de plusieurs applications sur le chemin de fernon concluantJ'ai demandé à Devin de déployer plusieurs applications dans un seul déploiement Railway afin que les différentes applications puissent partager la même base de données locale pour les tests.La tâche s'est avérée mal définie, car il était pratiquement impossible de la réaliser si j'avais bien compris. Néanmoins, Devin est allé de l'avant et a essayé de le faire, et a falsifié une partie du contenu sur la façon d'interagir avec Railway.
Générer des données synthétiques et les télécharger vers Braintrustéchouer (par exemple, expériences)J'ai demandé à Devin de créer des données synthétiques pour une plateforme d'observabilité de grands modèles de langage (LLM) appelée Braintrust que je voulais tester.Devin créait un code trop complexe, difficile à comprendre et qui s'enlisait dans la correction des bogues. Nous avons fini par itérer cette étape en utilisant Cursor.
Créer une intégration entre deux applicationséchouer (par exemple, expériences)J'ai demandé à Devin de créer une intégration entre ma prise de notes AI, Circleback, et Spiral.computer avec des pointeurs vers chaque document.J'ai obtenu un code spaghetti vraiment mauvais qui était plus difficile à lire que le code que j'essayais d'écrire à partir de zéro. J'ai donc décidé de ne plus passer de temps à utiliser Devin pour cette tâche particulière.
Recherche d'articles sur le web en suivant les liens Google Scholaréchouer (par exemple, expériences)J'ai demandé à Devin d'utiliser playwright pour parcourir de manière programmatique les 25 derniers articles d'auteurs sur Google Scholar et de sauter ce document particulier s'il tombe sur un paywall.Devin est tombé dans un trou de lapin en essayant d'analyser HTML sans pouvoir en sortir. Il se bloque et devient inactif.
Création d'un exemple d'application minimale de téléchargement par lots HTMXéchouer (par exemple, expériences)J'ai demandé à Devin de lire l'exemple d'édition en bloc sur la page de documentation HTMX et de l'utiliser, ainsi que le code du pseudo-serveur, pour créer une version FastHTML minimale de l'exemple pour la galerie FastHTML.Devin utilise des objets qui n'existent pas dans l'objet de la requête et ajoute beaucoup de choses inutiles comme des toasts (qui ne fonctionnent pas non plus) et des styles css en ligne.
Créer un thème DaisyUI correspondant au thème FrankenUI.échouer (par exemple, expériences)J'ai demandé à Devin de créer les thèmes DaisyUI et highlight.js afin qu'ils correspondent au thème frankenui et qu'ils puissent être utilisés de manière transparente dans la même application !Devin a fait correspondre les thèmes préexistants de daisyUI aux thèmes de frankenui, mais dans de nombreux cas, ils ne correspondaient pas bien. Il a également fait beaucoup de changements de code que je ne pouvais pas comprendre et j'ai fini par ne pas utiliser le code parce que j'étais trop confus pour savoir quoi en faire.

2. études de mise en œuvre

Nom du projetétat des lieuxdescriptionsréévaluation
Recherche sur la fabrication d'un robot DiscordsuccèsJ'ai demandé à Devin d'envisager la création d'un robot Discord utilisant Python qui résumerait les messages quotidiens et enverrait des courriels. Je lui ai également dit d'utiliser Claudette pour ce faire dans la mesure du possible. Enfin, je lui ai demandé de consigner ses résultats dans un carnet avec de petits extraits de code qu'il pourrait utiliser pour ses tests.Devin génère des notes de recherche sous forme de fichiers markdown en tant qu'étape intermédiaire dans la création d'un carnet de notes, ce que je ne lui ai pas demandé de faire. Cependant, il est utile de voir un plan étape par étape sur la façon d'y parvenir. Le code qu'il fournit dans le carnet n'est pas 100% correct, mais en tant que pseudo-code, il m'aide à comprendre comment coller tout cela ensemble. Étant donné qu'il s'agit plutôt d'un projet de recherche et que je veux juste connaître l'idée générale, je considère qu'il s'agit d'une réussite.
Étude des résumés de transcription avec horodatage préciséchouer (par exemple, expériences)L'un des problèmes auxquels je suis confronté lorsque je résume des transcriptions est que je veux avoir l'horodatage exact associé aux notes afin de pouvoir l'utiliser pour des résumés de chapitres sur YouTube ou autres. Plus précisément, il n'est pas difficile d'obtenir des horodatages précis à partir des transcriptions, mais il est difficile d'établir une corrélation entre les horodatages et les résumés, car les horodatages sont souvent erronés. Il s'agit donc en quelque sorte d'une tâche de recherche en ingénierie de l'IA.Devin répète ce qui est pertinent pour mon problème, mais il ne fait pas un bon travail de recherche ou n'essaie pas de résoudre le problème que j'essaie de résoudre et me donne du code et des exemples inutiles.
Création d'un thème DaisyUI minimal à titre d'exempleéchouer (par exemple, expériences)J'ai demandé à Devin de créer un thème DaisyUI minimal en guise d'exemple. Mon but était de partir d'un point de départ, car demander que cela soit fait de manière plus complète n'a pas abouti.Devin a ignoré les demandes visant à en faire une application FastHTML, et il a fallu des allers-retours pour l'inciter à s'engager dans cette voie. En fin de compte, il a créé une application qui semblait fonctionner avec différents types de boutons. Bien que le lien qu'il m'a donné ait l'air bien, une fois que j'ai essayé de modifier le thème, il était clair que le thème ne faisait rien du tout. Les autres couleurs de l'application proviennent du thème par défaut. Ce n'est pas un point de départ utile.

3. analyse du code existant

Nom du projetétat des lieuxdescriptionsréévaluation
Effectuer un examen de sécurité de la base de codenon concluantPour cette tâche, j'ai indiqué à Devin un dépôt GitHub et lui ai demandé d'évaluer les vulnérabilités de sécurité. Le dépôt contient moins de 700 lignes de code. Je demande à Devin de documenter ses commentaires dans un fichier markdown et de fournir un exemple de code si nécessaire.Devin a identifié quelques failles de sécurité, mais il a fait preuve d'un excès de zèle et a dissimulé des problèmes qui n'existaient pas. Ce n'est peut-être pas la tâche idéale pour Devin, car cela fonctionne tout aussi bien avec un simple appel à mon grand modèle de langage (LLM).
Demandes d'extraction pour réviser les articles de blog et suggérer des améliorationséchouer (par exemple, expériences)J'ai demandé à Devin de revoir un article de blog avec une demande de modification (pull request) pour suggérer des changements. En fin de compte, Devin a échoué parce qu'il n'arrivait pas à comprendre comment Quarto, le générateur de site statique que j'utilisais, fonctionnait.Je pense que cette tâche serait couronnée de succès avec un outil comme Cursor. Il semble que Devin n'ait pas très bien appris de la structure du projet et de la documentation existante, ce qui fait qu'il a raté des choses comme le préambule et d'autres conventions nécessaires à l'édition correcte d'un article de blog.
Examiner la demande et identifier les domaines susceptibles d'être amélioréséchouer (par exemple, expériences)J'ai demandé à Devin de jeter un coup d'œil à l'application de gestion du temps que j'ai mentionnée plus tôt et je lui ai confié une tâche ouverte pour lui demander de suggérer des améliorations.Les conseils qu'il donne n'ont aucun sens.
Déboguer pourquoi la transmission de clés SSH ne fonctionne pas dans les scripts d'installationnon concluantJ'ai demandé à Devin de trouver pourquoi la redirection des clés SSH ne fonctionne pas lorsque je la configure à l'aide d'un script sur le serveur.En fin de compte, le problème n'avait rien à voir avec le script, que je pensais être le problème, mais Devin n'a jamais fait allusion ou indiqué que le problème pouvait être ailleurs. Cela ne m'a pas aidé, car cela ne m'a pas permis de trouver la cause première du problème.

4. modification des projets existants

Nom du projetétat des lieuxdescriptionsréévaluation
Modifier le projet nbdevéchouer (par exemple, expériences)J'ai une application simple de suivi du temps construite avec FastHTML et nbdev que j'aimerais intégrer avec Apple Shortcuts via un routage API.Malgré ces progrès impressionnants, Devin n'a pas réussi à fonctionner dans cet environnement. Une bizarrerie que j'ai remarquée est que Devin a créé des scripts Python pour éditer les carnets, plutôt que d'essayer d'éditer les carnets eux-mêmes. Cependant, Devin m'a donné des commentaires et des idées utiles que je n'avais pas pris en compte. Cependant, le code qu'il a tenté d'écrire n'avait pas de sens. En fin de compte, j'ai utilisé le modèle de quelqu'un d'autre au lieu des suggestions de Devin.
Migration des projets Python vers nbdevéchouer (par exemple, expériences)J'ai demandé à Devin de migrer un projet vers nbdev [détails omis par souci de concision].Il s'est enlisé et n'a pas réussi à comprendre la configuration de base de nbdev. Il semble qu'il n'ait pas bien lu la documentation de nbdev.
Intégration des Style Packs dans FastHTMLéchouer (par exemple, expériences)J'ai demandé à Devin d'intégrer MonsterUI dans une de mes applications.Devin ne savait pas comment gérer le dépôt nbdev.
Ajout d'une fonctionnalité permettant de vérifier les conflits entre les données saisies par l'utilisateur et la base de donnéeséchouer (par exemple, expériences)J'ai demandé à Devin d'ajouter à l'application une fonction permettant de comparer les valeurs saisies par l'utilisateur avec les valeurs d'une base de données précédemment exécutée et de fournir une interface utilisateur en cas de non-concordance.J'ai passé des heures à chercher comment le faire fonctionner correctement avant d'abandonner. J'ai écrit la fonction moi-même en 90 minutes environ.
Générer des fichiers de contexte LLM (Large Language Models) en utilisant le contenu de chaque exemple de galerie fasthtml.échouer (par exemple, expériences)J'ai demandé à Devin de créer des fichiers texte de Large Language Models (LLMs) pour la galerie fasthtml.J'ai été heureux de constater qu'il crée un fichier markdown distinct pour chaque exemple et qu'il tente ensuite de les résumer dans le fichier contextuel de LLMs. Je n'avais pas pensé à faire cela, et tout semblait être là au début. Lorsque je l'ai téléchargé et que j'ai commencé à creuser, j'ai commencé à remarquer quelque chose que je n'aimais pas : les LLM n'étaient pas formatés correctement. Même lorsque je lui ai donné l'information sur l'utilisation des balises XML pour séparer les exemples, il ne les a pas utilisées. Il a ajouté et corrigé une version spécifique du paquetage markdown en tant que dépendance et a utilisé cette version au lieu d'utiliser le paquetage markdown2 qui était déjà utilisé et déjà une dépendance. Il fait un tas de choses avec pytest et ajoute une dépendance, même si le projet n'utilise pas pytest.
© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...