Inspiration
Inspired by the need to conduct secondary application development based on existing github open source repository, RepoGPT is created to leverage the power of GPT and RAG for interacting with GitHub repositories, and assist developer to understand the codes better and faster.
What it does
RepoGPT allows users to analyze and interact with GitHub repositories by crawling documents, then vectorizing the content for retrieval-augmented generation. Users can chat with the repository to get insights and answers about its contents.
How I built it
The backend uses the GitHub API for retrieving repository documents, the LangChain library to simplify the creation of the chatbot, and the Chroma vector store for managing and querying vectorized content, and OpenAI API to empower interactions with users. The frontend uses Streamlit to create an interactive interface.
Challenges I ran into
How to let the chatbot knows the source of document when they provides answer. How to efficiently crawling large repositories, and handling various file types, and ensuring relevant data extraction while avoiding unnecessary files. Integrating the different components seamlessly and optimizing vectorization were also challenging.
Accomplishments that we're proud of
An intuitive and powerful chatbot is created to enable users to interact with and gain insights from their provided GitHub repositories. This significantly speeds up the learning curve for secondary application development based on open source repository.
What I learned
I learned about the intricacies of working with GitHub’s API, handling various file formats, and integrating different technologies like Streamlit, LangChain, and Chroma. I also gained insights into optimizing data retrieval and processing for large repositories.
What's next for RepoGPT: chat with github repository
Next, I plan to crawling Q&As in repository issues, and pull requests as well, to provide more context to the chatbot and improve the quality of answer. I also plan to provide more AI models for users to choose from. Last, i want to support the local deployment of chatbot to prevent privacy leaking.
Log in or sign up for Devpost to join the conversation.