Skip to content

Commit 59ebb4a

Browse files
author
Shrey Modi
committed
zip uploadf
1 parent dab32f9 commit 59ebb4a

1 file changed

Lines changed: 54 additions & 4 deletions

File tree

eval_protocol/evaluation.py

Lines changed: 54 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -509,6 +509,54 @@ def _simulated_preview(self, samples):
509509
preview_result.total_runtime_ms = max(1, int((end_time - start_time) * 1000))
510510
return preview_result
511511

512+
def _build_minimal_criteria(self) -> List[Dict[str, str]]:
513+
"""Build minimal criteria (name, type, description) without code snippets."""
514+
515+
# Remote URL mode
516+
if self.remote_url:
517+
return [
518+
{
519+
"name": "remote_eval_proxy",
520+
"type": "CODE_SNIPPETS",
521+
"description": f"Proxies evaluation to remote URL: {self.remote_url}",
522+
}
523+
]
524+
525+
# TS mode (direct code snippet)
526+
elif self.ts_mode_config:
527+
criterion_name = self.ts_mode_config.get("criterion_name", "default_code_criterion")
528+
description = self.ts_mode_config.get("description", "Python code execution")
529+
return [
530+
{
531+
"name": criterion_name,
532+
"type": "CODE_SNIPPETS",
533+
"description": description,
534+
}
535+
]
536+
537+
# Multi-metrics mode
538+
elif self.multi_metrics:
539+
return [
540+
{
541+
"name": "eval",
542+
"type": "CODE_SNIPPETS",
543+
"description": self.description or "Multi-metric evaluation",
544+
}
545+
]
546+
547+
# Single metric folders
548+
else:
549+
criteria = []
550+
for metric_name in self.metric_folders:
551+
criteria.append(
552+
{
553+
"name": metric_name,
554+
"type": "CODE_SNIPPETS",
555+
"description": self.description or f"Evaluation metric: {metric_name}",
556+
}
557+
)
558+
return criteria
559+
512560
def create(self, evaluator_id, display_name=None, description=None, force=False):
513561
if not self.remote_url and not self.ts_mode_config and not self.code_files:
514562
raise ValueError("No code files loaded. Load metric folder(s) or provide ts_mode_config/remote_url first.")
@@ -524,18 +572,19 @@ def create(self, evaluator_id, display_name=None, description=None, force=False)
524572

525573
self.display_name = display_name or evaluator_id
526574
self.description = description or f"Evaluator created from {evaluator_id}"
527-
575+
account_id = "pyroworks-dev"
528576
# Keep multiMetrics/rollupSettings for backward compatibility with tests
529577
payload_multi_metrics = True
530578
payload_rollup_settings = {"skipRollup": True}
531-
579+
parent = f"accounts/{account_id}"
532580
payload_data = {
581+
"parent": parent,
533582
"evaluator": {
534583
"displayName": self.display_name,
535584
"description": self.description,
536585
"multiMetrics": payload_multi_metrics,
537586
# "rewardFunctionMode": self.reward_function_mode, # How input is processed by user func
538-
"criteria": self._construct_criteria(criteria_data={}),
587+
"criteria": self._build_minimal_criteria(),
539588
"requirements": "",
540589
"rollupSettings": payload_rollup_settings,
541590
},
@@ -557,10 +606,11 @@ def create(self, evaluator_id, display_name=None, description=None, force=False)
557606
if "dev.api.fireworks.ai" in self.api_base and account_id == "fireworks":
558607
account_id = "pyroworks-dev"
559608

560-
base_url = f"{self.api_base}/v1/accounts/{account_id}/evaluators"
609+
base_url = f"{self.api_base}/v1/{parent}/evaluators"
561610
headers = {
562611
"Authorization": f"Bearer {auth_token}",
563612
"Content-Type": "application/json",
613+
"X-Fireworks-Gateway-Secret": "8b8a823c-0b29-41f4-8537-4c9f650a113c",
564614
}
565615
logger.info(f"Creating evaluator '{evaluator_id}' for account '{account_id}'...")
566616

0 commit comments

Comments
 (0)