nemoguardrails.integrations.langchain.middleware

View as Markdown

Module Contents

Classes

Data

log

API

class nemoguardrails.integrations.langchain.middleware.GuardrailsMiddleware(
config_path: typing.Optional[str] = None,
config_yaml: typing.Optional[str] = None,
raise_on_violation: bool = False,
blocked_input_message: str = 'I cannot process this requ...,
blocked_output_message: str = 'I cannot provide this resp...,
enable_input_rails: bool = True,
enable_output_rails: bool = True
)

Bases: AgentMiddleware

rails
= LLMRails(config=config)
nemoguardrails.integrations.langchain.middleware.GuardrailsMiddleware._convert_to_rails_messages(
messages: typing.List[langchain_core.messages.BaseMessage]
) -> typing.List[typing.Dict[str, typing.Any]]
nemoguardrails.integrations.langchain.middleware.GuardrailsMiddleware._get_last_ai_message(
messages: typing.List[langchain_core.messages.BaseMessage]
) -> typing.Optional[langchain_core.messages.AIMessage]
nemoguardrails.integrations.langchain.middleware.GuardrailsMiddleware._get_last_user_message(
messages: typing.List[langchain_core.messages.BaseMessage]
) -> typing.Optional[langchain_core.messages.HumanMessage]
nemoguardrails.integrations.langchain.middleware.GuardrailsMiddleware._handle_guardrail_failure(
result: nemoguardrails.rails.llm.options.RailsResult,
rail_type: str,
blocked_message: str
) -> None
nemoguardrails.integrations.langchain.middleware.GuardrailsMiddleware._has_input_rails() -> bool
nemoguardrails.integrations.langchain.middleware.GuardrailsMiddleware._has_output_rails() -> bool
nemoguardrails.integrations.langchain.middleware.GuardrailsMiddleware._replace_last_ai_message(
messages: list,
replacement: langchain_core.messages.AIMessage
) -> list
nemoguardrails.integrations.langchain.middleware.GuardrailsMiddleware._replace_last_human_message(
messages: list,
replacement: langchain_core.messages.HumanMessage
) -> list
nemoguardrails.integrations.langchain.middleware.GuardrailsMiddleware.aafter_model(
state: langchain.agents.middleware.types.AgentState,
runtime: langgraph.runtime.Runtime
) -> typing.Optional[typing.Dict[str, typing.Any]]
async
nemoguardrails.integrations.langchain.middleware.GuardrailsMiddleware.abefore_model(
state: langchain.agents.middleware.types.AgentState,
runtime: langgraph.runtime.Runtime
) -> typing.Optional[typing.Dict[str, typing.Any]]
async
nemoguardrails.integrations.langchain.middleware.GuardrailsMiddleware.after_model(
state: langchain.agents.middleware.types.AgentState,
runtime: langgraph.runtime.Runtime
) -> typing.Optional[typing.Dict[str, typing.Any]]
nemoguardrails.integrations.langchain.middleware.GuardrailsMiddleware.before_model(
state: langchain.agents.middleware.types.AgentState,
runtime: langgraph.runtime.Runtime
) -> typing.Optional[typing.Dict[str, typing.Any]]
class nemoguardrails.integrations.langchain.middleware.InputRailsMiddleware(
config_path: typing.Optional[str] = None,
config_yaml: typing.Optional[str] = None,
raise_on_violation: bool = False,
blocked_input_message: str = 'I cannot process this requ...
)

Bases: GuardrailsMiddleware

nemoguardrails.integrations.langchain.middleware.InputRailsMiddleware.aafter_model(
state: langchain.agents.middleware.types.AgentState,
runtime: langgraph.runtime.Runtime
) -> typing.Optional[typing.Dict[str, typing.Any]]
async
nemoguardrails.integrations.langchain.middleware.InputRailsMiddleware.after_agent(
state: langchain.agents.middleware.types.AgentState,
runtime: langgraph.runtime.Runtime
) -> typing.Optional[typing.Dict[str, typing.Any]]
class nemoguardrails.integrations.langchain.middleware.OutputRailsMiddleware(
config_path: typing.Optional[str] = None,
config_yaml: typing.Optional[str] = None,
raise_on_violation: bool = False,
blocked_output_message: str = 'I cannot provide this resp...
)

Bases: GuardrailsMiddleware

nemoguardrails.integrations.langchain.middleware.OutputRailsMiddleware.abefore_model(
state: langchain.agents.middleware.types.AgentState,
runtime: langgraph.runtime.Runtime
) -> typing.Optional[typing.Dict[str, typing.Any]]
async
nemoguardrails.integrations.langchain.middleware.OutputRailsMiddleware.before_agent(
state: langchain.agents.middleware.types.AgentState,
runtime: langgraph.runtime.Runtime
) -> typing.Optional[typing.Dict[str, typing.Any]]
nemoguardrails.integrations.langchain.middleware.log = logging.getLogger(__name__)