11// SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
22// SPDX-License-Identifier: Apache-2.0
33
4+ use std:: {
5+ collections:: { HashMap , HashSet } ,
6+ sync:: { Arc , RwLock } ,
7+ } ;
8+
9+ use parking_lot:: Mutex ;
10+
411use dynamo_runtime:: component:: Component ;
512use dynamo_runtime:: prelude:: DistributedRuntimeProvider ;
613use dynamo_runtime:: slug:: Slug ;
714
815use crate :: discovery:: ModelEntry ;
9-
1016use crate :: kv_router:: { KvRouterConfig , scheduler:: DefaultWorkerSelector } ;
1117use crate :: {
1218 kv_router:: KvRouter ,
@@ -15,12 +21,6 @@ use crate::{
1521 completions:: OpenAICompletionsStreamingEngine , embeddings:: OpenAIEmbeddingsStreamingEngine ,
1622 } ,
1723} ;
18- use std:: collections:: HashSet ;
19- use std:: sync:: RwLock ;
20- use std:: {
21- collections:: HashMap ,
22- sync:: { Arc , Mutex } ,
23- } ;
2424
2525#[ derive( Debug , thiserror:: Error ) ]
2626pub enum ModelManagerError {
@@ -61,7 +61,7 @@ impl ModelManager {
6161 }
6262
6363 pub fn get_model_entries ( & self ) -> Vec < ModelEntry > {
64- self . entries . lock ( ) . unwrap ( ) . values ( ) . cloned ( ) . collect ( )
64+ self . entries . lock ( ) . values ( ) . cloned ( ) . collect ( )
6565 }
6666
6767 pub fn has_model_any ( & self , model : & str ) -> bool {
@@ -170,12 +170,12 @@ impl ModelManager {
170170 /// Save a ModelEntry under an instance's etcd `models/` key so we can fetch it later when the key is
171171 /// deleted from etcd.
172172 pub fn save_model_entry ( & self , key : & str , entry : ModelEntry ) {
173- self . entries . lock ( ) . unwrap ( ) . insert ( key. to_string ( ) , entry) ;
173+ self . entries . lock ( ) . insert ( key. to_string ( ) , entry) ;
174174 }
175175
176176 /// Remove and return model entry for this instance's etcd key. We do this when the instance stops.
177177 pub fn remove_model_entry ( & self , key : & str ) -> Option < ModelEntry > {
178- self . entries . lock ( ) . unwrap ( ) . remove ( key)
178+ self . entries . lock ( ) . remove ( key)
179179 }
180180
181181 pub async fn kv_chooser_for (
@@ -203,7 +203,7 @@ impl ModelManager {
203203 }
204204
205205 fn get_kv_chooser ( & self , model_name : & str ) -> Option < Arc < KvRouter > > {
206- self . kv_choosers . lock ( ) . unwrap ( ) . get ( model_name) . cloned ( )
206+ self . kv_choosers . lock ( ) . get ( model_name) . cloned ( )
207207 }
208208
209209 /// Create and return a KV chooser for this component and model
@@ -242,21 +242,18 @@ impl ModelManager {
242242 let new_kv_chooser = Arc :: new ( chooser) ;
243243 self . kv_choosers
244244 . lock ( )
245- . unwrap ( )
246245 . insert ( model_name. to_string ( ) , new_kv_chooser. clone ( ) ) ;
247246 Ok ( new_kv_chooser)
248247 }
249248
250249 pub fn get_model_tool_call_parser ( & self , model : & str ) -> Option < String > {
251- match self . entries . lock ( ) {
252- Ok ( entries) => entries
253- . values ( )
254- . find ( |entry| entry. name == model)
255- . and_then ( |entry| entry. runtime_config . as_ref ( ) )
256- . and_then ( |config| config. tool_call_parser . clone ( ) )
257- . map ( |parser| parser. to_string ( ) ) ,
258- Err ( _) => None ,
259- }
250+ self . entries
251+ . lock ( )
252+ . values ( )
253+ . find ( |entry| entry. name == model)
254+ . and_then ( |entry| entry. runtime_config . as_ref ( ) )
255+ . and_then ( |config| config. tool_call_parser . clone ( ) )
256+ . map ( |parser| parser. to_string ( ) )
260257 }
261258}
262259
0 commit comments