CodeSage is an AI-powered Repository Intelligence Platform that helps developers understand software repositories using natural language. Instead of manually exploring files, users can upload a project and ask questions about the codebase to receive AI-generated answers based on the repository content.
- Upload software repositories in ZIP format
- Automatic repository extraction and indexing
- Semantic code search using vector embeddings
- AI-powered question answering
- Repository summary generation
- Repository analysis
- Conversation memory for follow-up questions
- Displays source files used to generate answers
- React
- Vite
- Axios
- React Markdown
- React Syntax Highlighter
- FastAPI
- Python
- DeepSeek Chat (via OpenRouter)
- Sentence Transformers (all-MiniLM-L6-v2)
- SQLite
- ChromaDB
CodeSage │ ├── backend │ ├── api │ ├── services │ ├── data │ └── main.py │ ├── frontend │ ├── src │ ├── components │ └── App.jsx │ └── codesage.db
- Upload a repository in ZIP format.
- The repository is extracted and processed.
- Source files are divided into smaller chunks.
- Sentence Transformers generate embeddings for each chunk.
- Embeddings are stored in ChromaDB.
- When a user asks a question, CodeSage retrieves the most relevant code snippets.
- DeepSeek generates an answer using the retrieved context.
- The response is displayed along with the source files used.
cd backend
python -m venv venv
# Windows
venv\Scripts\activate
pip install -r requirements.txt
uvicorn main:app --reloadcd frontend
npm install
npm run dev| Method | Endpoint | Description |
|---|---|---|
| POST | /upload |
Upload a repository |
| GET | /repositories |
Get uploaded repositories |
| GET | /chat |
Ask questions about a repository |
- What does this repository do?
- Explain the upload workflow.
- Which file handles repository uploads?
- How are embeddings generated?
- What frameworks are used in this project?
- Analyze this repository.
- Support multiple LLM providers
- Repository comparison
- Code dependency visualization
- Multi-language repository support
- User authentication
- Export chat history
Rubashree
B.Tech Information Technology
This project is developed for educational purposes.