Skip to content

Commit dc690b9

Browse files
yeesiancopybara-github
authored andcommitted
fix: Relax the requirement to specify class_methods if Dockerfile/image_spec is provided
PiperOrigin-RevId: 889411129
1 parent da663c0 commit dc690b9

1 file changed

Lines changed: 24 additions & 25 deletions

File tree

vertexai/_genai/agent_engines.py

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1443,21 +1443,23 @@ def _set_source_code_spec(
14431443
"Please specify one of `source_packages`, `developer_connect_source`, "
14441444
"or `agent_config_source`."
14451445
)
1446-
if class_methods is None:
1446+
if class_methods is not None:
1447+
update_masks.append("spec.class_methods")
1448+
class_methods_spec_list = (
1449+
_agent_engines_utils._class_methods_to_class_methods_spec(
1450+
class_methods=class_methods
1451+
)
1452+
)
1453+
spec["class_methods"] = [
1454+
_agent_engines_utils._to_dict(class_method_spec)
1455+
for class_method_spec in class_methods_spec_list
1456+
]
1457+
elif image_spec is None:
14471458
raise ValueError(
14481459
"`class_methods` must be specified if `source_packages`, "
1449-
"`developer_connect_source`, or `agent_config_source` is specified."
1460+
"`developer_connect_source`, or `agent_config_source` is "
1461+
"specified without a Dockerfile or `image_spec`."
14501462
)
1451-
update_masks.append("spec.class_methods")
1452-
class_methods_spec_list = (
1453-
_agent_engines_utils._class_methods_to_class_methods_spec(
1454-
class_methods=class_methods
1455-
)
1456-
)
1457-
spec["class_methods"] = [
1458-
_agent_engines_utils._to_dict(class_method_spec)
1459-
for class_method_spec in class_methods_spec_list
1460-
]
14611463
if image_spec is not None:
14621464
if entrypoint_module or entrypoint_object or requirements_file:
14631465
raise ValueError(
@@ -1771,20 +1773,17 @@ def _create_config(
17711773
)
17721774
elif container_spec:
17731775
agent_engine_spec = {}
1774-
if class_methods is None:
1775-
raise ValueError(
1776-
"`class_methods` must be specified if `container_spec` is specified."
1777-
)
1778-
update_masks.append("spec.class_methods")
1779-
class_methods_spec_list = (
1780-
_agent_engines_utils._class_methods_to_class_methods_spec(
1781-
class_methods=class_methods
1776+
if class_methods is not None:
1777+
update_masks.append("spec.class_methods")
1778+
class_methods_spec_list = (
1779+
_agent_engines_utils._class_methods_to_class_methods_spec(
1780+
class_methods=class_methods
1781+
)
17821782
)
1783-
)
1784-
agent_engine_spec["class_methods"] = [
1785-
_agent_engines_utils._to_dict(class_method_spec)
1786-
for class_method_spec in class_methods_spec_list
1787-
]
1783+
agent_engine_spec["class_methods"] = [
1784+
_agent_engines_utils._to_dict(class_method_spec)
1785+
for class_method_spec in class_methods_spec_list
1786+
]
17881787
update_masks.append("spec.container_spec")
17891788
agent_engine_spec["container_spec"] = container_spec
17901789

0 commit comments

Comments
 (0)