Profiler
pecca profile applies deterministic rules to each call's logged outputs. No LLM is involved.
- Compute
n_rows,n_unique_outputs,unique_ratio. - If ≥ 95% of outputs are JSON objects with the same keys: extraction (profiled only; not replaceable in v0.1).
- Else if ≥ 98% parse as numbers: regression.
- Else if
n_unique <= max(50, 5% of rows)andunique_ratio <= 0.05: classification. - Else: free_text, not replaceable ("outputs are not a closed set").
- Input type:
text,multi_textortabular. replaceablealso needs at leastmin_rowsrows (default 500).- Languages (≥ 5% share, on a sample of 500 inputs),
min_class_countandn_classes_below_20are recorded.
With 60 classes you need at least 1,200 rows to be a "closed set" (5% rule).