gaurv007 commited on
Commit
3dabb66
Β·
verified Β·
1 Parent(s): d120435

fix: auto-load .env file at startup using python-dotenv

Browse files
Files changed (1) hide show
  1. alpha_factory/run.py +14 -4
alpha_factory/run.py CHANGED
@@ -2,8 +2,17 @@
2
  Alpha Factory β€” Entry Point
3
  Run: python -m alpha_factory.run [--dry-run] [--batch-size N] [--interactive]
4
  """
 
5
  import asyncio
6
  import argparse
 
 
 
 
 
 
 
 
7
  from rich.console import Console
8
  from .config import load_config
9
  from .infra import ModelManager, interactive_model_select, LLMClient
@@ -20,12 +29,10 @@ async def setup_models(interactive: bool = False, hf_token: str = None) -> Model
20
  await manager.discover_all()
21
 
22
  if interactive:
23
- # Let user pick models for each tier
24
  selections = interactive_model_select(manager)
25
  for tier, model in selections.items():
26
  manager.select_model(tier, model)
27
  else:
28
- # Auto-assign best available
29
  manager.auto_assign_defaults()
30
 
31
  manager.print_status()
@@ -44,6 +51,9 @@ def main():
44
  config = load_config()
45
  config.batch_size = args.batch_size
46
 
 
 
 
47
  console.print(f"""
48
  [bold green]━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━[/]
49
  [bold green] ALPHA FACTORY v0.1.0[/]
@@ -53,13 +63,13 @@ def main():
53
  Mode: {"DRY RUN (no BRAIN submissions)" if args.dry_run else "LIVE"}
54
  Batch size: {args.batch_size}
55
  Ollama: {args.ollama_url}
56
- HF Token: {"βœ“ Set" if args.hf_token or __import__('os').getenv('HF_TOKEN') else "βœ— Not set (cloud models unavailable)"}
57
  """)
58
 
59
  # Discover and select models
60
  manager = asyncio.run(setup_models(
61
  interactive=args.interactive,
62
- hf_token=args.hf_token,
63
  ))
64
 
65
  # Update LLM config with Ollama URL
 
2
  Alpha Factory β€” Entry Point
3
  Run: python -m alpha_factory.run [--dry-run] [--batch-size N] [--interactive]
4
  """
5
+ import os
6
  import asyncio
7
  import argparse
8
+
9
+ # Load .env file FIRST before anything else reads env vars
10
+ try:
11
+ from dotenv import load_dotenv
12
+ load_dotenv() # Reads .env from current directory
13
+ except ImportError:
14
+ pass # python-dotenv not installed; rely on system env vars
15
+
16
  from rich.console import Console
17
  from .config import load_config
18
  from .infra import ModelManager, interactive_model_select, LLMClient
 
29
  await manager.discover_all()
30
 
31
  if interactive:
 
32
  selections = interactive_model_select(manager)
33
  for tier, model in selections.items():
34
  manager.select_model(tier, model)
35
  else:
 
36
  manager.auto_assign_defaults()
37
 
38
  manager.print_status()
 
51
  config = load_config()
52
  config.batch_size = args.batch_size
53
 
54
+ # Resolve HF token: CLI arg > env var (loaded from .env)
55
+ hf_token = args.hf_token or os.getenv("HF_TOKEN")
56
+
57
  console.print(f"""
58
  [bold green]━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━[/]
59
  [bold green] ALPHA FACTORY v0.1.0[/]
 
63
  Mode: {"DRY RUN (no BRAIN submissions)" if args.dry_run else "LIVE"}
64
  Batch size: {args.batch_size}
65
  Ollama: {args.ollama_url}
66
+ HF Token: {"βœ“ Set" if hf_token else "βœ— Not set (cloud models unavailable)"}
67
  """)
68
 
69
  # Discover and select models
70
  manager = asyncio.run(setup_models(
71
  interactive=args.interactive,
72
+ hf_token=hf_token,
73
  ))
74
 
75
  # Update LLM config with Ollama URL