From f8e76a6c360c08b27e81a02dd1b4459c84f57e86 Mon Sep 17 00:00:00 2001 From: Yeesian Ng Date: Thu, 16 May 2024 10:55:05 -0700 Subject: [PATCH] chore: Adds a warning when reasoning_engine_name is specified in ReasoningEngine create method. PiperOrigin-RevId: 634462227 --- .../test_reasoning_engines.py | 30 +++++++++++-------- .../reasoning_engines/_reasoning_engines.py | 6 ++++ 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/tests/unit/vertex_langchain/test_reasoning_engines.py b/tests/unit/vertex_langchain/test_reasoning_engines.py index cec7f4bf83..3fb64d5106 100644 --- a/tests/unit/vertex_langchain/test_reasoning_engines.py +++ b/tests/unit/vertex_langchain/test_reasoning_engines.py @@ -92,6 +92,20 @@ def query(self, unused_arbitrary_string_name: str) -> str: schema_name="CapitalizeEngine_query", ) ) +_TEST_INPUT_REASONING_ENGINE_OBJ = types.ReasoningEngine( + display_name=_TEST_REASONING_ENGINE_DISPLAY_NAME, + spec=types.ReasoningEngineSpec( + package_spec=types.ReasoningEngineSpec.PackageSpec( + python_version=f"{sys.version_info.major}.{sys.version_info.minor}", + pickle_object_gcs_uri=_TEST_REASONING_ENGINE_GCS_URI, + dependency_files_gcs_uri=_TEST_REASONING_ENGINE_DEPENDENCY_FILES_GCS_URI, + requirements_gcs_uri=_TEST_REASONING_ENGINE_REQUIREMENTS_GCS_URI, + ), + ), +) +_TEST_INPUT_REASONING_ENGINE_OBJ.spec.class_methods.append( + _TEST_REASONING_ENGINE_QUERY_SCHEMA +) _TEST_REASONING_ENGINE_OBJ = types.ReasoningEngine( name=_TEST_REASONING_ENGINE_RESOURCE_NAME, display_name=_TEST_REASONING_ENGINE_DISPLAY_NAME, @@ -300,7 +314,6 @@ def test_create_reasoning_engine( ): test_reasoning_engine = reasoning_engines.ReasoningEngine.create( self.test_app, - reasoning_engine_name=_TEST_REASONING_ENGINE_RESOURCE_NAME, display_name=_TEST_REASONING_ENGINE_DISPLAY_NAME, requirements=_TEST_REASONING_ENGINE_REQUIREMENTS, ) @@ -308,7 +321,7 @@ def test_create_reasoning_engine( test_reasoning_engine._gca_resource = _TEST_REASONING_ENGINE_OBJ create_reasoning_engine_mock.assert_called_with( parent=_TEST_PARENT, - reasoning_engine=test_reasoning_engine.gca_resource, + reasoning_engine=_TEST_INPUT_REASONING_ENGINE_OBJ, ) get_reasoning_engine_mock.assert_called_with( name=_TEST_REASONING_ENGINE_RESOURCE_NAME, @@ -329,7 +342,6 @@ def test_create_reasoning_engine_requirements_from_file( ) as mock_file: test_reasoning_engine = reasoning_engines.ReasoningEngine.create( self.test_app, - reasoning_engine_name=_TEST_REASONING_ENGINE_RESOURCE_NAME, display_name=_TEST_REASONING_ENGINE_DISPLAY_NAME, requirements="requirements.txt", ) @@ -338,7 +350,7 @@ def test_create_reasoning_engine_requirements_from_file( test_reasoning_engine._gca_resource = _TEST_REASONING_ENGINE_OBJ create_reasoning_engine_mock.assert_called_with( parent=_TEST_PARENT, - reasoning_engine=test_reasoning_engine.gca_resource, + reasoning_engine=_TEST_INPUT_REASONING_ENGINE_OBJ, ) get_reasoning_engine_mock.assert_called_with( name=_TEST_REASONING_ENGINE_RESOURCE_NAME, @@ -356,7 +368,6 @@ def test_delete_after_create_reasoning_engine( ): test_reasoning_engine = reasoning_engines.ReasoningEngine.create( self.test_app, - reasoning_engine_name=_TEST_REASONING_ENGINE_RESOURCE_NAME, display_name=_TEST_REASONING_ENGINE_DISPLAY_NAME, requirements=_TEST_REASONING_ENGINE_REQUIREMENTS, ) @@ -364,7 +375,7 @@ def test_delete_after_create_reasoning_engine( test_reasoning_engine._gca_resource = _TEST_REASONING_ENGINE_OBJ create_reasoning_engine_mock.assert_called_with( parent=_TEST_PARENT, - reasoning_engine=test_reasoning_engine.gca_resource, + reasoning_engine=_TEST_INPUT_REASONING_ENGINE_OBJ, ) get_reasoning_engine_mock.assert_called_with( name=_TEST_REASONING_ENGINE_RESOURCE_NAME, @@ -461,7 +472,6 @@ def test_create_reasoning_engine_unspecified_staging_bucket( ) reasoning_engines.ReasoningEngine.create( self.test_app, - reasoning_engine_name=_TEST_REASONING_ENGINE_RESOURCE_NAME, display_name=_TEST_REASONING_ENGINE_DISPLAY_NAME, requirements=_TEST_REASONING_ENGINE_REQUIREMENTS, ) @@ -486,7 +496,6 @@ def test_create_reasoning_engine_no_query_method( ): reasoning_engines.ReasoningEngine.create( InvalidCapitalizeEngineWithoutQueryMethod(), - reasoning_engine_name=_TEST_REASONING_ENGINE_RESOURCE_NAME, display_name=_TEST_REASONING_ENGINE_DISPLAY_NAME, requirements=_TEST_REASONING_ENGINE_REQUIREMENTS, ) @@ -505,7 +514,6 @@ def test_create_reasoning_engine_noncallable_query_attribute( ): reasoning_engines.ReasoningEngine.create( InvalidCapitalizeEngineWithNoncallableQuery(), - reasoning_engine_name=_TEST_REASONING_ENGINE_RESOURCE_NAME, display_name=_TEST_REASONING_ENGINE_DISPLAY_NAME, requirements=_TEST_REASONING_ENGINE_REQUIREMENTS, ) @@ -521,7 +529,6 @@ def test_create_reasoning_engine_unsupported_sys_version( with pytest.raises(ValueError, match="Unsupported python version"): reasoning_engines.ReasoningEngine.create( self.test_app, - reasoning_engine_name=_TEST_REASONING_ENGINE_RESOURCE_NAME, display_name=_TEST_REASONING_ENGINE_DISPLAY_NAME, requirements=_TEST_REASONING_ENGINE_REQUIREMENTS, sys_version="2.6", @@ -538,7 +545,6 @@ def test_create_reasoning_engine_requirements_ioerror( with pytest.raises(IOError, match="Failed to read requirements"): reasoning_engines.ReasoningEngine.create( self.test_app, - reasoning_engine_name=_TEST_REASONING_ENGINE_RESOURCE_NAME, display_name=_TEST_REASONING_ENGINE_DISPLAY_NAME, requirements="nonexistent_requirements.txt", ) @@ -554,7 +560,6 @@ def test_create_reasoning_engine_nonexistent_extra_packages( with pytest.raises(FileNotFoundError, match="not found"): reasoning_engines.ReasoningEngine.create( self.test_app, - reasoning_engine_name=_TEST_REASONING_ENGINE_RESOURCE_NAME, display_name=_TEST_REASONING_ENGINE_DISPLAY_NAME, requirements=_TEST_REASONING_ENGINE_REQUIREMENTS, extra_packages=_TEST_REASONING_ENGINE_INVALID_EXTRA_PACKAGES, @@ -571,7 +576,6 @@ def test_create_reasoning_engine_with_invalid_query_method( with pytest.raises(ValueError, match="Invalid query signature"): reasoning_engines.ReasoningEngine.create( InvalidCapitalizeEngineWithoutQuerySelf(), - reasoning_engine_name=_TEST_REASONING_ENGINE_RESOURCE_NAME, display_name=_TEST_REASONING_ENGINE_DISPLAY_NAME, requirements=_TEST_REASONING_ENGINE_REQUIREMENTS, ) diff --git a/vertexai/reasoning_engines/_reasoning_engines.py b/vertexai/reasoning_engines/_reasoning_engines.py index 424ab0e117..c7ccad0dcf 100644 --- a/vertexai/reasoning_engines/_reasoning_engines.py +++ b/vertexai/reasoning_engines/_reasoning_engines.py @@ -178,6 +178,12 @@ def create( f"Unsupported python version: {sys_version}. ReasoningEngine " f"only supports {_SUPPORTED_PYTHON_VERSIONS} at the moment." ) + if reasoning_engine_name: + _LOGGER.warning( + "ReasoningEngine does not support user-defined resource IDs at " + f"the moment. Therefore {reasoning_engine_name=} would be " + "ignored and a random ID will be generated instead." + ) if sys_version != f"{sys.version_info.major}.{sys.version_info.minor}": _LOGGER.warning( f"{sys_version=} is inconsistent with {sys.version_info=}. "