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.

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’s ast module (static analysis only), which means students can experiment freely without risk of side effects.

How chambers work

1

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).
2

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.
3

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.
4

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.
5

Advance on success

Once a chamber is validated, the team is moved automatically to the next chamber in the sequence. After Chamber 6 (Model), the team enters Phase 2 (Missions).

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.
If a team exhausts all 5 attempts without a correct answer, the app shows the full solution, forces advancement to the next chamber, and applies a −10 point penalty (separate from any hint costs already accrued).

The six chambers

#TitleConceptSealGoal
1Archivo de campañasExperimentSello de la BibliotecaSelecciona la campaña que agrupará todas las ejecuciones.
2Cámara de las misionesRunSello de la MisiónAbre una ejecución llamada Mision_Coruscant y delimítala con with.
3Sala de estrategiasParametersSello de la EstrategiaRegistra el diccionario parametros como decisiones previas.
4Consejo de evaluaciónMetricsSello del ConsejoRegistra el diccionario metricas como resultados de evaluación.
5Cámara de holocronesArtifactsSello del HolocrónRegistra matriz_confusion.png como archivo de evidencia.
6Archivo de modelosModelSello del Jedi entrenadoConserva 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.”
mlflow.set_experiment
mlflow.start_run
mlflow.log_param
mlflow.log_params
mlflow.log_metric
mlflow.log_metrics
mlflow.log_artifact
mlflow.sklearn.log_model
Additionally, the validator rejects any code that contains 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("Biblioteca_Jedi_Digits")
The validator checks that 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 a with 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):
with mlflow.start_run(run_name="Mision_Coruscant"):
    pass
Common mistakes caught here include using 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.

Build docs developers (and LLMs) love