@@ -1042,6 +1042,20 @@ def _get_model_label(self, service) -> Optional[str]:
1042
1042
return None
1043
1043
return service .spec .selector .get ("model" )
1044
1044
1045
+ def _get_model_type (self , service ) -> str :
1046
+ """
1047
+ Get the model type from the service's metadata labels.
1048
+
1049
+ Args:
1050
+ service: The Kubernetes service object
1051
+
1052
+ Returns:
1053
+ The model type if found, 'chat' as default otherwise
1054
+ """
1055
+ if not service .metadata .labels :
1056
+ return "chat" # Default to chat model type
1057
+ return service .metadata .labels .get ("model_type" , "chat" )
1058
+
1045
1059
def _watch_engines (self ):
1046
1060
while self .running :
1047
1061
try :
@@ -1064,21 +1078,24 @@ def _watch_engines(self):
1064
1078
if is_service_ready :
1065
1079
model_names = self ._get_model_names (service_name )
1066
1080
model_label = self ._get_model_label (service )
1081
+ model_type = self ._get_model_type (service )
1067
1082
else :
1068
1083
model_names = []
1069
1084
model_label = None
1085
+ model_type = None
1070
1086
self ._on_engine_update (
1071
1087
service_name ,
1072
1088
event_type ,
1073
1089
is_service_ready ,
1074
1090
model_names ,
1075
1091
model_label ,
1092
+ model_type ,
1076
1093
)
1077
1094
except Exception as e :
1078
1095
logger .error (f"K8s watcher error: { e } " )
1079
1096
time .sleep (0.5 )
1080
1097
1081
- def _add_engine (self , engine_name : str , model_names : List [str ], model_label : str ):
1098
+ def _add_engine (self , engine_name : str , model_names : List [str ], model_label : str , model_type : str ):
1082
1099
logger .info (
1083
1100
f"Discovered new serving engine { engine_name } at "
1084
1101
f"running models: { model_names } "
@@ -1100,6 +1117,7 @@ def _add_engine(self, engine_name: str, model_names: List[str], model_label: str
1100
1117
added_timestamp = int (time .time ()),
1101
1118
Id = str (uuid .uuid5 (uuid .NAMESPACE_DNS , engine_name )),
1102
1119
model_label = model_label ,
1120
+ model_type = model_type ,
1103
1121
sleep = sleep_status ,
1104
1122
service_name = engine_name ,
1105
1123
namespace = self .namespace ,
@@ -1121,6 +1139,7 @@ def _on_engine_update(
1121
1139
is_service_ready : bool ,
1122
1140
model_names : List [str ],
1123
1141
model_label : Optional [str ],
1142
+ model_type : Optional [str ],
1124
1143
) -> None :
1125
1144
if event == "ADDED" :
1126
1145
if not engine_name :
@@ -1132,7 +1151,7 @@ def _on_engine_update(
1132
1151
if not model_names :
1133
1152
return
1134
1153
1135
- self ._add_engine (engine_name , model_names , model_label )
1154
+ self ._add_engine (engine_name , model_names , model_label , model_type )
1136
1155
1137
1156
elif event == "DELETED" :
1138
1157
if engine_name not in self .available_engines :
@@ -1145,7 +1164,7 @@ def _on_engine_update(
1145
1164
return
1146
1165
1147
1166
if is_service_ready and model_names :
1148
- self ._add_engine (engine_name , model_names , model_label )
1167
+ self ._add_engine (engine_name , model_names , model_label , model_type )
1149
1168
return
1150
1169
1151
1170
if (
0 commit comments