MCPcopy Create free account
hub / github.com/NVIDIA/NeMo-Relay / register_llm_request_intercept

Method register_llm_request_intercept

crates/python/src/py_plugin.rs:456–490  ·  view source on GitHub ↗
(
        &self,
        name: &str,
        priority: i32,
        break_chain: bool,
        callback: Py<PyAny>,
    )

Source from the content-addressed store, hash-verified

454 callback: "object"
455 ) -> "None", text_signature = "(name: str, priority: int, break_chain: bool, callback: object) -> None")]
456 fn register_llm_request_intercept(
457 &self,
458 name: &str,
459 priority: i32,
460 break_chain: bool,
461 callback: Py<PyAny>,
462 ) -> PyResult<()> {
463 let qualified_name = self.qualify_name(name);
464 register_llm_request_intercept(
465 &qualified_name,
466 priority,
467 break_chain,
468 wrap_py_llm_request_intercept_fn(callback),
469 )
470 .map_err(to_py_err)?;
471
472 let name_owned = qualified_name;
473 let mut guard = self.registrations.lock().map_err(|e| {
474 pyo3::exceptions::PyRuntimeError::new_err(format!("plugin context lock poisoned: {e}"))
475 })?;
476 guard.push(PluginRegistration::new(
477 "plugin",
478 name_owned.clone(),
479 Box::new(move || {
480 deregister_llm_request_intercept(&name_owned)
481 .map(|_| ())
482 .map_err(|e| {
483 PluginError::RegistrationFailed(format!(
484 "llm request intercept deregistration failed: {e}"
485 ))
486 })
487 }),
488 ));
489 Ok(())
490 }
491
492 #[pyo3(signature = (name: "str", priority: "int", callback: "object") -> "None", text_signature = "(name: str, priority: int, callback: object) -> None")]
493 fn register_llm_execution_intercept(

Calls 5

qualify_nameMethod · 0.45
pushMethod · 0.45