Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/elenacarino-max/Pildora4_ext_StarWars/llms.txt

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

A session is the primary unit of classroom activity in MLflow Jedi. Each session has a unique JEDI-XXXX code that teams use to join, and an isolated question set that is chosen at random when the session is created — so two sessions running on the same day will present different questions. Sessions persist in the database after the activity ends, which means you can return to any previous session to review scores and exported results.

Creating a session

1

Open the teacher panel

Log in to Profesorado and authenticate with the teacher password.
2

Click Crear nueva sesión

The button appears at the top-right of the panel header. The app calls create_session() internally.
3

Receive the JEDI code

The application generates a code of the form JEDI-XXXX, where XXXX is a random four-digit suffix between 1000 and 9999 (e.g. JEDI-4821). The prefix is always JEDI, as defined by the SESSION_PREFIX constant in config.py.
code = f"{SESSION_PREFIX}-{secrets.randbelow(9000) + 1000}"
# e.g. "JEDI-4821"
If a collision is detected the app retries up to 20 times before raising an error.
4

Questions are assigned automatically

At creation time, choose_session_question_ids() selects six questions at random — one per core MLflow concept: Experiment, Run, Parameters, Metrics, Artifacts, and Model. The IDs are stored as a JSON array in the session row and are fixed for the lifetime of the session.
5

Session opens immediately

The new session is inserted with status = 'open'. Teams can join and submit code right away. Share the JEDI-XXXX code with the class.

Session states

Every session is either open or closed. The toggle button in the panel header switches between them.
StateWhat it means
Open (open)Teams can join by entering the code and submit answers to challenges. The activity is live.
Closed (closed)No new teams can join. Existing teams cannot submit new attempts. Use this to freeze the activity at the end of class.
Click Cerrar sesión to close an open session, or Reabrir sesión to reopen it. The change takes effect immediately — all connected team browsers will reflect the new state on their next interaction.

Multiple sessions

All sessions are stored persistently and listed in the Sesión activa en el panel dropdown, sorted by creation date (most recent first). You can switch between sessions at any time by selecting a different code from the dropdown. This is useful for:
  • Reviewing scores and defenses from a previous class
  • Exporting results for a session you forgot to export earlier
  • Comparing outcomes across multiple cohorts
Selecting a session in the dropdown does not affect whether that session is open or closed — it only controls which session is displayed in the panel.

Session limits

Two configuration values in config.py govern session capacity:
SettingEnvironment variableDefaultDescription
MAX_TEAMSMLFLOW_JEDI_MAX_TEAMS10Maximum number of teams that can join a single session
SESSION_PREFIX"JEDI"Fixed prefix prepended to every session code
To allow more than ten teams, set MLFLOW_JEDI_MAX_TEAMS in your .env file or Docker Compose environment block before starting the application.
# .env
MLFLOW_JEDI_MAX_TEAMS=15

Sending a global hint

The Pista o aviso global field lets you broadcast a message to every team in the session simultaneously. The message appears in all team sidebars as soon as you click Enviar al Archivo.
  • Maximum length: 500 characters (enforced by set_global_hint(), which trims the string before saving).
  • The hint is stored per session. Sending a new message overwrites the previous one.
  • Use this for time warnings, conceptual nudges, or clarifications — for example:
    “Revisad si el dato se conoce antes o después de entrenar”
# database.py — set_global_hint
def set_global_hint(session_id: str, hint: str) -> None:
    with connect() as db:
        db.execute(
            "UPDATE sessions SET global_hint=? WHERE id=?",
            (hint.strip()[:500], session_id)
        )

Deleting a session

Inside the Copias de seguridad y exportación section of the panel there is a collapsible Zona de pruebas: borrar sesión area. Check the confirmation checkbox and click Borrar esta sesión to permanently delete the session. The delete_session() function issues a single DELETE against the sessions table. Because the database schema uses ON DELETE CASCADE, all child records are removed automatically:
  • All teams in the session
  • All code submission attempts
  • All hint usage records
  • All mission runs and their stored metrics
  • All defense submissions
Deleting a session is irreversible. There is no undo. Export the JSON and CSV results from the panel before deleting any session you may want to reference later.

Build docs developers (and LLMs) love