SEZ9 opened a new pull request, #11553:
URL: https://github.com/apache/seatunnel/pull/11553

   ### Purpose of this pull request
   
   Implements #11549 — adds a standalone accuracy benchmark for the AI CLI 
under `seatunnel-cli/benchmark/`. All new files; no product code changes.
   
   The benchmark answers a question the project previously could not answer 
quantitatively: **when the CLI's prompts, connector metadata, or repair logic 
change, does config-generation accuracy actually improve — and by how much, for 
which models?**
   
   **What's included** (19 files, ~4,000 lines):
   
   | Component | Files | Role |
   |-----------|-------|------|
   | Task suite | `tasks/tier{1,2,3}_*.json` | 100 declarative tasks: 20 simple 
/ 45 medium / 35 complex-DAG, 12 ETL categories, 10 Chinese prompts, 18 rule 
probes targeting known LLM failure modes |
   | L1 static gate | `scoring.py` | pyhocon parse + connector metadata + 
per-task assertions (offline) |
   | L2/L3 gates | `execution.py` | engine `--dry-run static`; real job 
execution on the official `apache/seatunnel` image (batch: exit code; 
streaming: 60s health) |
   | Data environment | `docker/` | docker-compose with 
MySQL/PostgreSQL/Kafka/ClickHouse/Elasticsearch/MinIO + optional 
Doris/StarRocks profile, seeded schemas/topics |
   | Runner | `runner.py` | model matrix (`models.json` or 
`--provider/--model/--api-key`), repair loop driven by the failing gate's real 
errors, `--trials` for pass^k, CLI version + commit stamping |
   | Reports | `report.py` | layer funnel, repair curve (pass@1 / pass@≤k), 
per-tier & per-category matrices → console + summary.md/csv + results.json |
   | Entry point | `run_benchmark.sh` | one command: dependency install → 
environment preflight → run → report |
   | Tests | `tests/test_benchmark_scoring.py` | 12 tests over the L1 scorer 
and task-suite integrity |
   
   **Design guarantees**:
   - Gates mirror the CLI's own check → dry-run → run pipeline and degrade 
gracefully (missing engine/Docker disables deeper gates per task, never fails 
the run).
   - All verdicts are deterministic (exit codes, liveness, regex assertions) — 
no LLM-as-judge.
   - Credentials are environment variables only, never written to files (ASF 
compliance); `results/` and `models.json` are git-ignored.
   - Reports are stamped with the CLI version + git commit, so any CLI change 
can be A/B measured on identical tasks.
   
   **Track record**: runs of this benchmark found and isolated #11508 (fixed in 
#11509), #11510 (image-level opengauss-jdbc driver conflict — workaround 
documented inline and applied identically for every model), and #11511. 
Measured results for 7 models are documented on the website (AI CLI → Model 
Benchmark, #11551).
   
   ### Does this PR introduce _any_ user-facing change?
   
   No changes to shipped behavior. Adds an optional developer tool under 
`seatunnel-cli/benchmark/` with its own README; two `.gitignore` entries for 
runtime artifacts.
   
   ### How was this patch tested?
   
   - `tests/test_benchmark_scoring.py`: 12 tests covering the L1 scorer 
(structure checks, connector matching, assertion evaluation, 
credential-placeholder handling) and task-suite integrity (100 tasks load, 
unique ids, compilable regexes, service references match the compose file). 
Full seatunnel-cli suite: 54 passed.
   - The extracted PR tree was verified self-contained: tests pass and all 100 
tasks load from a clean checkout with no repo-local dependencies.
   - End-to-end: the harness has executed ~1,150 task evaluations across 7 
Bedrock models (L1) and 3 models through the full L1→L3 pipeline with real job 
execution and repair loops — the published numbers in #11551 were produced by 
exactly this code.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to