Skip to content

Commit 4b7a30a

Browse files
committed
fix configs
1 parent 744cf34 commit 4b7a30a

File tree

5 files changed

+57
-5
lines changed

5 files changed

+57
-5
lines changed

configs/default_config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ llm:
2525
secondary_model_weight: 0.2 # Sampling weight for secondary model
2626

2727
# API configuration
28-
api_base: "https://api.openai.com/v1" # Base URL for API (change for non-OpenAI models)
28+
api_base: "https://generativelanguage.googleapis.com/v1beta/openai/" # Base URL for API (change for non-OpenAI models)
2929
api_key: null # API key (defaults to OPENAI_API_KEY env variable)
3030

3131
# Generation parameters

examples/matrix_multiplication/optimize.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ async def main():
2323
parser = argparse.ArgumentParser(description="Matrix multiplication optimization example")
2424
parser.add_argument("--iterations", type=int, default=100, help="Number of iterations")
2525
parser.add_argument("--output", type=str, default="output", help="Output directory")
26+
parser.add_argument("--config", type=str, help="Path to configuration file")
2627
args = parser.parse_args()
2728

2829
# Set up paths
@@ -49,13 +50,16 @@ async def main():
4950
config.max_iterations = args.iterations
5051
config.llm.primary_model = "gemini-2.0-flash-lite"
5152
config.llm.secondary_model = "gemini-2.0-flash"
53+
config.llm.api_base = "https://generativelanguage.googleapis.com/v1beta/openai/"
5254
config.diff_based_evolution = True
5355
config.allow_full_rewrites = False
5456

55-
# Initialize OpenEvolve
57+
# Initialize OpenEvolve with the custom config
5658
openevolve = OpenEvolve(
5759
initial_program_path=str(initial_program_path),
5860
evaluation_file=str(evaluation_file),
61+
config=config, # Pass the config object directly
62+
config_path=args.config, # Also pass config_path if provided (lower priority)
5963
output_dir=str(output_dir),
6064
)
6165

examples/min_max_distance/optimize.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ async def main():
2626
parser.add_argument("--iterations", type=int, default=100, help="Number of iterations")
2727
parser.add_argument("--output", type=str, default="output", help="Output directory")
2828
parser.add_argument("--num-points", type=int, default=16, help="Number of points")
29+
parser.add_argument("--config", type=str, help="Path to configuration file")
2930
args = parser.parse_args()
3031

3132
# Set up paths
@@ -52,6 +53,7 @@ async def main():
5253
config.max_iterations = args.iterations
5354
config.llm.primary_model = "gemini-2.0-flash-lite"
5455
config.llm.secondary_model = "gemini-2.0-flash"
56+
config.llm.api_base = "https://generativelanguage.googleapis.com/v1beta/openai/"
5557
config.diff_based_evolution = True
5658
config.allow_full_rewrites = False
5759

@@ -67,10 +69,12 @@ async def main():
6769
with open(evaluation_file, "w") as f:
6870
f.write(eval_content)
6971

70-
# Initialize OpenEvolve
72+
# Initialize OpenEvolve with the custom config
7173
openevolve = OpenEvolve(
7274
initial_program_path=str(initial_program_path),
7375
evaluation_file=str(evaluation_file),
76+
config=config, # Pass config object directly
77+
config_path=args.config, # Also pass config_path if provided (lower priority)
7478
output_dir=str(output_dir),
7579
)
7680

openevolve/cli.py

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,24 @@ def parse_args() -> argparse.Namespace:
6666
default="INFO"
6767
)
6868

69+
parser.add_argument(
70+
"--api-base",
71+
help="Base URL for the LLM API",
72+
default=None
73+
)
74+
75+
parser.add_argument(
76+
"--primary-model",
77+
help="Primary LLM model name",
78+
default=None
79+
)
80+
81+
parser.add_argument(
82+
"--secondary-model",
83+
help="Secondary LLM model name",
84+
default=None
85+
)
86+
6987
return parser.parse_args()
7088

7189

@@ -87,12 +105,32 @@ async def main_async() -> int:
87105
print(f"Error: Evaluation file '{args.evaluation_file}' not found")
88106
return 1
89107

108+
# Create config object with command-line overrides
109+
config = None
110+
if args.api_base or args.primary_model or args.secondary_model:
111+
# Load base config from file or defaults
112+
config = load_config(args.config)
113+
114+
# Apply command-line overrides
115+
if args.api_base:
116+
config.llm.api_base = args.api_base
117+
print(f"Using API base: {config.llm.api_base}")
118+
119+
if args.primary_model:
120+
config.llm.primary_model = args.primary_model
121+
print(f"Using primary model: {config.llm.primary_model}")
122+
123+
if args.secondary_model:
124+
config.llm.secondary_model = args.secondary_model
125+
print(f"Using secondary model: {config.llm.secondary_model}")
126+
90127
# Initialize OpenEvolve
91128
try:
92129
openevolve = OpenEvolve(
93130
initial_program_path=args.initial_program,
94131
evaluation_file=args.evaluation_file,
95-
config_path=args.config,
132+
config=config,
133+
config_path=args.config if config is None else None,
96134
output_dir=args.output,
97135
)
98136

openevolve/controller.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,16 @@ def __init__(
4040
initial_program_path: str,
4141
evaluation_file: str,
4242
config_path: Optional[str] = None,
43+
config: Optional[Config] = None,
4344
output_dir: Optional[str] = None,
4445
):
4546
# Load configuration
46-
self.config = load_config(config_path)
47+
if config is not None:
48+
# Use provided Config object directly
49+
self.config = config
50+
else:
51+
# Load from file or use defaults
52+
self.config = load_config(config_path)
4753

4854
# Set up output directory
4955
self.output_dir = output_dir or os.path.join(

0 commit comments

Comments
 (0)