Unverified Commit d354763c authored by Yan Ru Pei's avatar Yan Ru Pei Committed by GitHub
Browse files

fix: python bindings for router should register to etcd as well (#3302)


Signed-off-by: default avatarPeaBrane <yanrpei@gmail.com>
parent c265cd67
...@@ -1050,21 +1050,20 @@ impl KvPushRouter { ...@@ -1050,21 +1050,20 @@ impl KvPushRouter {
)); ));
} }
// Create KvRouter with a unique consumer UUID // Create ModelManager and use it to create KvRouter (ensures etcd registration)
let consumer_uuid = uuid::Uuid::new_v4().to_string(); let model_manager = Arc::new(llm_rs::discovery::ModelManager::new());
let kv_router = llm_rs::kv_router::KvRouter::new( let kv_router = model_manager
component.clone(), .kv_chooser_for(
block_size as u32, "dummy_name", // does not matter, never cached
None, // default selector component,
Some(kv_router_config.inner()), block_size as u32,
consumer_uuid, Some(kv_router_config.inner()),
) )
.await .await
.map_err(to_pyerr)?; .map_err(to_pyerr)?;
// Create KvPushRouter // Create KvPushRouter (kv_router is already Arc<KvRouter>)
let kv_push_router = let kv_push_router = llm_rs::kv_router::KvPushRouter::new(push_router, kv_router);
llm_rs::kv_router::KvPushRouter::new(push_router, Arc::new(kv_router));
Ok(Self { Ok(Self {
inner: Arc::new(kv_push_router), inner: Arc::new(kv_push_router),
......
...@@ -227,22 +227,8 @@ impl ModelManager { ...@@ -227,22 +227,8 @@ impl ModelManager {
} }
return Ok(kv_chooser); return Ok(kv_chooser);
} }
self.create_kv_chooser(model_name, component, kv_cache_block_size, kv_router_config)
.await
}
fn get_kv_chooser(&self, model_name: &str) -> Option<Arc<KvRouter>> {
self.kv_choosers.lock().get(model_name).cloned()
}
/// Create and return a KV chooser for this component and model // Create new KV router with etcd registration
async fn create_kv_chooser(
&self,
model_name: &str,
component: &Component,
kv_cache_block_size: u32,
kv_router_config: Option<KvRouterConfig>,
) -> anyhow::Result<Arc<KvRouter>> {
let etcd_client = component let etcd_client = component
.drt() .drt()
.etcd_client() .etcd_client()
...@@ -278,6 +264,10 @@ impl ModelManager { ...@@ -278,6 +264,10 @@ impl ModelManager {
Ok(new_kv_chooser) Ok(new_kv_chooser)
} }
fn get_kv_chooser(&self, model_name: &str) -> Option<Arc<KvRouter>> {
self.kv_choosers.lock().get(model_name).cloned()
}
pub fn get_model_tool_call_parser(&self, model: &str) -> Option<String> { pub fn get_model_tool_call_parser(&self, model: &str) -> Option<String> {
self.cards self.cards
.lock() .lock()
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment