Skip to content

Commit 350a59d

Browse files
authored
Enhance AQUA SDK to Inject VLLM_USE_V1 Based on Global Container Config (#1184)
1 parent 75905e0 commit 350a59d

File tree

2 files changed

+39
-40
lines changed

2 files changed

+39
-40
lines changed

ads/aqua/config/container_config.py

Lines changed: 38 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from oci.data_science.models import ContainerSummary
88
from pydantic import Field
99

10+
from ads.aqua import logger
1011
from ads.aqua.config.utils.serializer import Serializable
1112
from ads.aqua.constants import (
1213
SERVICE_MANAGED_CONTAINER_URI_SCHEME,
@@ -168,50 +169,47 @@ def from_service_config(
168169
container_type = container.family_name
169170
usages = [x.upper() for x in container.usages]
170171
if "INFERENCE" in usages or "MULTI_MODEL" in usages:
172+
# Extract additional configurations
173+
additional_configurations = {}
174+
try:
175+
additional_configurations = (
176+
container.workload_configuration_details_list[
177+
0
178+
].additional_configurations
179+
)
180+
except (AttributeError, IndexError) as ex:
181+
logger.debug(
182+
"Failed to extract `additional_configurations` for container '%s': %s",
183+
getattr(container, "container_name", "<unknown>"),
184+
ex,
185+
)
186+
171187
container_item.platforms.append(
172-
container.workload_configuration_details_list[
173-
0
174-
].additional_configurations.get("platforms")
188+
additional_configurations.get("platforms")
175189
)
176190
container_item.model_formats.append(
177-
container.workload_configuration_details_list[
178-
0
179-
].additional_configurations.get("modelFormats")
191+
additional_configurations.get("modelFormats")
180192
)
193+
194+
# Parse environment variables from `additional_configurations`.
195+
# Only keys present in the configuration will be added to the result.
196+
config_keys = {
197+
"MODEL_DEPLOY_PREDICT_ENDPOINT": UNKNOWN,
198+
"MODEL_DEPLOY_HEALTH_ENDPOINT": UNKNOWN,
199+
"MODEL_DEPLOY_ENABLE_STREAMING": UNKNOWN,
200+
"PORT": UNKNOWN,
201+
"HEALTH_CHECK_PORT": UNKNOWN,
202+
"VLLM_USE_V1": UNKNOWN,
203+
}
204+
181205
env_vars = [
182-
{
183-
"MODEL_DEPLOY_PREDICT_ENDPOINT": container.workload_configuration_details_list[
184-
0
185-
].additional_configurations.get(
186-
"MODEL_DEPLOY_PREDICT_ENDPOINT", UNKNOWN
187-
)
188-
},
189-
{
190-
"MODEL_DEPLOY_HEALTH_ENDPOINT": container.workload_configuration_details_list[
191-
0
192-
].additional_configurations.get(
193-
"MODEL_DEPLOY_HEALTH_ENDPOINT", UNKNOWN
194-
)
195-
},
196-
{
197-
"MODEL_DEPLOY_ENABLE_STREAMING": container.workload_configuration_details_list[
198-
0
199-
].additional_configurations.get(
200-
"MODEL_DEPLOY_ENABLE_STREAMING", UNKNOWN
201-
)
202-
},
203-
{
204-
"PORT": container.workload_configuration_details_list[
205-
0
206-
].additional_configurations.get("PORT", "")
207-
},
208-
{
209-
"HEALTH_CHECK_PORT": container.workload_configuration_details_list[
210-
0
211-
].additional_configurations.get("HEALTH_CHECK_PORT", UNKNOWN),
212-
},
206+
{key: additional_configurations.get(key, default)}
207+
for key, default in config_keys.items()
208+
if key in additional_configurations
213209
]
214-
container_spec = AquaContainerConfigSpec(
210+
211+
# Build container spec
212+
container_item.spec = AquaContainerConfigSpec(
215213
cli_param=container.workload_configuration_details_list[0].cmd,
216214
server_port=str(
217215
container.workload_configuration_details_list[0].server_port
@@ -236,13 +234,14 @@ def from_service_config(
236234
)
237235
),
238236
)
239-
container_item.spec = container_spec
237+
240238
if "INFERENCE" in usages or "MULTI_MODEL" in usages:
241239
inference_items[container_type] = container_item
242240
if "FINE_TUNE" in usages:
243241
finetune_items[container_type] = container_item
244242
if "EVALUATION" in usages:
245243
evaluate_items[container_type] = container_item
244+
246245
return cls(
247246
inference=inference_items, finetune=finetune_items, evaluate=evaluate_items
248247
)

tests/unitary/with_extras/aqua/test_ui.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -606,7 +606,7 @@ def test_list_containers(self, mock_list_service_containers):
606606
"cli_param": "--served-model-name odsc-llm --disable-custom-all-reduce --seed 42 ",
607607
"env_vars": [
608608
{"MODEL_DEPLOY_PREDICT_ENDPOINT": "/v1/completions"},
609-
{"MODEL_DEPLOY_HEALTH_ENDPOINT": ""},
609+
# {"MODEL_DEPLOY_HEALTH_ENDPOINT": ""},
610610
{"MODEL_DEPLOY_ENABLE_STREAMING": "true"},
611611
{"PORT": "8080"},
612612
{"HEALTH_CHECK_PORT": "8080"},

0 commit comments

Comments
 (0)