DATA ?= data
RUN ?= runs/receipts
BACKEND ?= local
BASE_MODEL ?= Qwen/Qwen2.5-1.5B-Instruct
JUDGE ?= gpt-4.1-mini
COUNT ?= 1500

.PHONY: all serve generate export curate train eval clean

all: export curate train eval

serve:
	distillery serve

generate:
	python generate.py --count $(COUNT)

export:
	distillery export --tag task=receipt-extraction --only-ok --out $(DATA)/conversations.jsonl

curate: export
	distillery curate --in $(DATA)/conversations.jsonl --out $(DATA) --val-fraction 0.1

train: curate
	distillery train --data $(DATA) --backend $(BACKEND) --base-model $(BASE_MODEL) --out $(RUN) --yes

eval:
	distillery eval --run $(RUN) --schema schema.json --judge $(JUDGE) $(EVAL_FLAGS)

clean:
	rm -rf $(DATA) $(RUN)
