AICodeBot est un assistant de codage basé sur un terminal conçu pour vous faciliter la vie en matière de codage. Considérez-le comme votre version IA d'un programmeur en binôme. Effectuez des révisions de code, créez des messages de validation utiles, déboguez les problèmes et aidez-vous à réfléchir à la création de nouvelles fonctionnalités. Un membre de l'équipe qui accélère le rythme du développement et vous aide à écrire un meilleur code.
Nous avons prévu de créer plusieurs interfaces différentes pour interagir avec AICodeBot. Pour commencer, il s'agit d'un outil de ligne de commande que vous pouvez installer et exécuter dans votre terminal, ainsi que d'une action GitHub pour les révisions de code.
Statut : Ce projet a été construit avant que les assistants de codage AI ne soient cool. ? En tant que telle, une grande partie des fonctionnalités a été répliquée dans divers IDE. Là où AICodeBot brille, c'est a) qu'il se trouve dans le terminal, pas dans l'interface graphique, et b) il peut être utilisé dans des processus tels que les actions GitHub.
Nous utilisons AICodeBot pour créer AICodeBot, et cela ne cesse de croître.️ Nous recherchons des contributeurs pour nous aider à le développer. Voir CONTRIBUER pour en savoir plus.
Tâche | Statut |
---|---|
Générer des messages de validation de qualité | ✅ |
Réfléchir aux tâches en tant que programmeur en binôme | ✅ |
Codage avec un petit nombre de fichiers | ✅ |
Débogage | ✅ |
Faire des revues de code | ✅ |
Expliquer le code | ✅ |
Écrire des tests | ✅ |
Intégration avec GitHub | ✅ |
Modification de fichiers locaux | Premières étapes |
Rechercher des réponses sur Internet | En cours |
Lecture de la documentation de la bibliothèque | Premières étapes |
Codage avec un grand nombre de fichiers | À mesure que les LM obtiennent des limites de jetons plus grandes |
Rédaction de code de niveau développeur senior | Finalement |
Refacteurs majeurs | Finalement |
Créez des applications entières | Finalement |
Remplacer les développeurs | Non |
aicodebot sidekick
Votre assistant de codage alimenté par l'IA. Il est conçu pour vous aider dans vos tâches de codage en fournissant des suggestions et des solutions contextuelles. Pensez à ChatGPT avec la possibilité de lire le référentiel local pour connaître le contexte.
Par défaut, il transmettra un répertoire de fichiers du répertoire de travail actuel, et vous pouvez également transmettre une liste de fichiers à utiliser comme contexte pour la tâche sur laquelle vous travaillez. Par exemple:
aicodebot sidekick file1.py file2.py
Dans cet exemple, l'acolyte lira le contenu de file1.py et file2.py et les utilisera pour fournir des réponses contextuelles.
Conseils de pro :
Cette fonctionnalité en est actuellement à ses débuts, mais elle est déjà utile. Nous ajouterons la prise en charge des outils que l'acolyte peut utiliser, notamment l'intégration de GitHub, l'ingestion de connaissances de domaine spécifiques au référentiel, l'écriture de fichiers locaux, etc. Pour l'instant, il lit simplement les fichiers et propose des suggestions.
aicodebot commit
améliore le processus de validation git. Il exécutera une pré-validation pour que vous puissiez vérifier la syntaxe, puis générera un message de validation pour vous en fonction des modifications que vous avez apportées. En autant d'efforts que de taper « fix bug » pour le message de validation, vous obtiendrez un message de validation de haute qualité qui décrit en détail le changement.
aicodebot review
exécutera une révision de code sur votre code et suggérera des améliorations. Par défaut, il examinera les modifications [un]staged, et vous pouvez également fournir un hachage de validation spécifique à examiner. Son objectif est de suggérer comment améliorer le code, et nous avons constaté qu'il nous apprend souvent de nouvelles choses sur notre code et fait de nous de meilleurs programmeurs. C'est un excellent moyen d'obtenir une deuxième paire d'yeux de robot sur votre code.
aicodebot debug $command
exécutera la commande $ et capturera la sortie du journal. Il transmettra le message d'erreur, la trace de la pile, le résultat de la commande, etc. à l'IA et répondra avec quelques suggestions sur la façon de le corriger.
Pour installer AICodeBot, exécutez :
pip install aicodebot
Et puis, exécutez aicodebot configure
pour commencer.
Usage: aicodebot [OPTIONS] COMMAND [ARGS]...
Options:
-V, --version Show the version and exit.
-h, --help Show this message and exit.
-d, --debug Enable langchain debug output
Commands:
alignment A message from AICodeBot about AI Alignment ❤ + ?.
commit Generate a commit message based on your changes.
configure Create or update the configuration file
debug Run a command and debug the output.
review Do a code review, with [un]staged changes, or a...
sidekick Coding help from your AI sidekick
AICodeBot prend en charge plusieurs grands modèles de langage, notamment Claude 3.x d'Anthropic et GPT-3/4x d'OpenAI. Les demandes de tirage pour Gemini ou Ollama sont les bienvenues, mais nous pensons que ces deux-là font l'affaire.
La première fois que vous exécutez AICodeBot, vous serez invité à saisir vos clés API
Qu’en est-il des révisions automatisées du code à chaque commit ? Vous pouvez exécuter AICodeBot en tant qu'action GitHub sur votre référentiel. Voir L'action GitHub AICodeBot pour les révisions de code. Il examinera chaque demande de validation et d'extraction, puis soit :
aicodebot debug $command
pip install aicodebot
aicodebot alignment
. La technologie elle-même est amorale ; cela imprègne simplement les valeurs des personnes qui le créent. Nous pensons que l'IA doit être intégrée d'une manière qui s'aligne sur l'humanité, et nous construisons AICodeBot pour nous aider à faire exactement cela. Nous construisons à partir d’un espace centré sur le cœur et contribuons à l’intersection saine de l’IA et de l’humanité.
aicodebot
est un outil pour les développeurs, il ne les remplace pas. Cela ne remplacera pas votre travail, mais cela rendra votre travail plus facile et plus amusant. Cela ne conquérira pas le monde, mais cela nous aidera à en construire un meilleur. Voir la section Alignement ci-dessous pour en savoir plus.
Ce n'est pas non plus un outil « créez un site pour moi en 5 minutes » qui prend une invite bien construite et construit un échafaudage pour vous. Il existe d'autres outils pour cela. Ce n'est pas une plateforme sans code. Au lieu de cela, AICodeBot est conçu pour fonctionner avec les bases de code existantes et le niveau git-commit. Il est conçu pour multiplier l’efficacité d’ingénieurs compétents.
Pour spécifier un modèle différent, vous pouvez définir le language_model
dans votre fichier $HOME/.aicodebot.yaml
. Par exemple:
openai_api_key : sk-*****
language_model : gpt-3.5-turbo
personality : Stewie
version : 1.3
Dans les modèles d'IA comme le GPT-4 d'OpenAI, un « jeton » est un morceau de texte, aussi court qu'un caractère ou aussi long qu'un mot. Le nombre total de jetons dans un appel d'API, y compris les entrées et les sorties, affecte le coût, la durée et le fonctionnement de l'appel en fonction de la limite maximale.
Chaque modèle a une limite maximale de jetons. Par exemple, GPT-3.5 a une limite de 4 096 jetons et GPT-4 a une limite de 8 192 jetons. Si une conversation dépasse cette limite, vous devez réduire votre texte jusqu'à ce qu'il tienne.
Lorsque vous utilisez des commandes telles que la commande Sidekick dans AICodeBot, qui vous permet de transmettre des fichiers pour le contexte, il est important de gérer efficacement vos jetons. En raison des limites des jetons, il n'est pas possible de charger l'intégralité de votre base de code. Au lieu de cela, vous ne devez charger que les fichiers spécifiques pertinents pour la tâche sur laquelle vous travaillez. Cela garantit que le modèle d'IA peut traiter votre demande efficacement et fournir les suggestions les plus pertinentes pour votre tâche actuelle.
Avez-vous besoin d'une fenêtre contextuelle plus grande pour votre tâche ? Êtes-vous confronté à des limites de jetons et recevez-vous un message comme celui-ci ?
The context is too large (21414) for any of the models supported by your API key. ?
Vous pouvez faire plusieurs choses :
Nous aimerions votre aide ! Si vous souhaitez contribuer, voici comment commencer. Voir CONTRIBUTION pour plus de détails.
Suppose que vous avez déjà ajouté des modifications au répertoire de travail actuel.
docker build -t aicodebot .
docker run -v ~ /.aicodebot.yaml:/home/user/.aicodebot.yaml -v .:/app aicodebot commit -y