aadi-joshi commited on
Commit
a92cbbf
·
1 Parent(s): c2a35d8

Fix inference.py crash when env vars not set

Browse files

Moved API_BASE_URL, MODEL_NAME, HF_TOKEN reads from module level
(os.environ["KEY"] which raises KeyError) to os.environ.get() at
module level. llm_client is now initialized inside main() after
explicit validation. Missing vars print a usage message and exit 0
instead of crashing with an unhandled exception.

Files changed (1) hide show
  1. inference.py +25 -5
inference.py CHANGED
@@ -37,9 +37,9 @@ from openai import OpenAI
37
 
38
  # Configuration
39
 
40
- API_BASE_URL: str = os.environ["API_BASE_URL"]
41
- MODEL_NAME: str = os.environ["MODEL_NAME"]
42
- HF_TOKEN: str = os.environ["HF_TOKEN"]
43
  ENV_BASE_URL: Optional[str] = os.environ.get("ENV_BASE_URL")
44
  MAX_STEPS: int = int(os.environ.get("MAX_STEPS", "40"))
45
  TEMPERATURE: float = float(os.environ.get("TEMPERATURE", "0.05"))
@@ -67,9 +67,9 @@ TASK_NAMES: Dict[int, str] = {
67
  5: "Very Hard -- Referential Maze",
68
  }
69
 
70
- # LLM client
71
 
72
- llm_client = OpenAI(base_url=API_BASE_URL, api_key=HF_TOKEN)
73
 
74
  # System prompt
75
 
@@ -416,6 +416,26 @@ def _agent_loop(initial_obs, step_fn, task_id: int, env_type: str) -> float:
416
  # Main
417
 
418
  def main() -> None:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
419
  print("=" * 70, file=sys.stderr)
420
  print("DB-ER Baseline Inference Script", file=sys.stderr)
421
  print(f"Model: {MODEL_NAME}", file=sys.stderr)
 
37
 
38
  # Configuration
39
 
40
+ API_BASE_URL: Optional[str] = os.environ.get("API_BASE_URL")
41
+ MODEL_NAME: Optional[str] = os.environ.get("MODEL_NAME")
42
+ HF_TOKEN: Optional[str] = os.environ.get("HF_TOKEN")
43
  ENV_BASE_URL: Optional[str] = os.environ.get("ENV_BASE_URL")
44
  MAX_STEPS: int = int(os.environ.get("MAX_STEPS", "40"))
45
  TEMPERATURE: float = float(os.environ.get("TEMPERATURE", "0.05"))
 
67
  5: "Very Hard -- Referential Maze",
68
  }
69
 
70
+ # LLM client (initialized in main() after env var validation)
71
 
72
+ llm_client: Optional[OpenAI] = None
73
 
74
  # System prompt
75
 
 
416
  # Main
417
 
418
  def main() -> None:
419
+ global llm_client
420
+
421
+ # Validate required environment variables before doing anything else.
422
+ _missing = [name for name in ("API_BASE_URL", "MODEL_NAME", "HF_TOKEN")
423
+ if not os.environ.get(name)]
424
+ if _missing:
425
+ print(
426
+ "ERROR: The following required environment variables are not set:\n"
427
+ + "".join(f" {n}\n" for n in _missing)
428
+ + "\nSet them before running:\n"
429
+ " export API_BASE_URL=https://api-inference.huggingface.co/v1\n"
430
+ " export MODEL_NAME=meta-llama/Llama-3.3-70B-Instruct\n"
431
+ " export HF_TOKEN=hf_your_token\n"
432
+ " python inference.py",
433
+ file=sys.stderr,
434
+ )
435
+ sys.exit(0)
436
+
437
+ llm_client = OpenAI(base_url=API_BASE_URL, api_key=HF_TOKEN)
438
+
439
  print("=" * 70, file=sys.stderr)
440
  print("DB-ER Baseline Inference Script", file=sys.stderr)
441
  print(f"Model: {MODEL_NAME}", file=sys.stderr)