From 776da75d4ab2499093cd3356af131645af3ca43a Mon Sep 17 00:00:00 2001 From: Shuowei Li Date: Tue, 12 May 2026 02:40:51 +0000 Subject: [PATCH 1/3] Fix multimodel typo --- packages/bigframes/bigframes/bigquery/_operations/ai.py | 2 +- packages/bigframes/bigframes/operations/ai.py | 4 ++-- packages/bigframes/bigframes/operations/semantics.py | 6 +++--- packages/bigframes/tests/system/large/operations/test_ai.py | 2 +- .../tests/system/large/operations/test_semantics.py | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/bigframes/bigframes/bigquery/_operations/ai.py b/packages/bigframes/bigframes/bigquery/_operations/ai.py index bd13fbc393d7..67faaaf328b0 100644 --- a/packages/bigframes/bigframes/bigquery/_operations/ai.py +++ b/packages/bigframes/bigframes/bigquery/_operations/ai.py @@ -1205,7 +1205,7 @@ def _convert_series( result = convert.to_bf_series(s, default_index=None, session=session) if result.dtype == dtypes.OBJ_REF_DTYPE: - # Support multimodel + # Support multimodal return result.blob.read_url() return result diff --git a/packages/bigframes/bigframes/operations/ai.py b/packages/bigframes/bigframes/operations/ai.py index 09bd41c27237..c5cc08ae976f 100644 --- a/packages/bigframes/bigframes/operations/ai.py +++ b/packages/bigframes/bigframes/operations/ai.py @@ -223,7 +223,7 @@ def map( bigframes.series.Series, model.predict( df, - prompt=self._make_multimodel_prompt( + prompt=self._make_multimodal_prompt( df, columns, user_instruction, output_instruction ), temperature=0.0, @@ -774,7 +774,7 @@ def _attach_embedding(dataframe, source_column: str, embedding_column: str, mode return result_df @staticmethod - def _make_multimodel_prompt( + def _make_multimodal_prompt( prompt_df, columns, user_instruction: str, output_instruction: str ): prompt = [f"{output_instruction}\n{user_instruction}\nContext: "] diff --git a/packages/bigframes/bigframes/operations/semantics.py b/packages/bigframes/bigframes/operations/semantics.py index f5d2251b2945..4a6543fdad61 100644 --- a/packages/bigframes/bigframes/operations/semantics.py +++ b/packages/bigframes/bigframes/operations/semantics.py @@ -397,7 +397,7 @@ def filter(self, instruction: str, model, ground_with_google_search: bool = Fals bigframes.dataframe.DataFrame, model.predict( df, - prompt=self._make_multimodel_prompt( + prompt=self._make_multimodal_prompt( df, columns, user_instruction, output_instruction ), temperature=0.0, @@ -518,7 +518,7 @@ def map( bigframes.series.Series, model.predict( df, - prompt=self._make_multimodel_prompt( + prompt=self._make_multimodal_prompt( df, columns, user_instruction, output_instruction ), temperature=0.0, @@ -1094,7 +1094,7 @@ def _attach_embedding(dataframe, source_column: str, embedding_column: str, mode return result_df @staticmethod - def _make_multimodel_prompt( + def _make_multimodal_prompt( prompt_df, columns, user_instruction: str, output_instruction: str ): prompt = [f"{output_instruction}\n{user_instruction}\nContext: "] diff --git a/packages/bigframes/tests/system/large/operations/test_ai.py b/packages/bigframes/tests/system/large/operations/test_ai.py index 57aa1966cbef..cc0847914ccc 100644 --- a/packages/bigframes/tests/system/large/operations/test_ai.py +++ b/packages/bigframes/tests/system/large/operations/test_ai.py @@ -229,7 +229,7 @@ def test_map(session, gemini_flash_model, output_schema, output_col): ) -def test_map_multimodel(session, gemini_flash_model): +def test_map_multimodal(session, gemini_flash_model): with bigframes.option_context( AI_OP_EXP_OPTION, True, diff --git a/packages/bigframes/tests/system/large/operations/test_semantics.py b/packages/bigframes/tests/system/large/operations/test_semantics.py index 56c90212e99c..f8cd3a888670 100644 --- a/packages/bigframes/tests/system/large/operations/test_semantics.py +++ b/packages/bigframes/tests/system/large/operations/test_semantics.py @@ -571,7 +571,7 @@ def test_map(session, gemini_flash_model): ) -def test_map_multimodel(session, gemini_flash_model): +def test_map_multimodal(session, gemini_flash_model): with bigframes.option_context( SEM_OP_EXP_OPTION, True, From 7ec74587043b2b435da96ad3a3c15d15dff199d7 Mon Sep 17 00:00:00 2001 From: Shuowei Li Date: Tue, 12 May 2026 02:43:50 +0000 Subject: [PATCH 2/3] Fix multimodel typo in tests and changelog --- packages/bigframes/CHANGELOG.md | 2 +- .../tests/system/large/operations/test_ai.py | 4 ++-- .../tests/system/large/operations/test_semantics.py | 4 ++-- .../bigframes/tests/system/small/bigquery/test_ai.py | 12 ++++++------ 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/bigframes/CHANGELOG.md b/packages/bigframes/CHANGELOG.md index ab25756d9d0b..55ecf67ae7ea 100644 --- a/packages/bigframes/CHANGELOG.md +++ b/packages/bigframes/CHANGELOG.md @@ -447,7 +447,7 @@ ### Bug Fixes -* Deflake ai_gen_bool multimodel test ([#2085](https://github.com/googleapis/python-bigquery-dataframes/issues/2085)) ([566a37a](https://github.com/googleapis/python-bigquery-dataframes/commit/566a37a30ad5677aef0c5f79bdd46bca2139cc1e)) +* Deflake ai_gen_bool multimodal test ([#2085](https://github.com/googleapis/python-bigquery-dataframes/issues/2085)) ([566a37a](https://github.com/googleapis/python-bigquery-dataframes/commit/566a37a30ad5677aef0c5f79bdd46bca2139cc1e)) * Do not scroll page selector in anywidget `repr_mode` ([#2082](https://github.com/googleapis/python-bigquery-dataframes/issues/2082)) ([5ce5d63](https://github.com/googleapis/python-bigquery-dataframes/commit/5ce5d63fcb51bfb3df2769108b7486287896ccb9)) * Fix the potential invalid VPC egress configuration ([#2068](https://github.com/googleapis/python-bigquery-dataframes/issues/2068)) ([cce4966](https://github.com/googleapis/python-bigquery-dataframes/commit/cce496605385f2ac7ab0becc0773800ed5901aa5)) * Return a DataFrame containing query stats for all non-SELECT statements ([#2071](https://github.com/googleapis/python-bigquery-dataframes/issues/2071)) ([a52b913](https://github.com/googleapis/python-bigquery-dataframes/commit/a52b913d9d8794b4b959ea54744a38d9f2f174e7)) diff --git a/packages/bigframes/tests/system/large/operations/test_ai.py b/packages/bigframes/tests/system/large/operations/test_ai.py index cc0847914ccc..cf2f2192fc54 100644 --- a/packages/bigframes/tests/system/large/operations/test_ai.py +++ b/packages/bigframes/tests/system/large/operations/test_ai.py @@ -65,7 +65,7 @@ def test_filter_multi_model(session, gemini_flash_model): 10, ): df = session.from_glob_path( - "gs://bigframes-dev-testing/a_multimodel/images/*", name="image" + "gs://bigframes-dev-testing/a_multimodal/images/*", name="image" ) df["prey"] = series.Series( ["building", "cross road", "rock", "squirrel", "rabbit"], session=session @@ -239,7 +239,7 @@ def test_map_multimodal(session, gemini_flash_model): 10, ): df = session.from_glob_path( - "gs://bigframes-dev-testing/a_multimodel/images/*", name="image" + "gs://bigframes-dev-testing/a_multimodal/images/*", name="image" ) df["scenario"] = series.Series( ["building", "cross road", "tree", "squirrel", "rabbit"], session=session diff --git a/packages/bigframes/tests/system/large/operations/test_semantics.py b/packages/bigframes/tests/system/large/operations/test_semantics.py index f8cd3a888670..3a9bd6b369fa 100644 --- a/packages/bigframes/tests/system/large/operations/test_semantics.py +++ b/packages/bigframes/tests/system/large/operations/test_semantics.py @@ -412,7 +412,7 @@ def test_filter_multi_model(session, gemini_flash_model): 10, ): df = session.from_glob_path( - "gs://bigframes-dev-testing/a_multimodel/images/*", name="image" + "gs://bigframes-dev-testing/a_multimodal/images/*", name="image" ) df["prey"] = series.Series( ["building", "cross road", "rock", "squirrel", "rabbit"], session=session @@ -581,7 +581,7 @@ def test_map_multimodal(session, gemini_flash_model): 10, ): df = session.from_glob_path( - "gs://bigframes-dev-testing/a_multimodel/images/*", name="image" + "gs://bigframes-dev-testing/a_multimodal/images/*", name="image" ) df["scenario"] = series.Series( ["building", "cross road", "tree", "squirrel", "rabbit"], session=session diff --git a/packages/bigframes/tests/system/small/bigquery/test_ai.py b/packages/bigframes/tests/system/small/bigquery/test_ai.py index 7fc01bca8eeb..39c74d42b2dc 100644 --- a/packages/bigframes/tests/system/small/bigquery/test_ai.py +++ b/packages/bigframes/tests/system/small/bigquery/test_ai.py @@ -160,7 +160,7 @@ def test_ai_generate_bool(session): def test_ai_generate_bool_multi_model(session): df = session.from_glob_path( - "gs://bigframes-dev-testing/a_multimodel/images/*", name="image" + "gs://bigframes-dev-testing/a_multimodal/images/*", name="image" ) result = bbq.ai.generate_bool((df["image"], " contains an animal")) @@ -197,7 +197,7 @@ def test_ai_generate_int(session): def test_ai_generate_int_multi_model(session): df = session.from_glob_path( - "gs://bigframes-dev-testing/a_multimodel/images/*", name="image" + "gs://bigframes-dev-testing/a_multimodal/images/*", name="image" ) result = bbq.ai.generate_int( @@ -236,7 +236,7 @@ def test_ai_generate_double(session): def test_ai_generate_double_multi_model(session): df = session.from_glob_path( - "gs://bigframes-dev-testing/a_multimodel/images/*", name="image" + "gs://bigframes-dev-testing/a_multimodal/images/*", name="image" ) result = bbq.ai.generate_double( @@ -307,7 +307,7 @@ def test_ai_if(session): def test_ai_if_multi_model(session, bq_connection): df = session.from_glob_path( - "gs://bigframes-dev-testing/a_multimodel/images/*", + "gs://bigframes-dev-testing/a_multimodal/images/*", name="image", connection=bq_connection, ) @@ -338,7 +338,7 @@ def test_ai_classify_with_examples(session): def test_ai_classify_multi_model(session, bq_connection): df = session.from_glob_path( - "gs://bigframes-dev-testing/a_multimodel/images/*", + "gs://bigframes-dev-testing/a_multimodal/images/*", name="image", connection=bq_connection, ) @@ -361,7 +361,7 @@ def test_ai_score(session): def test_ai_score_multi_model(session): df = session.from_glob_path( - "gs://bigframes-dev-testing/a_multimodel/images/*", name="image" + "gs://bigframes-dev-testing/a_multimodal/images/*", name="image" ) prompt = ("Rank the liveliness of ", df["image"], "on the scale from 1 to 3") From 210cd81ba1c12418bc496efa32c5ec796b813828 Mon Sep 17 00:00:00 2001 From: Shuowei Li Date: Tue, 12 May 2026 17:22:50 +0000 Subject: [PATCH 3/3] revert changelog change --- packages/bigframes/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/bigframes/CHANGELOG.md b/packages/bigframes/CHANGELOG.md index 55ecf67ae7ea..ab25756d9d0b 100644 --- a/packages/bigframes/CHANGELOG.md +++ b/packages/bigframes/CHANGELOG.md @@ -447,7 +447,7 @@ ### Bug Fixes -* Deflake ai_gen_bool multimodal test ([#2085](https://github.com/googleapis/python-bigquery-dataframes/issues/2085)) ([566a37a](https://github.com/googleapis/python-bigquery-dataframes/commit/566a37a30ad5677aef0c5f79bdd46bca2139cc1e)) +* Deflake ai_gen_bool multimodel test ([#2085](https://github.com/googleapis/python-bigquery-dataframes/issues/2085)) ([566a37a](https://github.com/googleapis/python-bigquery-dataframes/commit/566a37a30ad5677aef0c5f79bdd46bca2139cc1e)) * Do not scroll page selector in anywidget `repr_mode` ([#2082](https://github.com/googleapis/python-bigquery-dataframes/issues/2082)) ([5ce5d63](https://github.com/googleapis/python-bigquery-dataframes/commit/5ce5d63fcb51bfb3df2769108b7486287896ccb9)) * Fix the potential invalid VPC egress configuration ([#2068](https://github.com/googleapis/python-bigquery-dataframes/issues/2068)) ([cce4966](https://github.com/googleapis/python-bigquery-dataframes/commit/cce496605385f2ac7ab0becc0773800ed5901aa5)) * Return a DataFrame containing query stats for all non-SELECT statements ([#2071](https://github.com/googleapis/python-bigquery-dataframes/issues/2071)) ([a52b913](https://github.com/googleapis/python-bigquery-dataframes/commit/a52b913d9d8794b4b959ea54744a38d9f2f174e7))