- FrogTeam.ai
Mise à jour v0.1.6 : 13/10/2024
- Meilleure gestion des événements pour enregistrer les invites et les configurations
- >Invite de wrapper pour dall-e-3
- Invite supplémentaire de l'architecte principal
Mise à jour v0.1.5 : 10-01-2024
- Ajoutez un nouveau membre de l'équipe et faites-en un graphiste
- Choisissez le modèle dall-e-3
- Il s'agit d'une nouvelle fonctionnalité, il n'y a ni validation ni instruction
Exemple rapide d'utilisation d'un graphiste J'ai nommé ma graphiste Jenny. Lorsque j'ai décrit ce que je voulais, j'ai également inclus ce qui suit pour expliquer les limites de Jenny et comment je voulais que l'architecte principal gère ses missions. Assurez-vous de demander à Jenny de créer des graphiques. Les instructions de Jenny doivent être très précises. Vous ne pouvez lui demander de créer qu'un seul fichier graphique à la fois et vous ne pouvez décrire que ce que vous voulez qu'elle fasse dans l'invite. Une invite adressée à Jenny doit être courte, par exemple : "créez-moi un petit fichier icône qui ressemble à une grenouille". Jenny renvoie simplement le chemin d'accès au fichier qu'elle a créé. Vous devez contourner ses limites. En tant qu'architecte principal, planifiez d'abord ce dont vous avez besoin de Jenny, puis dites aux autres quoi faire avec ce que vous avez demandé à Jenny de créer !
Mise à jour v0.1.2 : 09-08-2024
- NOUVEL OUTIL : Recherche de code - Si vous souhaitez apporter une modification pouvant affecter plusieurs fichiers, il existe un nouvel outil que le LLM peut utiliser pour rechercher le code de la solution.
- Meilleure gestion des erreurs d’appel d’outil
Mise à jour v0.1.1 : 09-08-2024
- Expériences mlFLow pour le suivi des invites
- Configuration mlFLow dans .vscode/frogteam/config.json
- déplacé les fichiers frogteam vers .vscode/frogteam/
- Correction du fichier project.jsonb
- A donné l'état de l'onglet de réponse
Mise à jour v0.1.0 : 09-07-2024
- mlFLow expérimente la configuration anticipée mlFlow ne fonctionne qu'à partir de localhost : 5001
- Correction des événements de message de publication sur le Web
- membres mis à jour et éléments de l'arborescence des invites
Mises à jour v0.0.19 : 09-01-2024
Cette version est destinée aux corrections de bugs. Boutons Supprimer et Cloner corrigés. Catégorie d'invite manquante corrigée.
Remarque également : les invites peuvent recevoir un caractère générique (*) pour leur modèle.
Mises à jour v0.0.18 : 30/08/2024 Commencez à consulter le journal des modifications pour plus de détails. C’est un problème majeur pour la réorganisation de l’histoire.
Mises à jour v0.0.17 : 25/08/2024
- Commandes - une entrée de menu de niveau supérieur
- Modifications de la hiérarchie de l'historique
- Basculer le regroupement de l'historique (voir « Commandes »)
- Éléments parent/enfant mais un arbre plat
- Cela signifie que les éléments enfants apparaissent sous leurs parents et également à la racine de l'arbre.
- Répondre directement aux réponses
- Dans le panneau Réponse de l'historique, lorsque la réponse est Markdown, il y a un bouton « Répondre ici »
- Lors de l'utilisation de cette fonctionnalité, l'historique immédiat pertinent sera inclus dans la nouvelle interaction LLM
- Le Builder collecte désormais un nom de projet et un répertoire
- Ces informations sont utilisées pour formater le XML utilisé dans l'invite
- Cela indique au LLM exactement ce qu'il obtient
- Les invites du système seront ajustées dans les versions futures
- La prochaine version utilisera "Nom du projet" dans la hiérarchie historique
Mises à jour du 14/08/2024 :
- Azure OpenAI
- Mettre à niveau Axios en raison du rapport de vulnérabilité
- Ajout de quelques notes au panneau de configuration des membres
Mises à jour du 13/08/2024 :
- Marquage des entrées de l'historique
- Affichage de l'historique mis à jour
Ensuite, je vais ajouter un nouvel outil permettant au LLM d'interroger l'historique selon les besoins. Je réfléchis également à la manière de permettre au LLM d'interroger l'utilisateur. Si cet outil est utilisé, la conversation sera suspendue jusqu'à ce que l'utilisateur réponde. Il s'agit d'une fonctionnalité que l'utilisateur souhaitera peut-être désactiver. J'aimerais entendre des commentaires à ce sujet.
Mises à jour du 10/08/2024 :
- L'architecte principal peut utiliser tous les modèles implémentés
- L'indicateur d'état d'exécution ajouté dans la barre d'état indique "Frogteam" lorsqu'il s'agit d'une exécution de projet et "nom-membre" lorsqu'il s'agit d'une exécution dirigée.
- Ajout d'un canal de sortie appelé "FrogTeam.ai" qui se met à jour avec chaque entrée de l'historique et sur d'autres événements.
- Ajout des commandes Nouveau membre et Invite à la vue du projet pour rendre ces actions plus visibles.
- Ajout d'un message d'erreur pour vous informer lorsqu'un membre de l'équipe n'a pas d'invite système alignée.
- Nouvelle invite pour demander un résumé de tâche/projet
- Invites génériques
- importer de nouvelles invites
- Clé API de la variable d'environnement
08-08-2024
Salut - Merci d'être passé. J'ai décidé de mettre ça là-bas. C'est dans un endroit agréable où il y a des fonctionnalités. L'idée est de créer des membres d'équipe représentés par un LLM spécifique. Vous pouvez utiliser une variété de LLM différents et, au fil du temps, la manière dont les membres sont sélectionnés et la manière dont les affectations sont effectuées évolueront par rapport à l'état rudimentaire dans lequel je me trouve aujourd'hui. Vous pouvez utiliser les modèles AWS Bedrock et les modèles OpenAI et pour l'instant, je resterai probablement dans ces limites pour la sélection LLM : - Le modèle prend en charge l'appel d'outils - Le modèle et sa fonctionnalité d'appel d'outils sont pris en charge par langchain Je me concentre actuellement sur certaines fonctionnalités de l'interface utilisateur tout en J'améliore/affine ma chaîne d'appel d'outils. J'espère bientôt passer à une fonctionnalité de partage d'invite du système et, à terme, j'aimerais intégrer RAG avec des vecteurs locaux. J'espère alors me retourner et utiliser mon extension pour développer ma prochaine application mobile, quelle qu'elle soit.
Je me demande s'il y a un appétit pour ce que je fais ici. Faites-moi part de vos réflexions.
Voici une courte vidéo de démonstration. l'architecte principal peut maintenant utiliser d'autres modèles
Suivez-moi sur Instagram.
- - FrogTeam.ai
- Votre équipe de développement GenAI virtuelle
- Couler
- Intégration MLFLow
- Problèmes connus/limites
- Tâches - Implémentation d'autres sources de modèles
- Tâches - Sur le pont
- Tâches - Carnet
- Exemples d'invites utilisateur
- Icônes
- Comment contribuer
- Soumettre des problèmes
Votre équipe de développement GenAI virtuelle
C'est mon projet parallèle, j'aime écrire et générer un projet de code.
Il s'agit d'une interface d'IA générative dans laquelle vous pouvez enregistrer de nouveaux modèles, configurer les paramètres et les invites du modèle, s'interfacer avec les intégrations Chroma (éventuellement) et disposer d'un ensemble commun de commandes que vous pouvez utiliser pour interagir avec les fichiers dans l'espace de travail et la sortie de divers LLM. Vous enregistrez des « membres de l'équipe » et leur attribuez un modèle. Vous pouvez utiliser le même modèle plusieurs fois ou utiliser des modèles différents. Vous pouvez affecter des membres de l'équipe à collaborer sur une tâche.
Aperçu
- Mission d'architecte principal
- L'architecte principal décomposera le projet et confiera aux autres membres disponibles une tâche qu'il jugera adaptée à l'ensemble du projet.
- Une fois toutes les tâches terminées, l'architecte principal y jettera un coup d'œil afin de
- résoudre un problème, il peut
- résumer la solution globale
- Affectations de tâches uniques
- Vous pouvez @membre d'une tâche
- Ajouter/Supprimer/Modifier un membre de l'équipe
- Nom
- Modèle
- Limites (non mises en œuvre)
- Bibliothèque d'invites
- Cela finira par être lié à un dépôt git ou à un point de terminaison https où de nouvelles invites seront disponibles
- Ceci est prévu comme une plateforme de partage communautaire
- Ensemble par défaut
- Ajouter/Supprimer/Modifier
- tags: modèle, objectif Commandes planifiées
- @TeamMember
Couler
Vous devez définir au moins trois membres - architecte principal - ingénieur principal - développeur
Ouvrez le constructeur
Le "Builder" se trouve dans le panneau "Projet".
Description du projet Décrivez en quoi consiste le projet. Soyez précis et fournissez toutes les informations dont vous pourriez avoir. Extraits de code, suggestions de hiérarchie de classes, recherches et exemples de références. Références de sites Web pour les bibliothèques que vous souhaitez utiliser, etc... Lorsque vous appuyez sur "Projet GO"
Architecte principal L'architecte principal décompose le projet et
- Donne à chaque membre une mission
Chaque membre travaille jusqu'à la fin de sa mission - Lorsque la tâche est terminée, les informations sont ajoutées aux messages. Lorsque tous les membres ont terminé leurs tâches, l'architecte principal obtient une passe finale et résume le travail effectué.
Vous pouvez affiner l'invite et la soumettre à nouveau. Les fichiers existants seront utilisés et modifiés.
Intégration MLFLow
Enregistrement très basique des invites et de la durée pour le moment. Je souhaite collecter un ensemble de solutions, chacune avec une définition de projet spécifique fournie par l'utilisateur, puis créer un pipeline d'évaluation pour évaluer les invites du système par rapport à un ensemble d'invites utilisateur pour chaque solution. J'aimerais arriver à un endroit où la communauté pourrait contribuer à des invites système optimisées pour des langages et des technologies spécifiques. Pour soumettre une invite système, vous devez être capable de passer un pipeline d'évaluation. Il serait particulièrement intéressant de permettre le partage de vecteurs/intégrations de connaissances en ancrant une invite système autour d'un contexte plus spécifique. L'intégration de MLFLow ici est expérimentale, mais j'envisage d'ajouter un onglet Test où les données de test peuvent être utilisées et soumises et un onglet de soumission où les invites peuvent être soumises et suivies.
Problèmes connus/limites
- Validation des membres de l'équipe aux invites. Pour l'instant, utilisez la vue Composition de l'équipe pour valider manuellement que tous les membres sont alignés sur une invite système. Si vous voyez : TypeError : Impossible de lire les propriétés d'un élément non défini (lecture de "contenu"), vérifiez la programmation, quelqu'un n'a probablement pas d'invite.
- Aucune validation d'appel d'outil, donc parfois la génération initiale du projet ne se termine jamais ; vous pouvez réessayer
- la validation/nouvelle tentative arrive
- Pour le moment, cela ne fonctionnera que directement avec OpenAI ou AWS Bedrock.
- Pour OpenAI, vous avez besoin d'une clé API
- Pour AWS Bedrock, vous devez être connecté à AWS dans votre environnement VS Code et vous avez besoin des modèles pris en charge déployés dans le compte/la région appropriée.
- OpenAI sur Azure est implémenté mais j'avoue ne pas l'avoir testé ( si quelqu'un l'essaye faites le moi savoir )
Tâches - Implémentation d'autres sources de modèles
- En ce moment, je recherche des modèles prenant en charge les appels d'outils à l'aide du framework Langchain.
- OpenAI d'OpenAI
- gpt-4o terminé
- gpt-4-turbo terminé
- gpt-35-turbo terminé
- Socle AWS
- Anthropique Claude 3.5 Sonnet réalisé
- Cluade Anthropique 2 Haiku terminé
- OpenAI sur Azure
- gpt-4o NÉCESSITE DES TESTS
- gpt-4-turbo BESOIN DE TESTS
- gpt-35-turbo BESOIN DE TESTS
- ÉtreindreVisage
- Existe-t-il une manière standard de procéder? C'est un travail de recherche pour moi.
Tâches - Sur le pont
- Créez un outil pour le LLM qui effectue une recherche de code, par exemple, utilisez simplement la recherche de vscode pour trouver des éléments dans les fichiers permettant la recherche/remplacement de LLM .
- mlflow
- configuration de l'expérience
- Vous pouvez démarrer une nouvelle expérience et l'identifiant de l'expérience sera enregistré avec l'objet d'invite terminé.
- les endroits où l'invite est utilisée, les courses seront créées et l'invite, la durée sont enregistrées terminées `
- Vous pouvez arrêter une expérience en effaçant l'identifiant de l'expérience terminée.
INVITE SYSTÈME Parfois, un fichier volumineux aura simplement un commentaire indiquant que le reste reste inchangé, laissant à l'utilisateur des commandes git pour le corriger. Cette phrase suivante doit être ajoutée aux invites système. "N'oubliez pas qu'il s'agit de fichiers de solution "en direct", vous devez afficher l'intégralité du fichier. Dire des choses comme "le reste de ce code reste inchangé" rend le fichier incomplet. Ne faites pas cela." POUR L'INSTANT, J'AI AJOUTÉ À LA DESCRIPTION DE L'OUTIL saveContentToFileApi
Nous avons besoin d'un moyen d'exporter le démarque plus facilement, l'utilisateur devrait pouvoir cliquer sur une icône « Copier » pour copier la réponse Markdown.
Créer un nouvel outil qui permet au llm de demander que le contenu d'une URL soit récupéré, lorsqu'il s'agit d'une image, nous devrions également la base64
- cela devrait-il être pour chunk/vectorize/RAG ?
Ajoutez try...catch/check pour la longueur où .content est utilisé à partir de la réponse llm
Ajouter try...catch pour les appels d'outils et enregistrer les échecs dans l'historique terminé
configuration d'une limite de temps ou de jetons par modèle/membre de l'équipe
- mettre en œuvre des limites de jetons/limites de temps/limites de jetons de demande pour les membres de l'équipe
- cela nécessitera un suivi
- l'architecte principal devra être conscient de ces contraintes lors de l'attribution des missions
- régler la température et d'autres paramètres pour le membre de l'équipe
BUG : Lorsqu'on demande à un membre d'effectuer une tâche, le résumé est parfois redondant.
BOGUE : parfois, les définitions ou les résultats de toolCall sont mauvais et le processus génère des erreurs.
- Peut-être simplement essayer d'attraper et de rapporter/enregistrer/ajouter un historique, que s'est-il passé ? fait
- À ce stade, l'utilisateur peut simplement essayer de cliquer à nouveau sur "Go".
- Un
- 0y correctif devra répondre aux règles de conversation
Tâches - Carnet
- Outil Ask the Human - créez un outil qui permet à tout membre de l'équipe (y compris l'architecte principal) de poser une question adressée à l'humain
- cela peut apparaître dans l'historique mais fera attendre l'ensemble du thread de tâche
- Le document doit s'ouvrir avec la question affichée
- lorsque vous cliquez dessus dans l'historique, le document s'ouvre
- Le document présente l'état de la chaîne permettant à l'humain de répondre et de reprendre la chaîne
- intégration git
- s'engager d'abord
- branche en premier
- commettre
- cache d'abord
- Génération de relations publiques
- plate-forme de partage de bibliothèques rapides - utiliser davantage MLFlow
- Créer des data panels pour héberger des solutions « en or » aux demandes spécifiques des utilisateurs
- Créer un pipeline pour évaluer les invites du « système » par rapport aux solutions en or
- Effectuer un processus de soumission rapide
- ajouter une instance Chromadb (éventuellement ?)
- exploration Web à la demande qui sera découpée et stockée dans Chroma local
- URL/Internet ou contenu du disque local
- basé sur le type de fichier
- mettre en œuvre une stratégie de segmentation pour la base de code des solutions
- mettre en œuvre une stratégie de segmentation pour l'historique
- mettre en œuvre une stratégie de segmentation pour la documentation du projet
- mettre en œuvre l'historique de recherche/la recherche de code
- configurer une file d'attente pour traiter les demandes (afin que l'utilisateur puisse mettre les tâches en file d'attente pendant que les opérations sont en cours)
- ne traiter qu'un seul élément à la fois
- Dans l'Histoire
- une icône pour la réponse au contenu par rapport à la fonction
- indiquer le succès/l'échec (coche verte vs X rouge)
- pouvons-nous indiquer quand il y a du contenu dans le fichier et quand il n'y en a pas (y a-t-il un conflit avec le markdown ?)
- parfois, un fichier n'a pas encore été créé et ce n'est pas grave
Exemples d'invites utilisateur
Écrivez-moi une page Web simple qui utilise une toile pour dessiner une balle et la faire rebondir autour des limites de la toile. Veuillez diviser le projet en plusieurs fichiers : index.html, index.js et index.css. Placez les fichiers dans un répertoire appelé rebond-ball. Ce n'est que le point de départ du projet, alors gardez à l'esprit que nous demanderons des améliorations.
Créez-moi une application d'une seule page qui affiche les directions à partir de l'endroit où le navigateur Web pense se trouver jusqu'à la gare la plus proche.
En utilisant la cartographie Web openstreetmap, vous simulerez le suivi d'une étiquette aérienne lorsqu'elle se déplace. de : Point A -> 1 Grey Rock Place, Stamford CT à : Point B -> Cove Island Park, Stamford, CT
- Pour ce faire, générez des itinéraires routiers entre ces deux emplacements, puis affichez un point se déplaçant le long de ces directions au fil du temps.
- Tous les fichiers doivent être créés/modifiés dans le répertoire "tracking"
- Je m'attends à pouvoir ouvrir index.html à partir du répertoire de suivi à l'aide de l'extension LiveServer VS Code et, lorsque je le ferai, je m'attends à voir une carte montrant les emplacements que j'ai mentionnés.
Utilisez un canevas HTML pour créer un jeu de paddle-tenis dans lequel vous pouvez déplacer un bloc rectangulaire d'avant en arrière à l'aide des touches fléchées gauche et droite. Vous frappez la balle, elle monte, atteint le sommet et revient. Si vous ratez et que la balle touche le mur du bas, vous perdez un point, si vous frappez la balle, vous gagnez 2 points.
Écrivez un jeu de réflexion pour le canevas HTML. Il doit contenir une sélection de formes qui sont en cycle et lorsque vous cliquez, vous verrouillez une forme, et lorsque vous cliquez sur une forme sélectionnée, la forme pivote. Une fois que l'utilisateur a sélectionné trois formes, les formes commencent à tomber dans la zone de canevas. L'utilisateur doit verrouiller trois formes ensemble pour former une autre forme avant d'atteindre le fond. Lorsque deux formes sont verrouillées, la vitesse de chute peut ralentir. Pour ce faire, l'utilisateur clique sur les formes pour les faire pivoter.
Icônes
Toutes les icônes que vous voyez proviennent de la liste ci-dessous, je les ai créées ou GenAI m'a aidé à les créer. Fichiers de licence stockés et distribués dans le répertoire des ressources.
- https://iconduck.com/sets/elementary-icon-set
- https://iconduck.com/sets/open-iconic-icon-set
- https://iconduck.com/sets/font-awesome-icons
- https://iconduck.com/sets/material-design-icons
Comment contribuer
J’apprécie votre intérêt à contribuer à ce projet. Cependant, je n'accepte actuellement pas les contributions directes telles que les pull request. Au lieu de cela, je vous encourage à soumettre des problèmes si vous trouvez des bogues, si vous avez des demandes de fonctionnalités ou si vous avez besoin d'aide.
Soumettre des problèmes
Pour soumettre un problème, veuillez utiliser la fonctionnalité Problèmes de GitHub. Décrivez votre problème en détail et j'y répondrai dans les plus brefs délais.
Merci pour votre compréhension et votre soutien !