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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions