MatplotLLM est une couche de langage naturel sur Matplotlib pour visualiser les données. L'objectif principal est d'accélérer la création d'une certaine façon de visualiser les points de données sans se mêler des entrailles d'un outil comme matplotlib. Pour l'instant, il s'agit d'un système à utiliser depuis le système Emacs/Org. La motivation vient de quelque chose que j'ai écrit dans un blog sur la coprogrammation de l'IA ici.
Vous pourriez également être intéressé à lire mon article de blog sur MatplotLLM.
Vous devez fournir deux descriptions, toutes deux en langage naturel. Celui qui décrit la source de données. Deuxièmement, cela décrit comment tracer. La première est une description textuelle statique, que vous pouvez bien sûr modifier selon vos besoins entre les appels.
Deuxièmement, vous pouvez fournir une description itérative comme dans une interface de conversation. Vous pouvez commencer par une première description de passe, puis continuer à ajouter d'autres spécifications en guise de commentaires.
Vous pouvez les utiliser dans un bloc source org-babel avec le nom de langue matplotllm
comme indiqué dans l'exemple ci-dessous. Il existe un séparateur de mode d'organisation -----
utilisé pour séparer la description des données et la description de l'intrigue. Dans la conception actuelle, cette distinction peut sembler inutile, mais elle pourrait être utile plus tard. Dans la description de l'intrigue, vous ajoutez des lignes vides pour donner un retour itératif. Chaque redessin montre le code actuel au LLM, fournit des commentaires et demande un nouveau code.
Vous devrez d'abord définir la valeur de matplotllm-openai-key
pour l'utiliser. Nous appelons actuellement GPT4
comme LLM de support.
L'exemple ci-dessous tente de reproduire (je ne lui ai pas encore rendu justice) l'intrigue de mon article de blog sur Learning Colemak-DH.
Le fichier de données à lire s'appelle `log.txt`. Voici à quoi cela ressemble :
+ [20/07/2023 jeu] 97 WPM, acc 98%
Suivi quotidien arrêté
+ [2023-05-16 mar] 66 WPM, acc 91% | 66 WPM, taux 87 %
+ [2023-05-15 Lun] 68 WPM, acc 89% | 65 WPM, acc 90% | 71 WPM, acc 93% | Colemak-DH par défaut.
+ [2023-05-14 Dim] 65 WPM, acc 92% | 62 WPM, acc 87% | 65 WPM, taux 91% | 70 WPM, acc 90 %
Chaque ligne correspond à une journée et contient des entrées WPM et de précision provenant de plusieurs essais au cours d'une journée. Certaines lignes peuvent contenir un texte mal structuré que vous pouvez ignorer.
-----
Tracez un nuage de points minimal qui montre le WPM tracé en fonction des dates. Utilisez les valeurs de précision comme couleur du nuage de points, plus foncé (bleu violet) est plus précis.
Effacez l'axe et affichez uniquement des lignes de quadrillage pâles, et affichez les dates où les graduations contiennent des mois sans trop les encombrer.
Annotez le premier et le dernier point avec la valeur WPM réelle.
Quelques notes de développement :
Système de visualisation de données assisté par LLM
Copyright (c) 2023 Abhinav Tushar et contributeurs
Ce programme est un logiciel libre : vous pouvez le redistribuer et/ou le modifier selon les termes de la licence publique générale GNU telle que publiée par la Free Software Foundation, soit la version 3 de la licence, soit (à votre choix) toute version ultérieure.
Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE ; sans même la garantie implicite de QUALITÉ MARCHANDE ou d’ADAPTATION À UN USAGE PARTICULIER. Voir la licence publique générale GNU pour plus de détails.
Vous devriez avoir reçu une copie de la licence publique générale GNU avec ce programme. Sinon, consultez https://www.gnu.org/licenses/.