The chambers are the first phase of the MLflow Jedi activity. Each chamber focuses on exactly one MLflow concept and asks students to write — or correct — a short snippet of MLflow tracking code. The six chambers are designed to be completed in order: Experiment → Run → Parameters → Metrics → Artifacts → Model. Completing a chamber earns a named seal and adds 20 points to the team score, then unlocks the next challenge. No code is ever executed on the server; every submission is inspected with Python’sDocumentation 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.
ast module (static analysis only), which means students can experiment freely without risk of side effects.
How chambers work
Read the question
Each chamber presents a concept panel with a brief theory note, a prompt that explains what the code must accomplish, and an optional context block showing variables already available in scope (such as
parametros or metricas dictionaries).Write MLflow code
The code editor is pre-filled with starter code — sometimes a complete-but-wrong snippet to fix, sometimes a bare
pass to replace. Students type or edit their answer directly in the editor.Submit for validation
Pressing Submit sends the code to the AST validator. The validator parses the code, walks the syntax tree, and checks that the expected MLflow call is present, that no forbidden constructs appear, and that any required arguments or literals match exactly.
Receive feedback
If the answer is correct, a success message is shown and the seal is awarded. If incorrect, a targeted feedback message explains what was wrong — without revealing the full solution — and the attempt counter decreases by one.
Attempt and hint rules
Each chamber allows up to 5 attempts. The remaining attempts are displayed in the sidebar so teams always know how many tries they have left. Each chamber also offers up to 3 progressive hints, each costing 5 points from the team score. Hints are revealed one at a time and follow a consistent escalation pattern:- Hint 1 — Concept context: a sentence explaining what category of data or action is involved (e.g. “Una campaña agrupa runs relacionadas.”).
- Hint 2 — Category name: the specific MLflow category needed (e.g. “La función pertenece a la categoría Experiment.”).
- Hint 3 — Partial syntax: the function name with blanks masking a few characters (e.g.
mlflow.set_e_________(...)), so students can complete it themselves.
The six chambers
| # | Title | Concept | Seal | Goal |
|---|---|---|---|---|
| 1 | Archivo de campañas | Experiment | Sello de la Biblioteca | Selecciona la campaña que agrupará todas las ejecuciones. |
| 2 | Cámara de las misiones | Run | Sello de la Misión | Abre una ejecución llamada Mision_Coruscant y delimítala con with. |
| 3 | Sala de estrategias | Parameters | Sello de la Estrategia | Registra el diccionario parametros como decisiones previas. |
| 4 | Consejo de evaluación | Metrics | Sello del Consejo | Registra el diccionario metricas como resultados de evaluación. |
| 5 | Cámara de holocrones | Artifacts | Sello del Holocrón | Registra matriz_confusion.png como archivo de evidencia. |
| 6 | Archivo de modelos | Model | Sello del Jedi entrenado | Conserva el modelo entrenado bajo modelo_digits. |
Allowed MLflow calls
The AST validator maintains a strict allowlist. Any call outside this set causes immediate rejection with the message “[call] no está autorizada en esta terminal.”import statements, from … import constructs, lambda expressions, global, or nonlocal declarations — these are not tracking instructions.
Example: Chamber 1 — Archivo de campañas
Chamber 1 asks students to select the experiment that will group all Digits runs. The starter code is already the correct answer, making this an orientation challenge designed to confirm students understand the call signature before they must construct it from scratch in later chambers. Starter code (= correct answer):mlflow.set_experiment is present and that the literal string "Biblioteca_Jedi_Digits" appears as its first argument. Any other experiment name — even a minor typo like "Biblioteca_Jedy_Digit" — will fail.
Example: Chamber 2 — Cámara de las misiones
Chamber 2 asks students to open a run using awith block and give it a descriptive name. The validator requires both the mlflow.start_run call and the presence of a with statement in the AST.
Starter code (= correct answer):
mlflow.start_run without with (the run would not auto-close on error), or using mlflow.set_experiment by mistake (wrong call entirely). Both are caught with specific feedback messages.
All code submitted in chambers and missions is validated using Python’s built-in
ast module — it is parsed into a syntax tree and inspected, but never executed on the server. Students can freely use any variable names or structures without risk of runtime errors or side effects.