Skip to content

BFCL/edge: make single-stream a first-class HTTPClientConfig option (drop accuracy-only override) #395

Description

@Palanivelg

Follow-up to PR #346 (thread #346 (comment)).

The accuracy-only setup in commands/benchmark/execute.py currently forces num_workers=1, max_connections=1, target_concurrency=1 for every accuracy-only run of every workload to satisfy the edge compliance single_stream gate. This (a) silently throttles existing accuracy workflows (DeepSeek-R1, GPQA, AIME) to single-stream with no opt-out, and (b) inverts the checker's purpose by rewriting the persisted config.yaml so the gate can't fail.

Proposed fix (per @viraatc):

  • Add a single_stream: bool field to HTTPClientConfig (endpoint_client/config.py) with a --single-stream cyclopts alias.
  • Resolve it in the model validator to num_workers=1, max_connections=1; make it mutually exclusive with explicitly setting num_workers/max_connections (validator raises if both given).
  • Edge YAML sets settings.client.single_stream: true (already has target_concurrency: 1).
  • Delete the accuracy-only override block, the mirrored log-only branch in _run_benchmark_async, and TestSetupBenchmarkAccuracySingleStream.

Net effect: persisted config.yaml honestly reflects what ran, the compliance gate validates rather than being satisfied by a rewrite, and non-edge accuracy runs keep their throughput.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions