Skip to content

Commit 79c14c8

Browse files
committed
update serve deploy command
1 parent 0c4acc0 commit 79c14c8

File tree

5 files changed

+43
-18
lines changed

5 files changed

+43
-18
lines changed

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -163,4 +163,5 @@ hyperloop
163163
scripts
164164
konark/
165165
_modules/
166-
nbox/_jobs
166+
nbox/_jobs
167+
lmao_v4/

nbox/init.py

+21
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,27 @@
2929
from nbox.version import __version__
3030

3131

32+
class WorkspaceIdInjectInterceptor(grpc.UnaryUnaryClientInterceptor):
33+
def intercept_unary_unary(self, continuation, client_call_details, request):
34+
if hasattr(request, "workspace_id"):
35+
request.workspace_id = secret.workspace_id
36+
return continuation(client_call_details, request)
37+
38+
39+
class MetadataInjectInterceptor(grpc.UnaryUnaryClientInterceptor):
40+
def intercept_unary_unary(self, continuation, client_call_details, request):
41+
newdet = grpc.ClientCallDetails()
42+
newdet.method = client_call_details.method
43+
newdet.timeout = client_call_details.timeout
44+
newdet.metadata = [
45+
("authorization", f"Bearer {secret.access_token}")
46+
]
47+
newdet.credentials = client_call_details.credentials
48+
newdet.wait_for_ready = client_call_details.wait_for_ready
49+
newdet.compression = client_call_details.compression
50+
return continuation(newdet, request)
51+
52+
3253
def __create_channel(channel_name) -> grpc.Channel:
3354
"""Create a gRPC channel with the Webserver, this will return `webserver_channel` with credentials and ssl.
3455

nbox/jobs.py

+18-15
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import os
88
import sys
9+
import grpc
910
import tabulate
1011
from typing import Tuple, List, Dict
1112
from functools import lru_cache, partial
@@ -15,7 +16,7 @@
1516

1617
import nbox.utils as U
1718
from nbox.auth import secret, AuthConfig, auth_info_pb
18-
from nbox.utils import logger
19+
from nbox.utils import logger, lo
1920
from nbox.version import __version__
2021
from nbox import messages as mpb
2122
# from nbox.messages import rpc, streaming_rpc
@@ -355,6 +356,7 @@ def upload_job_folder(
355356
# creation of resources, we first need to check if any resource arguments are passed, if they are
356357
def __common_resource(db: Resource) -> Resource:
357358
# get a common resource based on what the user has said, what the db has and defaults if nothing is given
359+
logger.debug(lo("db resources", **mpb.message_to_dict(db)))
358360
resource = Resource(
359361
cpu = str(resource_cpu) or db.cpu or ospec.DEFAULT_RESOURCE.cpu,
360362
memory = str(resource_memory) or db.memory or ospec.DEFAULT_RESOURCE.memory,
@@ -377,6 +379,7 @@ def __common_resource(db: Resource) -> Resource:
377379
)
378380
)
379381
resource = __common_resource(job_proto.resource)
382+
logger.debug(lo("resources", **mpb.message_to_dict(resource)))
380383
out: Job = deploy_job(
381384
init_folder = init_folder,
382385
job_id = job_proto.id,
@@ -395,7 +398,7 @@ def __common_resource(db: Resource) -> Resource:
395398
elif method == ospec.OperatorType.SERVING:
396399
model_name = model_name or U.get_random_name().replace("-", "_")
397400
logger.info(f"Model name: {model_name}")
398-
401+
399402
# serving_id, serving_name = _get_deployment_data(name = name, id = id, workspace_id = workspace_id)
400403
serving_proto: Serving = nbox_serving_service_stub.GetServing(
401404
ServingRequest(
@@ -404,6 +407,7 @@ def __common_resource(db: Resource) -> Resource:
404407
)
405408
)
406409
resource = __common_resource(serving_proto.resource)
410+
logger.debug(lo("resources", **mpb.message_to_dict(resource)))
407411
out: Serve = deploy_serving(
408412
init_folder = init_folder,
409413
serving_id = serving_proto.id,
@@ -638,19 +642,18 @@ def deploy(self, tag: str = "", feature_gates: Dict[str, str] = {}):
638642
serving_group_id = self.serving_id,
639643
)
640644
if tag:
641-
model.feature_gates.update({
642-
"SetModelMetadata": tag,
643-
**feature_gates,
644-
})
645-
response: ModelProto = mpb.rpc(
646-
nbox_model_service_stub.Deploy,
647-
ModelRequest(
648-
model = model,
649-
auth_info = auth_info_pb(),
650-
),
651-
"Could not deploy model",
652-
raise_on_error=True
653-
)
645+
model.feature_gates.update({"SetModelMetadata": tag})
646+
if feature_gates:
647+
model.feature_gates.update(feature_gates)
648+
logger.info(f"Deploying model {self.model_id} to deployment {self.serving_id} with tag: '{tag}' and feature gates: {feature_gates}")
649+
try:
650+
nbox_model_service_stub.Deploy(ModelRequest(model = model, auth_info = auth_info_pb()))
651+
except grpc.RpcError as e:
652+
logger.error(lo(
653+
f"Could not deploy model {self.model_id} to deployment {self.serving_id}\n",
654+
f"gRPC Code: {e.code()}\n"
655+
f" Error: {e.details()}",
656+
))
654657

655658

656659
################################################################################

nbox/version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
__version__ = "0.12.5c10"
1+
__version__ = "0.12.5c11"
22
_major, _minor, _patch = __version__.split(".")
33
_major = int(_major)
44
_minor = int(_minor)

pyproject.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "nbox"
3-
version = "0.12.5c10"
3+
version = "0.12.5c11"
44
description = "ML Inference 🥶"
55
authors = [
66
"NBX Research <research@nimblebox.ai>",

0 commit comments

Comments
 (0)