Module Overview

aita-core is organized into the following modules:

Module

Description

aita_core.config — Configuration

CourseConfig dataclass and global config management. All course-specific settings are defined here. Supports runtime overrides via JSON.

aita_core.app — Streamlit Application

Streamlit application entry point. Contains the login page (Google OAuth or student ID), chat page (multi-turn conversation with source citations), and page routing.

aita_core.rag — RAG Pipeline

RAG (Retrieval-Augmented Generation) pipeline. Handles query embedding, FAISS retrieval with week filtering, homework injection, prompt construction, and LLM response generation.

aita_core.ingest — Document Ingestion

Document ingestion pipeline. Reads PDFs, LaTeX, and web pages; chunks text; generates embeddings; and builds the FAISS index. Supports custom collectors for non-standard directory layouts.

aita_core.db — Database

SQLite database for interaction logs, student feedback, and feature requests. Auto-initializes tables on first use.

aita_core.admin — Admin Dashboard

Admin dashboard with interaction history, feedback viewer, feature request management, and course settings editor.

aita_core.utils — Utilities

Helper utilities for JSONL serialization.

Additionally, oauth_store.py provides module-level storage for the OAuth PKCE code verifier (needed to persist across Streamlit reruns).