nemoguardrails.rails.llm.options

View as Markdown

Generation options give more control over the generation and the result.

For example, to run only the input rails::

Since everything is enabled by default, we disable explicitly the others

options = { “rails”: { “output”: False, “dialog”: False, “retrieval”: False } } messages = [{ “role”: “user”, “content”: “Am I allowed to say this?” }]

rails.generate(messages=messages, options=options)

To invoke only some specific input/output rails:

rails.generate(messages=messages, options={ “rails”: { “input”: [“check jailbreak”], “output”: [“output moderation v2”] } })

To provide additional parameters to the main LLM call:

rails.generate(messages=messages, options={ “llm_params”: { “temperature”: 0.5 } })

To return additional information from the generation (i.e., context variables):

This will include the relevant chunks in the returned response, as part

of the output_data field.

rails.generate(messages=messages, options={ “output_vars”: [“relevant_chunks”] })

To skip enforcing the rails, and only inform the user if they were triggered:

rails.generate(messages=messages, options={ “enforce”: False })

{…, log: {“triggered_rails”: {“type”: “input”, “name”: “check jailbreak”}}}

To get more details on the LLM calls that were executed, including the raw responses:

rails.generate(messages=messages, options={ “log”: { “llm_calls”: True } })

{…, log: {“llm_calls”: […]}}

Module Contents

Classes

NameDescription
ActivatedRailA rail that was activated during the generation.
ExecutedActionInformation about an action that was executed.
GenerationLogContains additional logging information associated with a generation call.
GenerationLogOptionsOptions for what should be included in the generation log.
GenerationOptionsA set of options that should be applied during a generation.
GenerationRailsOptionsOptions for what rails should be used during the generation.
GenerationResponse-
GenerationStatsGeneral stats about the generation.
RailStatus-
RailType-
RailsResult-

API

class nemoguardrails.rails.llm.options.ActivatedRail()

Bases: BaseModel

A rail that was activated during the generation.

additional_info
Optional[dict]
decisions
List[str]
duration
Optional[float]
executed_actions
List[ExecutedAction]
finished_at
Optional[float]
name
str
started_at
Optional[float]
stop
bool
type
str
class nemoguardrails.rails.llm.options.ExecutedAction()

Bases: BaseModel

Information about an action that was executed.

action_name
str
action_params
Dict[str, Any]
duration
Optional[float]
finished_at
Optional[float]
llm_calls
List[LLMCallInfo]
return_value
Any
started_at
Optional[float]
class nemoguardrails.rails.llm.options.GenerationLog()

Bases: BaseModel

Contains additional logging information associated with a generation call.

activated_rails
List[ActivatedRail]
colang_history
Optional[str]
internal_events
Optional[List[dict]]
llm_calls
Optional[List[LLMCallInfo]]
stats
GenerationStats
nemoguardrails.rails.llm.options.GenerationLog.print_summary()
class nemoguardrails.rails.llm.options.GenerationLogOptions()

Bases: BaseModel

Options for what should be included in the generation log.

activated_rails
bool
colang_history
bool
internal_events
bool
llm_calls
bool
class nemoguardrails.rails.llm.options.GenerationOptions()

Bases: BaseModel

A set of options that should be applied during a generation.

The GenerationOptions control various things such as what rails are enabled, additional parameters for the main LLM, whether the rails should be enforced or ran in parallel, what to be included in the generation log, etc.

llm_output
bool
llm_params
Optional[dict]
log
GenerationLogOptions
output_vars
Optional[Union[bool, List[str]]]
rails
GenerationRailsOptions
nemoguardrails.rails.llm.options.GenerationOptions.check_fields(
values
)
class nemoguardrails.rails.llm.options.GenerationRailsOptions()

Bases: BaseModel

Options for what rails should be used during the generation.

dialog
bool
input
Union[bool, List[str]]
output
Union[bool, List[str]]
retrieval
Union[bool, List[str]]
tool_input
Union[bool, List[str]]
tool_output
Union[bool, List[str]]
class nemoguardrails.rails.llm.options.GenerationResponse()

Bases: BaseModel

llm_metadata
Optional[dict]
llm_output
Optional[dict]
log
Optional[GenerationLog]
output_data
Optional[dict]
reasoning_content
Optional[str]
response
Union[str, List[dict]]
state
Optional[dict]
tool_calls
Optional[list]
class nemoguardrails.rails.llm.options.GenerationStats()

Bases: BaseModel

General stats about the generation.

dialog_rails_duration
Optional[float]
generation_rails_duration
Optional[float]
input_rails_duration
Optional[float]
llm_calls_count
Optional[int]
llm_calls_duration
Optional[float]
llm_calls_total_completion_tokens
Optional[int]
llm_calls_total_prompt_tokens
Optional[int]
llm_calls_total_tokens
Optional[int]
output_rails_duration
Optional[float]
total_duration
Optional[float]
class nemoguardrails.rails.llm.options.RailStatus

Bases: enum.Enum

BLOCKED
= 'blocked'
MODIFIED
= 'modified'
PASSED
= 'passed'
class nemoguardrails.rails.llm.options.RailType

Bases: enum.Enum

INPUT
= 'input'
OUTPUT
= 'output'
class nemoguardrails.rails.llm.options.RailsResult()

Bases: BaseModel

content
str
rail
Optional[str]
status
RailStatus