A retrieval-augmented assistant for coding assessments. It ingests DevDocs-style language documentation (and PDFs) into a local Qdrant vector store, retrieves relevant chunks with hybrid dense/sparse/late-interaction search, classifies user intent with a DistilBERT model to guard against off-topic or solution-seeking prompts (so it won't just hand over assessment solutions), and streams answers from a local Ollama model through a Streamlit chat UI.
- Python 3.10+
- Ollama running locally with the following models pulled:
ollama pull mistral ollama pull nomic-embed-text
git clone https://github.com/Koifish2004/coding-assessment-assistant.git
cd coding-assessment-assistant
python3 -m venv venv
source venv/bin/activate
pip install streamlit langchain-classic langchain-ollama langchain-core \
qdrant-client fastembed transformers torch pymupdf4llm beautifulsoup4 \
pandas requests- PDFs: drop files into
data/*.pdf. - Language docs: add a folder under
data/<language>/containingmeta.json,db.json, andindex.json(DevDocs export format).
python -c "from ingestion.ingest import ingest_pdf, ingest; ingest_pdf(); ingest()"This embeds and stores chunks in a local Qdrant instance at vectorstore/qdrant_db.
streamlit run app/app.pyOpen the URL Streamlit prints, pick a language, and start asking questions about your ingested documents.