Using AI Teacher
AI Teacher gives every course a private assistant built on the materials you upload, which shows students the document and page each answer came from. You choose what it does when your materials don’t cover a question. This guide walks an admin or teacher through setting it up and running it from the dashboard.
Overview
AI Teacher is a private, cited teaching assistant for your institution. When a student asks a question, it searches the materials you uploaded, answers from the passages it finds, and attaches a [Source] citation to each claim. When your materials don’t cover the question, what happens next is your choice — see AI settings and Grounded & cited answers.
- Admins & teachers configure the workspace: upload materials, organize courses, tune the assistant, manage the team, and connect an LMS.
- Students just ask questions — in the chat playground, an embedded widget, or launched from inside your LMS.
- Your data stays isolated to your organization. Nothing is shared across tenants or used to train shared models.
Signing in
Go to /login and sign in. Authentication runs through Keycloak, so you can use the same credentials (and any SSO) your institution already has. New teammates you invite receive an email with a link to set their password.
What you can see and do depends on your role — an org admin sees billing and team management; a teacher sees documents, courses, analytics, and the assistant settings for their courses. See Users & roles for the full breakdown.
The dashboard
After signing in you land on the dashboard — a quick read on your workspace. Four cards summarize it:
- Courses — how many courses you’ve set up.
- Documents — total materials uploaded.
- Chat sessions — conversations students have had with the assistant.
- Active members — active people, out of the total in your workspace. Not a seat allowance: self-serve plans do not limit how many people you add.
A Getting started guide links the three first moves: Set up a course, Upload materials, and Try the assistant in the chat playground. Work through those and the assistant is answering from your content.
Uploading documents
Open Documents and choose Upload. Pick a file and the scope it should answer for, then confirm — you’ll see a “processing started” confirmation and the document appears in the table.
- Supported formats: PDF, DOCX, PPTX, TXT, MD, CSV, HTML, and EPUB.
- Size limit: up to 50 MB per file.
- Scope: choose Organisation (answers for every course) or Linked at upload time. Linked asks you to pick the courses and lessons the file should serve — you can pick several, and change them later without re-processing the file.
On upload, AI Teacher extracts the text, splits it into overlapping chunks, and embeds each chunk so it can be retrieved later. That’s the indexing step covered next.
Status & re-indexing
Each document carries a status badge that tracks indexing:
The documents table shows Document, Scope, Updated, Chunks, and Status. Search by filename, and sort by document name, last updated, or chunk count. Click any row to open its details — file size, chunk and token counts, scope, and when it was uploaded — along with the actions:
- Reprocess — re-index the file (e.g. after a failure or a pipeline change).
- Replace — upload a new version at the same scope; the old file is removed after the new one indexes.
- Delete — remove the document and its chunks for good.
Document scopes
Scope decides which questions a document can answer. A document is either Organisation-wide, or Linked to specific places. A linked document can serve several courses and lessons at once — “course A, plus lesson 7 of course B” is one upload with two links, not two uploads. Re-linking never re-processes the file.
| Scope | Answers for | Typical files |
|---|---|---|
| Organisation | Every course in the organisation | Handbooks, policies, academic-integrity guides |
| Linked | Only the courses and lessons you attach it to — any number of them | Syllabus, course slides, a reading, a problem set |
| Not linked | Nothing, until you link it somewhere | A finished upload you have not attached yet |
Retrieval cascades down the hierarchy. A question asked inside a lesson searches that lesson’s materials plus its course’s materials plus global materials. A course-level question searches the course plus global. With no scope, only global materials are searched — never another course’s files, and never another organization’s.
The assistant only treats a retrieved passage as authoritative above a similarity floor tuned so that off-topic questions match nothing at all. Below it the assistant considers the context insufficient and either asks you to rephrase or falls back to clearly-labelled general knowledge.
Courses & lessons
Courses give your materials structure. Open Courses to see them as cards — each with a title, optional course code, status, and description. Teachers and admins can Add course, then open a course to add Lessons under it.
This structure is what scoping rides on: file a syllabus at the course, a reading at the lesson, and student questions stay anchored to the right material. It’s also how LMS launches map in — a launch from a course (and lesson) lines up with the matching course and lesson here.
AI settings
Under AI settings you shape how the assistant presents itself and what it is allowed to say:
- Assistant persona — the name students see at the top of every conversation (for example “Bio Tutor”).
- Custom instructions — guidance appended to the system prompt for every chat in your tenant (tone, what to emphasize, how to handle off-topic asks).
- Answer scope — what happens when your materials don’t cover a question. This is the setting with the most effect on what students actually get, and it applies to the whole organisation.
| Answer from general knowledge | The default. The assistant answers from its own knowledge and clearly labels the answer as not coming from your materials. |
| Course materials only | The assistant only answers from your uploaded materials. For anything else it says the materials don’t cover it and suggests asking an instructor. |
Greetings and thanks are unaffected by either choice — “hi” never gets answered with “the course materials don’t cover this”. If you pick Course materials only before uploading anything, the settings page warns you: with nothing to answer from, the assistant will decline every question.
You can expand the assembled system prompt to see exactly what the model receives, and a live preview shows how an answer looks with your settings. Saving applies to new questions immediately.
Grounded & cited answers
The whole point of AI Teacher is that answers are traceable. The assistant works in three modes, chosen automatically per question:
- On-topic, with matching materials — it answers from the retrieved passages at temperature 0 and cites every claim with [Source N].
- On-topic, nothing retrieved — it answers briefly from general knowledge, prefixed with a mandatory “Based on general knowledge (please verify with your instructor)” disclaimer, so a student can always tell sourced answers apart.
- Greetings & small talk — it replies warmly and briefly, without lecturing.
This is why uploading and indexing matter: the richer and better-scoped your materials, the more questions land in the first mode — fully cited, straight from your content.
Users & roles
Manage your team under Users & roles. The Members tab lists everyone with their role and join date; the Roles tab summarizes what each role can do. Roles form a hierarchy:
| Admin | Manage billing & plan, add or remove users, edit all courses & scopes, configure AI settings. |
| Teacher | Upload & manage documents, edit their course scopes, view course analytics, use the chat playground. |
| Student | Ask the assistant and see cited answers. No document or settings changes. |
To add someone, use Invite: enter their email, an optional name, and a role (Student, Teacher, or Admin). They receive an email with a link to set their password and join your workspace.
Analytics
Analytics shows how the assistant is being used over the last 7, 30, or 90 days (toggle the range at the top). Four cards lead:
- Questions asked and Chat sessions — overall volume.
- Avg. confidence — how strongly answers were grounded in your materials.
- Tokens used — model usage feeding into your plan.
An Answer quality panel pairs the confidence indicator with student feedback (thumbs up / down and a satisfaction rate). Low confidence or a cluster of thumbs-down is usually a signal to add or re-scope materials.
Questions your materials didn’t cover lists the questions where the assistant found nothing in your documents and had to fall back on general knowledge. It is the clearest signal of which material to write next.
Documents nothing cited is the other half of the same question: processed documents no answer drew on in the period. Either nobody asks about them, or they are scoped where nobody can reach them — check which before deleting anything.
Billing & plans
The Billing screen shows your current plan, its status, and the renewal date, plus a button to manage payment details. Plans come in three tiers — Free, Pro, and Enterprise — with a monthly / annual toggle.
- Free — 100 MB of materials and 50,000 tokens a month. Courses and people are not capped. No LMS connection, no analytics, and the widget carries a small badge.
- Pro — 5 GB and 2 million tokens a month, plus LMS / LTI, analytics and your own branding. Going over is billed at €5 per extra 100,000 tokens.
- Enterprise — limits set to fit you, SSO, audit export, agreed support response times, and a self-hosted option.
Usage meters track documents indexed, storage used, tokens this month, and active users against your plan’s limits — limits that are unmetered on a self-serve plan simply read “Unlimited”. The invoice history table lists each invoice with its date, number, amount, status, and a receipt link.
Two more controls live here. Token packs let you buy extra tokens up front, either once or recurring; tokens already granted stay if you cancel the recurring purchase. Overage settings let you choose how full your monthly allowance gets before you are warned, and offer a Stop at included limit switch — with it on, chat is blocked the moment the included tokens run out and you are never billed beyond the plan price.
Data requests
If a student or colleague asks what you hold about them, or asks you to delete it, an admin can do both from the platform — and anyone can do both for themselves from Your account, in the menu under their name, without asking an admin at all.
- Export gives you a JSON file with everything the platform holds about that person: their profile, every chat session and message, their activity trail, the documents they uploaded, the courses they are enrolled on, their usage, and which LMS courses they opened.
- Delete removes their account, chat history, LMS access records and personal details, and strips their name, email and IP address out of the activity trail while keeping the record that an action happened. It is refused for the organisation’s last remaining admin — promote someone else first, or nobody is left who can run the organisation.
The file contents of uploaded documents are not in the export — download those from the Documents screen. Names and email addresses also exist in the sign-in system, which has its own export.
Embed the widget
Students can chat with the assistant right inside your own site or LMS via a small, self-contained widget. Drop one script tag onto a page and a floating chat bubble appears in the corner; it lazy-loads the chat the first time it’s opened.
<script src="https://YOUR-WIDGET-HOST/embed.js"></script>To scope a placement to a specific course or lesson — and set the window title — add the optional data attributes:
<script
src="https://YOUR-WIDGET-HOST/embed.js"
data-title="Biology 101"
data-course-id="YOUR-COURSE-ID"
data-lesson-id="YOUR-LESSON-ID"
></script>LMS & LTI 1.3
Connect a learning management system to sync courses and enrollments and to let students launch the assistant from inside a lesson via LTI 1.3. This is all configuration — there’s no API to call. Open LMS connectors and Add connector, then pick your platform: Moodle, Canvas, Blackboard Learn, Brightspace (D2L), LearnWorlds, or Custom.
1 · Connect for sync
The connection step asks for that platform’s API credentials so AI Teacher can pull courses and enrollments — for example a web service token on Moodle, or an access token / developer key on Canvas. The wizard shows the exact steps for the LMS you chose.
2 · Set up LTI 1.3
For student launches, register AI Teacher as an LTI tool. The wizard displays the values to paste into your LMS — a Login Initiation URL, a Redirect / Launch URI, and a JWKS (public keyset) URL (some platforms also ask for an Issuer URL). Field names vary by LMS, so the wizard labels them exactly as your platform calls them. After you save in the LMS, paste the Client ID and Deployment ID it generates back into the wizard.
3 · Place it in a lesson
Add the tool as an activity or link in the relevant course module. When a student launches it, the LMS sends a context_id (the course) and a resource_link_id (the placement / lesson). AI Teacher maps those to your course and lesson so retrieval is automatically scoped — use the connector’s Resource links dialog to map a placement to a specific lesson.
Always-on bubble
On platforms with a site-wide custom-HTML/JS hook (Moodle’s Appearance → Additional HTML, Canvas theme JS, and others), you can paste the embed snippet once to show the bubble on every page. Where no such hook exists (Blackboard, Brightspace), the LTI placement above is the way in, and the bubble lives within that placement.