Skip to content

Commit

Permalink
chore: Adds a warning when reasoning_engine_name is specified in Reas…
Browse files Browse the repository at this point in the history
…oningEngine create method.

PiperOrigin-RevId: 634462227
  • Loading branch information
Yeesian Ng authored and Copybara-Service committed May 16, 2024
1 parent 686b9de commit f8e76a6
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 13 deletions.
30 changes: 17 additions & 13 deletions tests/unit/vertex_langchain/test_reasoning_engines.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -300,15 +314,14 @@ 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,
)
# Manually set _gca_resource here to prevent the mocks from propagating.
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,
Expand All @@ -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",
)
Expand All @@ -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,
Expand All @@ -356,15 +368,14 @@ 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,
)
# Manually set _gca_resource here to prevent the mocks from propagating.
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,
Expand Down Expand Up @@ -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,
)
Expand All @@ -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,
)
Expand All @@ -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,
)
Expand All @@ -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",
Expand All @@ -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",
)
Expand All @@ -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,
Expand All @@ -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,
)
Expand Down
6 changes: 6 additions & 0 deletions vertexai/reasoning_engines/_reasoning_engines.py
Original file line number Diff line number Diff line change
Expand Up @@ -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=}. "
Expand Down

0 comments on commit f8e76a6

Please sign in to comment.