From 5ef1fd65db371bc3aa5d87c7e0322d2ba0ef4cd8 Mon Sep 17 00:00:00 2001 From: TPTBusiness Date: Sat, 4 Apr 2026 10:35:10 +0200 Subject: [PATCH] fix: Use num_api_keys instead of len(api_keys) for round-robin - Fix API key index calculation to respect --api-keys parameter - Previously always used all available keys regardless of setting - Now correctly assigns only requested number of API keys Usage: python predix_parallel.py --runs 25 --api-keys 1 -m openrouter -> All 25 runs use API Key 1 only --- predix_parallel.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/predix_parallel.py b/predix_parallel.py index 998e3711..f0d0960d 100644 --- a/predix_parallel.py +++ b/predix_parallel.py @@ -125,7 +125,7 @@ class ParallelRunner: # Initialize run states for i in range(1, num_runs + 1): # Round-robin API key assignment - api_key_idx = (i - 1) % max(len(self.api_keys), 1) + api_key_idx = (i - 1) % max(self.num_api_keys, 1) run_state = RunState(run_id=i, api_key_idx=api_key_idx, model=model) self.runs.append(run_state) @@ -180,8 +180,8 @@ class ParallelRunner: env["OPENAI_API_BASE"] = "https://openrouter.ai/api/v1" env["CHAT_MODEL"] = os.getenv("OPENROUTER_MODEL", "openrouter/qwen/qwen3.6-plus:free") - # If we have 2 API keys, configure LiteLLM for load balancing - if len(self.api_keys) >= 2: + # If we configured multiple API keys AND have enough keys, use load balancing + if self.num_api_keys >= 2 and len(self.api_keys) >= 2: env["OPENAI_API_KEY"] = f"{self.api_keys[0]},{self.api_keys[1]}" env["LITELLM_PARALLEL_CALLS"] = "2" elif self.model == "local":