Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/vruizz22/innova-ai-engine/llms.txt

Use this file to discover all available pages before exploring further.

Innova AI Engine is the asynchronous AI layer powering SuperProfe. It consumes events from AWS SQS, runs knowledge-tracing calibration, error classification, OCR, guide ingestion, and student-submission grading, then writes results back to Postgres — all without a monolithic server.

Introduction

Understand what the engine does, how it fits into the SuperProfe platform, and which problems each worker solves.

Quickstart

Install dependencies, configure environment variables, and run your first worker locally in minutes.

Architecture

Full pipeline diagram, Clean Architecture breakdown, and deploy-order constraints between the backend and engine stacks.

Workers

Reference for all ten Lambda functions: triggers, timeouts, memory, and payload schemas.

Core capabilities

BKT Calibration

Nightly Bayesian Knowledge Tracing parameter fitting via brute-force grid search over 4 skill parameters.

IRT 2PL Fitting

Item Response Theory calibration with L-BFGS-B MLE — discrimination and difficulty per exercise, no GPU needed.

LLM Error Classifier

Batched Claude Haiku classification against a 2,600+ entry procedural error taxonomy with prompt caching.

OCR Vision Pipeline

Gemini 2.5 Flash primary OCR with automatic Claude vision escalation when confidence falls below threshold.

Get started

1

Install dependencies

Use uv to create the virtualenv and install all packages, including dev extras:
uv sync --all-extras
2

Configure environment

Copy the example env file and fill in your API keys and database URL:
cp .env.example .env
# Set ANTHROPIC_API_KEY, GEMINI_API_KEY, DATABASE_URL
3

Start shared infrastructure

The engine shares Postgres, MongoDB, and LocalStack with the backend. Start them from the backend repo:
# In ../innova-backend-serverless:
docker compose up -d
4

Run a worker locally

Invoke any handler directly with a simulated event — no Lambda runtime needed:
uv run python -c "from src.pipeline.nightly_bkt import handler; handler({}, None)"
The engine must be deployed after the backend stack (innova-backend-serverless). SQS queues, S3 buckets, and SSM parameters are all created by the backend stack and referenced by ARN in serverless.yml.

Build docs developers (and LLMs) love