Auteur: Georges Arthur Engono |georges.arthur.engono.essame@umontreal.ca Superviseur: Eugène Syriani | syriani(@)iro.umontreal.ca
Dans le cadre de mon projet informatique final, j'ai eu la chance de travailler sur un projet informatique pour le cours IFT3150. Ce projet consistait à développer une solution utilisant l'Intelligence Artificielle pour simplifier Git.
Git, créé par Linus Torvalds en 2005, est un système de contrôle de version distribué. Il est utilisé par des millions de développeurs à travers le monde pour gérer leurs projets. Cependant, Git est souvent considéré comme difficile à utiliser, en particulier pour les débutants. En effet, Git possède une syntaxe complexe et de nombreuses commandes qui peuvent être difficiles à retenir.
L'objectif de mon projet était de développer une solution qui simplifie Git en utilisant l'Intelligence Artificielle. Pour ce faire, j'ai utilisé les nouvelles technologies de Large Language Models (LLMs) telles que Llama3 de Meta. Ce modèle est capable de générer du texte de manière très réaliste et peuvent être utilisés pour automatiser des tâches complexes. J'ai aussi fait usage de la recherche sémantique pour améliorer la qualité des recommandations de commandes Git générées par le modèle.
Le résultat de mon projet est une application CLI directement disponible sur le terminal. L'utilisateur peut poser des questions en langage naturel sur Git et obtenir des recommandations de commandes Git. Le chatbot est capable de comprendre le contexte de la question et de générer des recommandations de commandes Git pertinentes. Par exemple, si l'utilisateur demande comment créer une nouvelle branche, l'application lui recommandera la commande git branch. Le chatbot a également connaissance du projet sur lequel l'utilisateur travaille et peut générer des recommandations de commandes Git spécifiques au projet. Par exemple, l'utilisateur peut demander de génerer la commande qui lui permettra de trouver le dernier commit sur la branche master ou de savoir quel a été le dernier commit pushed par l'utilisateur "garthur007".
Pour la réalisation de ce projet, j'ai dû combiner mes connaissances de mes trois années d'études en informatique à l'Université de Montréal ainsi que de mes 1 an d'expérience en stage en entreprise. J'ai utiliser une approche de développement microservices pour la conception de l'application pour faciliter la maintenance et l'évolutivité de l'application. J'ai l'intention de continuer à travailler sur ce projet après la fin du cours pour l'améliorer et le rendre disponible au public.
Lien vers le dépôt GitHub du projet: repo
Lien vers la démo du projet: démo
Lien vers le rapport final: https://georgesengono.github.io/ift3150-bronco_doc/
Author: Georges Arthur Engono |georges.arthur.engono.essame@umontreal.ca Supervisor: Eugène Syriani | syriani(@)iro.umontreal.ca
As part of my final computer science project, I had the opportunity to work on a project for the IFT3150 course. This project consisted of developing a solution using Artificial Intelligence to simplify Git.
Git, created by Linus Torvalds in 2005, is a distributed version control system. It is used by millions of developers around the world to manage their projects. However, Git is often considered difficult to use, especially for beginners. Indeed, Git has a complex syntax and many commands that can be difficult to remember.
The goal of my project was to develop a solution that simplifies Git using Artificial Intelligence. To do this, I used new Large Language Models (LLMs) technologies such as Meta's Llama3. This model is capable of generating text in a very realistic way and can be used to automate complex tasks. I also used semantic search to improve the quality of the Git command recommendations generated by the model.
The result of my project is a CLI application directly available on the terminal. The user can ask questions in natural language about Git and get Git command recommendations. The application is able to understand the context of the question and generate relevant Git command recommendations. For example, if the user asks how to create a new branch, the application will recommend the git branch command. The chatbot also knows about the project the user is working on and can generate Git command recommendations specific to the project. For example, the user can ask to generate the command that will allow him to find the last commit on the master branch.
To carry out this project, I had to combine my knowledge from my three years of studies in computer science at the University of Montreal as well as my 1 year of experience in an internship in a company. I used a microservices development approach for the application design to facilitate the maintenance and scalability of the application. I intend to continue working on this project after the end of the course to improve it and make it available to the public.
Link to GitHub Repository: repo
Link to my project demo: demo
Link to my final projet report: https://georgesengono.github.io/ift3150-bronco_doc/