-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
78 lines (63 loc) · 2.59 KB
/
Copy pathMakefile
File metadata and controls
78 lines (63 loc) · 2.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
INPUTS ?= ./examples/accc-scams
BUILD_DIR ?= ./build/extracted
OUT_DIR ?= ./out
PACK_NAME ?= scam-resilience-au
COMPILER_MODEL ?= offlineaid-compiler
OCR_MODEL ?= gemma4-26b-ocr
OLLAMA_BASE_URL ?= http://localhost:11434/v1
DATASET_DIR ?= ./build/dataset
TRAIN_EN ?= ./build/train_en.jsonl
CORPUS_DIR ?= ./build/extracted
LANGS ?= zh ar
EVAL_DIR ?= ./eval
EVAL_DB ?= $(OUT_DIR)/$(PACK_NAME).db
.PHONY: all pack clean verify test scrape translate validate upload eval eval-retrieval eval-mac eval-device eval-write
all: pack
pack:
@mkdir -p $(BUILD_DIR) $(OUT_DIR)
@T0=$$(date +%s); \
uv run --extra ocr python extract.py "$(INPUTS)" --output-dir "$(BUILD_DIR)" --model "$(OCR_MODEL)" --base-url "$(OLLAMA_BASE_URL)" && \
uv run --extra agent python agent.py --input "$(BUILD_DIR)" --output "$(OUT_DIR)/$(PACK_NAME).oapack.zip" --model "$(COMPILER_MODEL)" --base-url "$(OLLAMA_BASE_URL)" && \
uv run python packager.py verify "$(OUT_DIR)/$(PACK_NAME).oapack.zip" && \
T1=$$(date +%s); \
echo "{\"wall_time_s\": $$(($$T1-$$T0))}" > "$(OUT_DIR)/$(PACK_NAME).build-time.json"
clean:
rm -rf $(BUILD_DIR) $(OUT_DIR)
verify:
uv run python packager.py verify "$(OUT_DIR)/$(PACK_NAME).oapack.zip"
test:
uv run --extra agent --extra ocr --extra scrape pytest -q
scrape:
@mkdir -p $(BUILD_DIR)
uv run --extra scrape python scrape.py --output-dir "$(BUILD_DIR)"
validate:
uv run --extra agent python validate.py \
--input "$(TRAIN_EN)" \
--corpus-dir "$(CORPUS_DIR)" \
--threshold 0.6
translate:
uv run --extra agent python translate.py \
--input "$(TRAIN_EN)" \
--output-dir ./build \
--langs $(LANGS)
upload:
@mkdir -p $(DATASET_DIR)
cp ./build/train_en.jsonl ./build/train_zh.jsonl ./build/train_ar.jsonl \
./build/train_multilingual.jsonl $(DATASET_DIR)/
uv run --extra upload kaggle datasets version \
-p $(DATASET_DIR) \
-m "v2: ~2500 records en+zh+ar"
# ─── Eval harness ─────────────────────────────────────────────────────────
eval: eval-retrieval eval-mac eval-device eval-write
eval-retrieval:
uv run pytest $(EVAL_DIR)/test_retrieval.py -v --junitxml=$(EVAL_DIR)/.retrieval.xml
eval-mac:
uv run pytest $(EVAL_DIR)/test_mac_latency.py -v --junitxml=$(EVAL_DIR)/.mac.xml
eval-device:
uv run pytest $(EVAL_DIR)/test_device_e2e.py -v --junitxml=$(EVAL_DIR)/.device.xml
eval-write:
uv run python $(EVAL_DIR)/perf_writer.py \
--retrieval $(EVAL_DIR)/.retrieval.xml \
--mac $(EVAL_DIR)/.mac.xml \
--device $(EVAL_DIR)/.device.xml \
--output $(EVAL_DIR)/PERF.md