Skip to content

Commit 91c932f

Browse files
cleop-googlecopybara-github
authored andcommitted
feat: GenAI SDK client(multimodal) - Accept an explicit bigquery_uri parameter in create_from_bigquery
PiperOrigin-RevId: 900174983
1 parent f2d73fd commit 91c932f

3 files changed

Lines changed: 264 additions & 39 deletions

File tree

tests/unit/vertexai/genai/replays/test_create_multimodal_datasets.py

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,37 @@ def test_create_dataset_from_bigquery(client):
115115
)
116116

117117

118+
@pytest.mark.usefixtures("mock_generate_multimodal_dataset_display_name")
119+
def test_create_dataset_from_bigquery_with_uri(client):
120+
dataset = client.datasets.create_from_bigquery(
121+
bigquery_uri=f"bq://{BIGQUERY_TABLE_NAME}",
122+
)
123+
assert isinstance(dataset, types.MultimodalDataset)
124+
assert dataset.metadata.input_config.bigquery_source.uri == (
125+
f"bq://{BIGQUERY_TABLE_NAME}"
126+
)
127+
128+
129+
def test_create_dataset_from_bigquery_preserves_other_metadata(client):
130+
dataset = client.datasets.create_from_bigquery(
131+
bigquery_uri=f"bq://{BIGQUERY_TABLE_NAME}",
132+
multimodal_dataset={
133+
"display_name": "test-from-bigquery-uri",
134+
"metadata": {
135+
"gemini_request_read_config": {
136+
"assembled_request_column_name": "test_column"
137+
}
138+
}
139+
}
140+
)
141+
assert isinstance(dataset, types.MultimodalDataset)
142+
assert dataset.display_name == "test-from-bigquery-uri"
143+
assert dataset.metadata.gemini_request_read_config.assembled_request_column_name == "test_column"
144+
assert dataset.metadata.input_config.bigquery_source.uri == (
145+
f"bq://{BIGQUERY_TABLE_NAME}"
146+
)
147+
148+
118149
@pytest.mark.usefixtures("mock_generate_multimodal_dataset_display_name")
119150
def test_create_dataset_from_bigquery_no_display_name(client):
120151
dataset = client.datasets.create_from_bigquery(
@@ -254,6 +285,39 @@ async def test_create_dataset_from_bigquery_async(client):
254285
)
255286

256287

288+
@pytest.mark.asyncio
289+
@pytest.mark.usefixtures("mock_generate_multimodal_dataset_display_name")
290+
async def test_create_dataset_from_bigquery_with_uri_async(client):
291+
dataset = await client.aio.datasets.create_from_bigquery(
292+
bigquery_uri=f"bq://{BIGQUERY_TABLE_NAME}",
293+
)
294+
assert isinstance(dataset, types.MultimodalDataset)
295+
assert dataset.metadata.input_config.bigquery_source.uri == (
296+
f"bq://{BIGQUERY_TABLE_NAME}"
297+
)
298+
299+
300+
@pytest.mark.asyncio
301+
async def test_create_dataset_from_bigquery_preserves_other_metadata_async(client):
302+
dataset = await client.aio.datasets.create_from_bigquery(
303+
bigquery_uri=f"bq://{BIGQUERY_TABLE_NAME}",
304+
multimodal_dataset={
305+
"display_name": "test-from-bigquery-uri",
306+
"metadata": {
307+
"gemini_request_read_config": {
308+
"assembled_request_column_name": "test_column"
309+
}
310+
}
311+
}
312+
)
313+
assert isinstance(dataset, types.MultimodalDataset)
314+
assert dataset.display_name == "test-from-bigquery-uri"
315+
assert dataset.metadata.gemini_request_read_config.assembled_request_column_name == "test_column"
316+
assert dataset.metadata.input_config.bigquery_source.uri == (
317+
f"bq://{BIGQUERY_TABLE_NAME}"
318+
)
319+
320+
257321
@pytest.mark.asyncio
258322
@pytest.mark.usefixtures("mock_generate_multimodal_dataset_display_name")
259323
async def test_create_dataset_from_bigquery_no_display_name_async(client):

vertexai/_genai/_datasets_utils.py

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -34,17 +34,6 @@
3434
T = TypeVar("T", bound=BaseModel)
3535

3636

37-
def create_from_response(model_type: Type[T], response: dict[str, Any]) -> T:
38-
"""Creates a model from a response."""
39-
model_field_names = model_type.model_fields.keys()
40-
filtered_response = {}
41-
for key, value in response.items():
42-
snake_key = common.camel_to_snake(key)
43-
if snake_key in model_field_names:
44-
filtered_response[snake_key] = value
45-
return model_type(**filtered_response)
46-
47-
4837
def validate_multimodal_dataset_bigquery_uri(
4938
multimodal_dataset: common.MultimodalDataset,
5039
) -> None:

0 commit comments

Comments
 (0)