Skip to content

Commit d86d87a

Browse files
vertex-sdk-botcopybara-github
authored andcommitted
feat: Use default file name if one isn't provided when uploading evaluation results to GCS.
PiperOrigin-RevId: 726235883
1 parent b91a8aa commit d86d87a

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

tests/unit/vertexai/test_evaluation.py

+16
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
from google.cloud import aiplatform
2626
import vertexai
2727
from google.cloud.aiplatform import initializer
28+
from google.cloud.aiplatform import utils as aiplatform_utils
2829
from google.cloud.aiplatform.metadata import metadata
2930
from google.cloud.aiplatform_v1.services import (
3031
evaluation_service as gapic_evaluation_services,
@@ -2176,3 +2177,18 @@ def test_upload_results(self, mock_storage_blob_from_string):
21762177
},
21772178
mock.ANY,
21782179
)
2180+
2181+
def test_upload_results_with_default_file_name(self, mock_storage_blob_from_string):
2182+
with mock.patch.object(
2183+
aiplatform_utils, "timestamped_unique_name"
2184+
) as mock_timestamped_unique_name:
2185+
mock_timestamped_unique_name.return_value = "2025-02-10-12-00-00-12345"
2186+
evaluation.utils.upload_evaluation_results(
2187+
MOCK_EVAL_RESULT,
2188+
_TEST_BUCKET,
2189+
)
2190+
2191+
mock_storage_blob_from_string.assert_any_call(
2192+
uri="gs://test-bucket/eval_results_2025-02-10-12-00-00-12345/eval_results_2025-02-10-12-00-00-12345.csv",
2193+
client=mock.ANY,
2194+
)

vertexai/evaluation/utils.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,7 @@ def _upload_file_to_gcs(upload_gcs_path: str, filename: str) -> None:
336336
def upload_evaluation_results(
337337
eval_result: eval_base.EvalResult,
338338
destination_uri_prefix: str,
339-
file_name: str,
339+
file_name: Optional[str] = None,
340340
candidate_model_name: Optional[str] = None,
341341
baseline_model_name: Optional[str] = None,
342342
dataset_uri: Optional[str] = None,
@@ -347,7 +347,7 @@ def upload_evaluation_results(
347347
Args:
348348
eval_result: Eval results to upload.
349349
destination_uri_prefix: GCS folder to store the data.
350-
file_name: File name to store the metrics table.
350+
file_name: Optional. File name to store the metrics table.
351351
candidate_model_name: Optional. Candidate model name.
352352
baseline_model_name: Optional. Baseline model name.
353353
dataset_uri: Optional. URI pointing to the dataset.
@@ -359,6 +359,8 @@ def upload_evaluation_results(
359359
if eval_result.metrics_table is None:
360360
return
361361
if destination_uri_prefix.startswith(_GCS_PREFIX):
362+
if not file_name:
363+
file_name = f"eval_results_{utils.timestamped_unique_name()}.csv"
362364
base_name, extension = os.path.splitext(file_name)
363365
file_type = extension.lower()[1:]
364366
output_folder = destination_uri_prefix + "/" + base_name

0 commit comments

Comments
 (0)