Skip to content

Commit 4b71ddb

Browse files
author
Dylan Huang
committed
Add evaluator version creation in evaluation module
- Introduced functionality to create evaluator versions using parameters such as commit hash, entry point, and requirements. - Updated the upload endpoint call to utilize the newly created evaluator version ID instead of a hardcoded test version ID. - Added error handling for missing evaluator version ID in the response to ensure robustness during code uploads.
1 parent acaa901 commit 4b71ddb

1 file changed

Lines changed: 22 additions & 4 deletions

File tree

eval_protocol/evaluation.py

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from typing import List, Optional
55

66
import fireworks
7+
from fireworks.types import EvaluatorVersionParam
78
import requests
89

910
from eval_protocol.auth import (
@@ -234,6 +235,25 @@ def create(self, evaluator_id, display_name=None, description=None, force=False)
234235
f"Cannot proceed with code upload. Response: {result}"
235236
)
236237

238+
evaluator_version_param: EvaluatorVersionParam = {}
239+
if "commit_hash" in evaluator_params:
240+
evaluator_version_param["commit_hash"] = evaluator_params["commit_hash"]
241+
if "entry_point" in evaluator_params:
242+
evaluator_version_param["entry_point"] = evaluator_params["entry_point"]
243+
if "requirements" in evaluator_params:
244+
evaluator_version_param["requirements"] = evaluator_params["requirements"]
245+
246+
evaluator_version = client.evaluator_versions.create(
247+
evaluator_id=evaluator_id,
248+
evaluator_version=evaluator_version_param,
249+
)
250+
evaluator_version_id = evaluator_version.name.split("/")[-1] if evaluator_version.name else None
251+
if not evaluator_version_id:
252+
raise ValueError(
253+
"Create evaluator version response missing 'name' field. "
254+
f"Cannot proceed with code upload. Response: {evaluator_version}"
255+
)
256+
237257
try:
238258
# Create tar.gz of current directory
239259
cwd = os.getcwd()
@@ -243,12 +263,10 @@ def create(self, evaluator_id, display_name=None, description=None, force=False)
243263

244264
tar_size = self._create_tar_gz_with_ignores(tar_path, cwd)
245265

246-
version_id = "test"
247-
248266
# Call GetEvaluatorUploadEndpoint using SDK
249267
logger.info(f"Requesting upload endpoint for {tar_filename}")
250268
upload_response = client.evaluator_versions.get_upload_endpoint(
251-
version_id=version_id,
269+
version_id=evaluator_version_id,
252270
evaluator_id=evaluator_id,
253271
filename_to_size={tar_filename: str(tar_size)},
254272
)
@@ -330,7 +348,7 @@ def create(self, evaluator_id, display_name=None, description=None, force=False)
330348

331349
# Step 3: Validate upload using SDK
332350
client.evaluator_versions.validate_upload(
333-
version_id=version_id,
351+
version_id=evaluator_version_id,
334352
evaluator_id=evaluator_id,
335353
)
336354
logger.info("Upload validated successfully")

0 commit comments

Comments
 (0)