Memory with a purpose
Five memory types keep conversations, student context, task state, vectors, and enrollment data together.
Agentic AI / Academic advising
A better path
to your next course.
An academic advisor that connects a student’s goals, course history, and enrollment rules to a searchable university catalog.
Course discovery is only half the problem. A useful recommendation also needs to respect prerequisites, a student’s major, and their completed academic history.
A Flask application brings course browsing, advising, and enrollment together. Semantic retrieval finds relevant courses; the advisor uses student context and eligibility checks to explain the recommendations.
Five memory types keep conversations, student context, task state, vectors, and enrollment data together.
The engine falls back from Gemini to Ollama, Mistral Cloud, and finally direct vector results.
Parallel pre-fetching, two-level caching, and background S3 uploads reduce work on the response path.
The repository documents a complete advising workflow: catalog exploration, contextual recommendations, enrollment, and protected historical records. Its search cache persists across application restarts.
The central engineering choice is graceful degradation: the catalog and retrieval layer remain useful even when a model provider is unavailable.