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

Method register_llm_sanitize_request_guardrail

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

Source from the content-addressed store, hash-verified

344
345 #[pyo3(signature = (name: "str", priority: "int", callback: "object") -> "None", text_signature = "(name: str, priority: int, callback: object) -> None")]
346 fn register_llm_sanitize_request_guardrail(
347 &self,
348 name: &str,
349 priority: i32,
350 callback: Py<PyAny>,
351 ) -> PyResult<()> {
352 let qualified_name = self.qualify_name(name);
353 register_llm_sanitize_request_guardrail(
354 &qualified_name,
355 priority,
356 wrap_py_llm_sanitize_request_fn(callback),
357 )
358 .map_err(to_py_err)?;
359
360 let name_owned = qualified_name;
361 let mut guard = self.registrations.lock().map_err(|e| {
362 pyo3::exceptions::PyRuntimeError::new_err(format!("plugin context lock poisoned: {e}"))
363 })?;
364 guard.push(PluginRegistration::new(
365 "plugin",
366 name_owned.clone(),
367 Box::new(move || {
368 deregister_llm_sanitize_request_guardrail(&name_owned)
369 .map(|_| ())
370 .map_err(|e| {
371 PluginError::RegistrationFailed(format!(
372 "llm sanitize request guardrail deregistration failed: {e}"
373 ))
374 })
375 }),
376 ));
377 Ok(())
378 }
379
380 #[pyo3(signature = (name: "str", priority: "int", callback: "object") -> "None", text_signature = "(name: str, priority: int, callback: object) -> None")]
381 fn register_llm_sanitize_response_guardrail(