--- title: Code Weaver emoji: 🔥 colorFrom: purple colorTo: indigo sdk: docker pinned: false short_description: Interact with your github repo --- # Code Weaver This application is inspired by the [Chat-with-Github-Repo](https://github.com/peterw/Chat-with-Github-Repo) project by peterw, which demonstrates how to create a chatbot using Streamlit, OpenAI, and Activeloop's Deep Lake. Code Weaver builds upon that foundation, offering a more user-friendly experience and optimized performance. Code Weaver is designed to let you interact with a GitHub repository through a conversational interface. It indexes the contents of a repository, allowing you to ask questions and receive answers based on the repository's documentation and code. ![Code Weaver Screenshot](screenshot.png) ## Key Improvements Over Original Implementation Code Weaver offers several key improvements that enhance the user experience and the app's overall performance: * **Purely Frontend UI:** * The original application used a command-line interface (CLI) for configuration. Code Weaver provides a completely UI-based experience. All configurations (API keys, repo URLs, dataset names, etc.) are entered directly into the Streamlit app, making it much more accessible to users. * **Optimized Document Parsing:** * The document parsing and splitting process have been optimized for speed and handling of large files by using `RecursiveCharacterTextSplitter`. * **Improved Loading times:** * The app is now faster because the embeddings are not recalculated each time the app is started, this is achieved by using `InMemoryCache`. * **Direct OpenAI Embeddings Model:** * The app now directly specifies the usage of the `"text-embedding-ada-002"` OpenAI embedding model, resulting in faster embedding calculations. * **In Memory Cache:** * `InMemoryCache` is used to cache the results from the language model improving loading speeds. * **Streamlined Setup:** * No more need for `.env` files, as all necessary variables are inserted directly in the app UI. * **Easier Deployment**: The app is built to be deployed in Hugging Face Spaces, making the deployment process easier. ## How to Use Code Weaver 1. **Clone the repository:** ```bash https://github.com/WHITELOTUS0/chat-with-a-repo.git ``` 2. **Navigate to the Project Directory:** ```bash cd your-repo-name ``` 3. **Install dependencies:** ```bash pip install -r requirements.txt ``` 4. **Run the app:** ```bash streamlit run app.py ``` 5. **Enter configurations**: The Streamlit app will open in your web browser. In the sidebar, provide: * Your OpenAI API Key * Your Activeloop Token * Your Activeloop Username * The GitHub repository URL you want to explore * The file extensions to include (optional) * A desired name for the DeepLake dataset 6. **Process the repository**: Click on the "Process Repository" Button, and wait for it to finish. 7. **Start Chatting:** After processing is done, you can start asking questions about the repository in the provided input text area. ## Contributing Contributions to this project are always welcome. If you find any bugs or would like to suggest new features, feel free to create a pull request or open an issue in this repository. ## Credits * Inspired by the [Chat-with-Github-Repo](https://github.com/peterw/Chat-with-Github-Repo) project by peterw. * Built using Python, Streamlit, OpenAI, Activeloop, and Langchain. ## License [MIT License](LICENSE) Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference