#!/bin/bash _S="${BASH_SOURCE[0]:-$0}"; ROOT="${ROOT:-$(cd "$(dirname "$_S")" && pwd)}"; ROOT="${ROOT%%/results/*}"; ROOT="${ROOT%%/Benchmark_eval/*}"; ROOT="${ROOT%%/Benchmarks/*}" # RELOC_ROOT_MARK # Rebuild the ChatTS eval requests (inference-ready) from the official Zenodo dataset_a/b. # Adapters are fully deterministic (no seed/shuffle) — re-running gives identical output. # dataset_a = 159 (univariate) · dataset_b = 400 (multivariate). Zenodo 10.5281/zenodo.14349206. set -euo pipefail PY=${PY:-/root/miniconda3/bin/python} DIR=$ROOT/Benchmark_eval/ChatTS_test B=$DIR/_build DA=${DA:-$ROOT/Benchmarks/ChatTS_test/14349206/dataset_a.json} DB=${DB:-$ROOT/Benchmarks/ChatTS_test/14349206/dataset_b.json} [ -f "$DA" ] && [ -f "$DB" ] || { echo "raw dataset_a/b missing under $(dirname "$DA")"; exit 1; } A() { PYTHONPATH="$B" "$PY" "$B/adapters/$1" "${@:2}" 2>&1 | tail -1; } rm -f "$DIR"/*.jsonl echo "== dataset_a (159, univariate) ==" A chatts_adapter.py --input-file "$DA" --dataset-tag dataset_a --output-file "$DIR/chatts_a_qa.jsonl" # QA -> scored by RAGAS bridge A chatts_align_adapter.py --dataset-file "$DA" --output-file "$DIR/chatts_a_align.jsonl" # numeric, gt = ChatTS generator attrs A chatts_tsalign_metrics_adapter.py --dataset-file "$DA" --output-file "$DIR/chatts_a_tsametrics.jsonl" # numeric, gt = TS-Align own defs (fairest) echo "== dataset_b (400, multivariate) ==" A chatts_adapter.py --input-file "$DB" --dataset-tag dataset_b --output-file "$DIR/chatts_b_qa.jsonl" A chatts_mv_adapter.py --dataset-file "$DB" --output-file "$DIR/chatts_b_mv.jsonl" # mv text (rougeL) A chatts_mv_metrics_adapter.py --dataset-file "$DB" --output-file "$DIR/chatts_b_mvmetrics.jsonl" # mv numeric echo "=== counts ===" for f in "$DIR"/*.jsonl; do printf " %-28s %s\n" "$(basename "$f")" "$(wc -l < "$f")"; done echo "DONE -> $DIR"