Skip to content

Add preflight - #196

Open
JosephMarinier wants to merge 4 commits into
mainfrom
joseph/add-preflight
Open

Add preflight#196
JosephMarinier wants to merge 4 commits into
mainfrom
joseph/add-preflight

Conversation

@JosephMarinier

@JosephMarinier JosephMarinier commented Jul 29, 2026

Copy link
Copy Markdown
Collaborator
  • Fix strict LLM check
    See 6886ad6 for more details.
  • Suppress usage: block in eva --help as it is completely redundant with the options below.
  • Migrate deprecated pipecat runner to worker
  • Add preflight
    Probe each configured model before a run starts and abort early on a credential/connectivity failure, instead of discovering it only after every record has exhausted its attempts.
    • eva/orchestrator/preflight.py: run_preflight probes the run's models by reusing the real client/factory paths (LiteLLMClient for the LLM, the pipecat STT/TTS service factories, the audio-LLM client). It is conservative, so only a definitive error fails a probe. S2S has no live probe yet (logged).
    • Wired into BenchmarkRunner._run() — the single point both a fresh run and a rerun funnel through — gated on "there's something to run" (pending records + attempts remaining), so it fires exactly once per invocation and only when conversations will actually run.
    • Added configs --no-preflight and --preflight-timeout-seconds.

See 6886ad6 for more details.
as it is completely redundant with the options bellow.
@JosephMarinier JosephMarinier self-assigned this Jul 29, 2026
Probe each configured model before a run starts and abort early on a credential/connectivity failure, instead of discovering it only after every record has exhausted its attempts.

- eva/orchestrator/preflight.py: run_preflight probes the run's models by reusing the real client/factory paths (LiteLLMClient for the LLM, the pipecat STT/TTS service factories, the audio-LLM client). It is conservative, so only a definitive error fails a probe. S2S has no live probe yet (logged).
- Wired into BenchmarkRunner._run() — the single point both a fresh run and a rerun funnel through — gated on "there's something to run" (pending records + attempts remaining), so it fires exactly once per invocation and only when conversations will actually run.
- Added configs `--no-preflight` and `--preflight-timeout-seconds`.
Comment thread src/eva/models/config.py
Comment thread src/eva/models/config.py
dry_run: bool = Field(False, description="Validate configuration without running")
preflight: bool = Field(
True,
description="Skip the pre-flight model check. By default, probe each configured model "

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
description="Skip the pre-flight model check. By default, probe each configured model "
description="Run the pre-flight model check. By default, probe each configured model "

@raghavm243512 raghavm243512 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good besides description

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants