4 points par xguru 2024-08-13 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Projet visant à améliorer le développement des logiciels open source en créant des assistants automatisés, des « agents », pour la maintenance de l’open source
    • Cela pourrait réduire la quantité de tâches répétitives liées à la maintenance de l’open source
  • Les capacités des grands modèles de langage (LLM) à analyser le sens du langage naturel et à convertir des instructions en langage naturel vers et depuis du code ouvrent de nouvelles possibilités pour que des agents interagissent plus fluidement avec les humains
  • Les LLM ne seront qu’une partie de l’agent, et l’essentiel de son fonctionnement consistera à exécuter du code standard et déterministe
  • Contrairement à l’usage des LLM centré sur le développement, Oscar ne cherche pas à compléter ou remplacer le processus d’écriture de code
  • L’idée est plutôt de se concentrer sur les parties peu intéressantes, comme le traitement des issues entrantes ou la mise en correspondance de questions avec la documentation existante

Objectifs du projet

  • Réduire l’effort de maintenance nécessaire pour résoudre les issues [la résolution ne signifie pas toujours un correctif]
  • Réduire l’effort de maintenance nécessaire pour traiter les changelists (CL) ou les pull requests (PR) [la résolution ne signifie pas toujours soumission/fusion]
  • Réduire l’effort de maintenance nécessaire pour répondre aux questions sur les forums
  • Aider davantage de personnes à devenir des mainteneurs productifs

Approche

  • Les tâches répétitives de la maintenance open source ne se limitent pas aux projets Go ; l’objectif est donc de construire une architecture que tous les projets logiciels pourront réutiliser et étendre
  • À ce jour, trois fonctions ont été identifiées comme des éléments importants d’Oscar :
    1. indexer et exposer le contexte pertinent du projet pendant les interactions avec les contributeurs
    2. contrôler des outils déterministes à l’aide du langage naturel
    3. améliorer en temps réel les soumissions au moment ou juste après leur envoi grâce à l’analyse des rapports d’issue et des CL/PR, avec étiquetage et routage appropriés

Indexation et exposition du contexte pertinent du projet

  • Les LLM peuvent analyser des documents en générant des embeddings, des vecteurs unitaires flottants de grande dimension dont la propriété est de représenter les documents au sens similaire par des vecteurs pointant dans des directions similaires
  • Combinés à une base de données vectorielle pour rechercher des vecteurs similaires au vecteur d’entrée, les embeddings de LLM offrent un moyen très efficace d’indexer tout le contexte d’un projet open source
  • Un agent prototype implémente cette fonctionnalité et répond aux nouvelles issues du dépôt Go avec une liste de jusqu’à 10 liens à forte pertinence

Utiliser le langage naturel pour contrôler des outils déterministes

  • À mesure qu’un projet open source grandit, le nombre d’outils utiles augmente, et il peut devenir difficile de tous les suivre et de se rappeler comment utiliser chacun d’eux
  • Les LLM sont très efficaces pour convertir une intention exprimée en langage naturel vers une forme exécutable, comme du code ou des appels d’outils, et inversement
  • Des expérimentations ont été menées avec Gemini pour sélectionner et appeler les outils disponibles afin de satisfaire des requêtes en langage naturel, mais rien ne fonctionne encore réellement en pratique

Analyse des rapports d’issue et des CL/PR

  • Publier sur des issues connexes constitue une forme limitée d’analyse, mais il est prévu d’ajouter d’autres types d’analyse sémantique, comme identifier des issues de performance et ajouter le label « performance »
  • Il est également prévu d’explorer s’il est possible d’analyser suffisamment bien un rapport pour déterminer s’il manque des informations afin de le rendre utile
  • Toutes ces analyses et les interactions qui en découlent fonctionnent bien mieux lorsqu’elles ont lieu juste après la soumission du rapport, pendant que l’auteur du signalement est encore disponible et impliqué

Prototype

  • Le premier prototype destiné à explorer Oscar s’appelle Gaby (Go AI bot) ; il fonctionne sur l’issue tracker de Go et publie avec @gabyhelp
  • À ce jour, Gaby indexe le contenu des issues Go sur GitHub, indexe la documentation Go sur go.dev et répond aux nouvelles issues avec des liens pertinents
  • La structure de Gaby facilite son exécution avec n’importe quel LLM, couche de stockage et base de données vectorielle, sur tout type de service d’hébergement

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.