Function nemo_relay_llm_call_execute

View as Markdown

Generated from cargo doc --no-deps -p nemo-relay -p nemo-relay-adaptive -p nemo-relay-ffi.

#[unsafe(no_mangle)]pub unsafe extern "C" fn nemo_relay_llm_call_execute(
    name: *const c_char,
    native_json: *const c_char,
    func: NemoRelayLlmExecCb,
    func_user_data: *mut c_void,
    func_free: NemoRelayFreeFn,
    parent: *const FfiScopeHandle,
    attributes: u32,
    data_json: *const c_char,
    metadata_json: *const c_char,
    model_name: *const c_char,
    codec_decode: NemoRelayCodecDecodeFn,
    codec_encode: NemoRelayCodecEncodeFn,
    codec_user_data: *mut c_void,
    codec_free_fn: NemoRelayFreeFn,
    response_codec: *const FfiCodecHandle,
    out: *mut *mut c_char,
) -> NemoRelayStatus

Execute an LLM call end-to-end: run conditional-execution guardrails (on raw request), then request intercepts, sanitize-request guardrails, execution intercepts, the callback, and sanitize-response guardrails. On rejection, only a standalone Mark event is emitted (no Start/End pair) and GuardrailRejected is returned. Blocks the calling thread until completion.

Parameters

  • name: Null-terminated LLM provider name.
  • native_json: The request payload as a JSON C string representing an LlmRequest ({"headers": {...}, "content": {...}}).
  • func: C callback that performs the actual LLM call.
  • func_user_data: Opaque pointer passed to func.
  • func_free: Optional destructor for func_user_data.
  • parent: Optional parent scope handle, or null.
  • attributes: Bitfield of LLM attributes.
  • data_json: Optional JSON data, or null.
  • metadata_json: Optional JSON metadata, or null.
  • model_name: Optional LLM model identifier, or null.
  • out: On success, receives the response as a JSON C string. Caller must free with nemo_relay_string_free.

Safety

name, native_json, and out must be valid, non-null pointers.