Agent Learning Service
ML-powered adaptive knowledge assessment engine
Overview
The Agent Learning Service is a Python microservice that powers the knowledge testing feature in RankdResume. It extracts skills from a user's resume, generates domain-specific questions using LLaMA, evaluates answers, and adapts difficulty based on performance. A ChromaDB vector store enables semantic search over the training knowledge base.
Key Features
How It Works
Skill Extraction
Service receives the parsed resume JSON. It extracts skills, experience years, and domain keywords to build a learning profile.
Question Generation
LLaMA generates questions for each skill. ChromaDB retrieves relevant domain knowledge chunks to ground the questions factually (RAG).
Quiz Delivery
15 questions are sent to the NestJS backend which relays them to the frontend. User answers are collected and sent back.
Answer Evaluation
The ML model evaluates answers using semantic similarity. Score and per-question feedback are returned.
Certificate
If score ≥ threshold, backend triggers certificate generation and Resend email notification.
Tech Stack
Runtime
- Python 3.11
- FastAPI
ML
- scikit-learn
- LLaMA 3 (via Ollama)
- SentenceTransformers
Vector DB
- ChromaDB
- HuggingFace Embeddings
Data
- Synthetic data generator
- JSON training sets
Architecture
A retrieval-augmented generation (RAG) pipeline combining LLaMA for generation, ChromaDB for knowledge retrieval, and scikit-learn for answer scoring.
Data Flow
- 1Resume JSON arrives → Skill Collector extracts skill list and domain context.
- 2For each skill: Inference Engine queries ChromaDB for relevant knowledge chunks (RAG retrieval).
- 3LLaMA generates 3 candidate questions per chunk → best 15 selected by diversity scoring.
- 4User answers returned → scikit-learn model evaluates semantic similarity between answer and expected.
- 5Offline: Synthetic Data Generator builds training sets → Trainer retrains model → new weights hot-loaded.
Interested in building something similar?
Get in Touch