How bhanuteja340-art/chatbot works
AI Interview Assistant serves questions through CLI and Streamlit entry points. Both use a shared RAG pipeline that embeds the query, retrieves up to five PDF-derived chunks from persistent ChromaDB, and asks Gemini to generate a context-grounded answer; the UI also displays timing and retrieved sources. A separate ingestion workflow extracts PDF pages, chunks them, embeds content, and updates the vector store with fingerprint-based rebuild or incremental behavior. Source excerpts establish the principal calls; README documents the web and CLI capabilities.
Main entry points: rag_pipeline.py RAG pipeline · ingest.py Ingestion coordinator · vector_store.py Vector store adapter · retriever.py Retriever
Components 16
User interfaces
- CLI
main.py - Streamlit app
app.py
Answering workflow
- RAG pipeline
src/rag_pipeline.py - Retriever
src/retriever.py - Query embedding
src/embeddings.py - Answer generator
src/generator.py
Knowledge ingestion
- Interview PDF
knowledge_base/top 100 common interview questions and best answers.pdf - Ingestion coordinator
src/ingest.py - PDF extraction
src/pdf_loader.py - Section chunking
src/chunking.py - Document embeddings
src/embeddings.py
External services and state
- Vector store adapter
src/vector_store.py - ChromaDB store
vector_store - Ingestion fingerprint
vector_store/ingestion_metadata.json - Gemini API
Other components
- Questioner
Connections 24
- Questioner → CLI: asks via CLI
- Questioner → Streamlit app: asks via web
- CLI → RAG pipeline: calls
- Streamlit app → RAG pipeline: calls
- RAG pipeline → Retriever: retrieves
- Retriever → Query embedding: embeds query
- Query embedding → Gemini API: requests embedding
- Retriever → Vector store adapter: searches
- Vector store adapter → ChromaDB store: queries
- ChromaDB store → Vector store adapter: returns matches
- Retriever → RAG pipeline: returns chunks
- RAG pipeline → Answer generator: generates answer
- Answer generator → Gemini API: requests answer
- Answer generator → RAG pipeline: returns answer
- RAG pipeline → CLI: returns result
- RAG pipeline → Streamlit app: returns result
- Ingestion coordinator → Interview PDF: reads
- Ingestion coordinator → PDF extraction: loads PDF
- PDF extraction → Section chunking: creates chunks
- Ingestion coordinator → Document embeddings: embeds chunks
- Document embeddings → Gemini API: requests embeddings
- Ingestion coordinator → Vector store adapter: updates store
- Vector store adapter → ChromaDB store: upserts chunks
- Ingestion coordinator → Ingestion fingerprint: reads and writes