Skip to content

Ai-MAFlutter/TechMatch-RAG-Copilot

Repository files navigation

🚀 TechMatch-RAG-Copilot

An AI-powered Technical Interview Assistant built using Retrieval-Augmented Generation (RAG), MinSearch, Groq LLM, and Streamlit.

This project helps users prepare for technical interviews by retrieving relevant questions and answers from a curated interview dataset and generating accurate responses using Large Language Models (LLMs).


📖 Overview

TechMatch-RAG-Copilot demonstrates the complete RAG workflow:

  1. User submits a technical interview question.
  2. MinSearch retrieves the most relevant interview records.
  3. Retrieved context is prepared and injected into the prompt.
  4. Groq LLM generates an answer based only on the retrieved knowledge.
  5. The response is displayed through a Streamlit web application.

🏗️ System Architecture

User Question
      │
      ▼
MinSearch Retrieval
      │
      ▼
Relevant Interview Context
      │
      ▼
Groq LLM
      │
      ▼
Generated Answer
      │
      ▼
Streamlit Interface

✨ Features

  • AI-powered interview preparation assistant
  • Retrieval-Augmented Generation (RAG)
  • Fast keyword and semantic retrieval using MinSearch
  • Groq LLM integration
  • Streamlit web interface
  • Custom interview dataset support
  • Environment variable configuration
  • Easy to extend with new interview tracks

🛠️ Technologies Used

Technology Purpose
Python Core development
MinSearch Information retrieval
Groq LLM Answer generation
OpenAI SDK Groq API integration
Streamlit Web application
JSON Knowledge base
Python Dotenv Environment variables

📂 Project Structure

TechMatch-RAG-Copilot/
│
├── app.py
├── rag.py
├── tech_interviews.json
├── requirements.txt
├── README.md
├── .gitignore
└── .env

⚙️ Installation

Clone Repository

git clone https://github.com/Ai-MAFlutter/TechMatch-RAG-Copilot.git
cd TechMatch-RAG-Copilot

Create Virtual Environment

python -m venv .venv

Activate:

.venv\Scripts\activate

Install Dependencies

pip install -r requirements.txt

Configure Environment Variables

Create a .env file:

GROQ_API_KEY=your_api_key_here

Run Application

streamlit run app.py

🔍 Example Questions

What is Hot Reload?

Hot Reload compiles newly added code and injects it into the Dart VM while preserving the current application state.

What is the difference between Provider and InheritedWidget?

Provider is a community package built on top of InheritedWidget that simplifies state management and reduces boilerplate code.

What is a CustomPainter?

CustomPainter provides direct access to the canvas for drawing custom UI components, shapes, paths, and graphics.


🧠 How RAG Works

Step 1 — Retrieval

The user's question is searched against the interview dataset using MinSearch.

Step 2 — Context Building

The most relevant interview entries are collected and formatted into a context block.

Step 3 — Generation

The context and question are sent to Groq LLM to generate an accurate answer.


🔮 Future Improvements

  • Vector Database Integration
  • Hybrid Search
  • Multi-domain Interview Support
  • Chat History & Memory
  • PDF Knowledge Base Support
  • Cloud Deployment

📸 Demo

Ask interview questions through a simple Streamlit interface and receive AI-generated answers grounded in the interview dataset.


👩‍💻 Author

Marina Wahid

AI & Data Enthusiast

Built as part of my RAG and LLM learning journey.


⭐ Support

If you found this project useful, consider giving it a star ⭐ on GitHub.

About

AI-powered Technical Interview Assistant using RAG, MinSearch, Groq LLM, and Streamlit.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages