Skip to content

Commit 26a4609

Browse files
authored
Merge pull request #221 from codelion/fix-sampler
Fix sampler
2 parents 5d09222 + 74423f0 commit 26a4609

File tree

2 files changed

+12
-11
lines changed

2 files changed

+12
-11
lines changed

openevolve/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
"""Version information for openevolve package."""
22

3-
__version__ = "0.2.0"
3+
__version__ = "0.2.1"

openevolve/prompt/sampler.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ def build_prompt(
116116

117117
# Format evolution history
118118
evolution_history = self._format_evolution_history(
119-
previous_programs, top_programs, inspirations, language
119+
previous_programs, top_programs, inspirations, language, feature_dimensions
120120
)
121121

122122
# Format artifacts section if enabled and available
@@ -243,6 +243,7 @@ def _format_evolution_history(
243243
top_programs: List[Dict[str, Any]],
244244
inspirations: List[Dict[str, Any]],
245245
language: str,
246+
feature_dimensions: Optional[List[str]] = None,
246247
) -> str:
247248
"""Format the evolution history for the prompt"""
248249
# Get templates
@@ -321,8 +322,8 @@ def _format_evolution_history(
321322
# Use the full program code
322323
program_code = program.get("code", "")
323324

324-
# Calculate a composite score using safe numeric average
325-
score = safe_numeric_average(program.get("metrics", {}))
325+
# Calculate fitness score (prefers combined_score, excludes feature dimensions)
326+
score = get_fitness_score(program.get("metrics", {}), feature_dimensions or [])
326327

327328
# Extract key features (this could be more sophisticated)
328329
key_features = program.get("key_features", [])
@@ -371,8 +372,8 @@ def _format_evolution_history(
371372
# Use the full program code
372373
program_code = program.get("code", "")
373374

374-
# Calculate a composite score using safe numeric average
375-
score = safe_numeric_average(program.get("metrics", {}))
375+
# Calculate fitness score (prefers combined_score, excludes feature dimensions)
376+
score = get_fitness_score(program.get("metrics", {}), feature_dimensions or [])
376377

377378
# Extract key features
378379
key_features = program.get("key_features", [])
@@ -436,11 +437,11 @@ def _format_inspirations_section(
436437
# Use the full program code
437438
program_code = program.get("code", "")
438439

439-
# Calculate a composite score using safe numeric average
440-
score = safe_numeric_average(program.get("metrics", {}))
440+
# Calculate fitness score (prefers combined_score, excludes feature dimensions)
441+
score = get_fitness_score(program.get("metrics", {}), feature_dimensions or [])
441442

442443
# Determine program type based on metadata and score
443-
program_type = self._determine_program_type(program)
444+
program_type = self._determine_program_type(program, feature_dimensions or [])
444445

445446
# Extract unique features (emphasizing diversity rather than just performance)
446447
unique_features = self._extract_unique_features(program)
@@ -461,7 +462,7 @@ def _format_inspirations_section(
461462
inspiration_programs=inspiration_programs_str.strip()
462463
)
463464

464-
def _determine_program_type(self, program: Dict[str, Any]) -> str:
465+
def _determine_program_type(self, program: Dict[str, Any], feature_dimensions: Optional[List[str]] = None) -> str:
465466
"""
466467
Determine the type/category of an inspiration program
467468
@@ -472,7 +473,7 @@ def _determine_program_type(self, program: Dict[str, Any]) -> str:
472473
String describing the program type
473474
"""
474475
metadata = program.get("metadata", {})
475-
score = safe_numeric_average(program.get("metrics", {}))
476+
score = get_fitness_score(program.get("metrics", {}), feature_dimensions or [])
476477

477478
# Check metadata for explicit type markers
478479
if metadata.get("diverse", False):

0 commit comments

Comments
 (0)