Custom AI assistant for the Numerične metode (Numerical Methods) course at the Faculty of Mechanical Engineering, University of Ljubljana, developed by LADISK.
The assistant is deployed on a self-hosted Open WebUI instance using the Mistral API and is intended as a study aid for students — not a replacement for lectures, textbooks, or office hours.
- Answers questions about the course curriculum (14 lectures, Python to numerical ODEs)
- Guides students through topics using the same terminology, notation, and code conventions as the course
- Refuses to solve homework or exam problems — guides students to the answer instead
- Can discuss numerical methods and Python topics outside the curriculum, with a clear disclaimer
- Declines unrelated topics entirely
Free help — student asks a specific question and gets targeted help.
Guided curriculum — the assistant walks the student step by step through all 14 lectures in order, checks understanding at each stage, and adapts to the student's pace.
In guided mode, the assistant can generate a progress file (.md) at the end of each session. The file records completed lectures, current position, what the student understood well, and what needs revisiting. Uploading the file at the start of the next session lets the assistant resume exactly where the student left off.
- Deploy Open WebUI via Docker on your server
- Add your Mistral API key under Admin Panel → Settings → Connections
- Create a custom model under Workspace → Models, paste
system_prompt.mdas the system prompt andmodel-description.mdas the description - Restrict users to that model only under Admin Panel → Settings → Models
- Disable prompt suggestions under Admin Panel → Settings → Interface
- (Optional) Attach the RAG knowledge base from
rag_knowledge/under Admin Panel → Knowledge
To restrict access to FS students and educators only, configure Microsoft OAuth in your Open WebUI environment:
MICROSOFT_CLIENT_ID=your-client-id
MICROSOFT_CLIENT_SECRET=your-client-secret
MICROSOFT_CLIENT_TENANT_ID=your-tenant-id
ENABLE_OAUTH_SIGNUP=trueRegister the app in Entra ID with redirect URI https://your-server/oauth/oidc/callback, set supported account types to "this organizational directory only", and add email as an optional ID token claim.
- Open le.chat and create a new Agent
- Paste the contents of
system_prompt.mdinto the system prompt field - Choose a model (Mistral Large recommended, Mistral Small for lighter usage)
- Save and share the agent link with students
- Online textbook: jankoslavic.github.io/pynm
- Course repository: github.com/jankoslavic/pynm