diff --git a/google/genai/models.py b/google/genai/models.py index b05985cc9..ac25bff75 100644 --- a/google/genai/models.py +++ b/google/genai/models.py @@ -1296,7 +1296,7 @@ def _GenerateContentConfig_to_mldev( ) if getv(from_object, ['labels']) is not None: - raise ValueError('labels parameter is not supported in Gemini API.') + setv(parent_object, ['labels'], getv(from_object, ['labels'])) if getv(from_object, ['cached_content']) is not None: setv( diff --git a/google/genai/tests/models/test_generate_content.py b/google/genai/tests/models/test_generate_content.py index 72759f960..31537bd59 100644 --- a/google/genai/tests/models/test_generate_content.py +++ b/google/genai/tests/models/test_generate_content.py @@ -29,6 +29,8 @@ from .. import pytest_helper from enum import Enum +from ... import models as models_module + GEMINI_FLASH_LATEST = 'gemini-2.5-flash' GEMINI_FLASH_2_0 = 'gemini-2.0-flash-001' GEMINI_FLASH_IMAGE_LATEST = 'gemini-2.5-flash-image' @@ -64,6 +66,19 @@ class InstrumentEnum(Enum): KEYBOARD = 'Keyboard' +def test_generate_content_labels_are_serialized_for_mldev(): + request = models_module._GenerateContentConfig_to_mldev( + { + 'labels': {'purpose': 'exploration', 'environment': 'development'}, + } + ) + + assert request['labels'] == { + 'purpose': 'exploration', + 'environment': 'development', + } + + test_table: list[pytest_helper.TestTableItem] = [ pytest_helper.TestTableItem( name='test_http_options_in_method',