.PHONY: install test lint types check run lock-requirements modal-profile modal-train-v2 modal-merge-v2 modal-eval-v2 modal-eval-stage2-v2 prepare-minicpm5-text-sft build-vivamais-qa-eval modal-minicpm5-text-prepare modal-minicpm5-text-train modal-minicpm5-text-eval modal-eval-vivamais-qa MODAL_PROFILE := marinaleitecabrera install: uv sync test: uv run pytest lint: uv run ruff check . uv run ruff format --check . types: uv run mypy check: lint types test run: VIVAMAIS_BACKEND=mock uv run python app.py lock-requirements: @echo "requirements.txt is manually maintained. Add new deps to pyproject.toml and copy the top-level lines here." modal-profile: modal profile activate $(MODAL_PROFILE) modal-train-v2: MODAL_PROFILE=$(MODAL_PROFILE) uv run python finetune/vision/train.py --modal --detach \ --train-json finetune/labeled/v2/all_train.json \ --config finetune/vision/configs/minicpmv4_6_lora_sft_v2.yaml \ --hf-repo marinarosa/vivamais-vision-lora-v2 modal-merge-v2: MODAL_PROFILE=$(MODAL_PROFILE) HF_TOKEN=$$(hf auth token) modal run modal/merge_export.py modal-eval-v2: MODAL_PROFILE=$(MODAL_PROFILE) modal run modal/eval_pipeline.py --phase all modal-eval-stage2-v2: MODAL_PROFILE=$(MODAL_PROFILE) modal run modal/stage2_eval_pipeline.py --phase all build-vivamais-qa-eval: uv run python finetune/build_vivamais_qa_eval.py prepare-minicpm5-text-sft: uv run --with datasets python finetune/prepare_minicpm5_text_sft.py modal-minicpm5-text-prepare: MODAL_PROFILE=$(MODAL_PROFILE) modal run modal/minicpm5_text_pipeline.py::main --step prepare modal-minicpm5-text-train: MODAL_PROFILE=$(MODAL_PROFILE) modal run --detach modal/minicpm5_text_pipeline.py::main --step all modal-minicpm5-text-eval: MODAL_PROFILE=$(MODAL_PROFILE) modal run modal/minicpm5_text_pipeline.py::main --step eval modal-eval-vivamais-qa: MODAL_PROFILE=$(MODAL_PROFILE) modal run modal/vivamais_qa_eval_pipeline.py --phase $(PHASE)