33import os
44import sys
55import Algorithmia
6+ import os
7+ import subprocess
8+
69from adk .io import create_exception , format_data , format_response
710from adk .modeldata import ModelData
11+ from adk .mlops import MLOps
812
913
1014class ADK (object ):
@@ -17,6 +21,7 @@ def __init__(self, apply_func, load_func=None, client=None):
1721 :param client: A Algorithmia Client instance that might be user defined,
1822 and is used for interacting with a model manifest file; if defined.
1923 """
24+ self .mlops = None
2025 self .FIFO_PATH = "/tmp/algoout"
2126
2227 if client :
@@ -39,10 +44,8 @@ def __init__(self, apply_func, load_func=None, client=None):
3944 self .load_result = None
4045 self .loading_exception = None
4146 self .manifest_path = "model_manifest.json"
42- self .model_data = self .init_manifest (self .manifest_path )
43-
44- def init_manifest (self , path ):
45- return ModelData (self .client , path )
47+ self .mlops_path = "mlops.json"
48+ self .model_data = ModelData (self .client , self .manifest_path )
4649
4750 def load (self ):
4851 try :
@@ -91,8 +94,18 @@ def write_to_pipe(self, payload, pprint=print):
9194 def process_local (self , local_payload , pprint ):
9295 result = self .apply (local_payload )
9396 self .write_to_pipe (result , pprint = pprint )
97+
98+ def mlops_init (self ):
99+ mlops_token = os .environ .get ("DATAROBOT_MLOPS_API_TOKEN" , None )
100+ if mlops_token :
101+ self .mlops = MLOps (mlops_token , self .mlops_path )
102+ self .mlops .init ()
103+ else :
104+ raise Exception ("'DATAROBOT_MLOPS_API_TOKEN' was not found, please set to use mlops." )
94105
95- def init (self , local_payload = None , pprint = print ):
106+ def init (self , local_payload = None , pprint = print , mlops = False ):
107+ if mlops and not self .is_local :
108+ self .mlops_init ()
96109 self .load ()
97110 if self .is_local and local_payload is not None :
98111 if self .loading_exception :
0 commit comments