This project is a comprehensive solution for automating the analysis and documentation of codebases. It utilizes a large language model (LLM) to select important files, summarize their content, and generate a README document. The project aims to simplify the process of understanding and documenting complex codebases, making it easier for developers to collaborate and maintain their projects.
- Automated File Selection: Uses an LLM to identify the most relevant files in a codebase.
- File Summarization: Generates concise summaries of each selected file's content.
- README Generation: Compiles the summaries into a comprehensive README document.
- LLM Fallback Mechanism: Ensures reliability by rotating through multiple LLM providers and API keys.
- Modular Design: Allows for easy integration with other tools and services.
demo-1-1752783312121.1.1.1.mp4
- Frontend: Next.js, React, Tailwind CSS
- Backend: Express.js, Node.js, Python
- LLM Providers: Gemini, Groq
- Utilities:
langgraph,google.generativeai,langchain,dotenv,groq - Database: Not specified
To set up the project, follow these steps:
- Prerequisites: Ensure you have Node.js and Python installed on your system.
- Clone the Repository: Run
git clone https://github.com/your-repo-url.gitto download the project. - Install Dependencies: Navigate to the project directory and run
npm installfor the frontend andpip install -r requirements.txtfor the backend. - Configure Environment Variables: Set up your environment variables for API keys and other configurations.
- Start the Backend: Run
node server.jsto start the Express server. - Start the Frontend: Run
npm run devto start the Next.js development server. - Interact with the Application: Open your web browser and navigate to
http://localhost:3000to use the application. - Testing sync
project/
├── frontend/
│ ├── app/
│ │ ├── layout.tsx
│ │ ├── page.tsx
│ │ └── ...
│ ├── lib/
│ │ ├── config.ts
│ │ ├── utils.ts
│ │ └── ...
│ ├── next.config.ts
│ ├── package.json
│ └── ...
├── backend/
│ ├── src/
│ │ ├── server.ts
│ │ ├── routes/
│ │ │ ├── readme.ts
│ │ │ └── ...
│ │ ├── utils/
│ │ │ ├── make-dir.ts
│ │ │ ├── clone-repo.ts
│ │ │ └── ...
│ │ ├── python/
│ │ │ ├── agents.py
│ │ │ ├── llm_fallback.py
│ │ │ ├── prompts.py
│ │ │ └── ...
│ │ └── ...
│ ├── package.json
│ └── ...
├── .env
├── README.md
└── ...Contributions are what make the open-source community such an amazing place to learn and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
@LakshitAgarwal - lakshit7811@gmail.com
This project was made possible thanks to the contributions of many individuals and the support of our community. This is written by readme.ai for better documentation.