> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/guardrails/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/guardrails/_mcp/server.

# nemoguardrails.library.self_check.utils

## Module Contents

### Functions

| Name                                                                                                      | Description                                                                 |
| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
| [`get_self_check_llm`](#nemoguardrails-library-self_check-utils-get_self_check_llm)                       | -                                                                           |
| [`get_self_check_prompt_task`](#nemoguardrails-library-self_check-utils-get_self_check_prompt_task)       | Resolve the prompt task name while supporting deprecated bare custom tasks. |
| [`get_self_check_task_from_rail`](#nemoguardrails-library-self_check-utils-get_self_check_task_from_rail) | -                                                                           |
| [`parse_self_check_output`](#nemoguardrails-library-self_check-utils-parse_self_check_output)             | -                                                                           |
| [`resolve_self_check_task`](#nemoguardrails-library-self_check-utils-resolve_self_check_task)             | -                                                                           |
| [`run_self_check_task`](#nemoguardrails-library-self_check-utils-run_self_check_task)                     | -                                                                           |

### Data

[`SELF_CHECK_INPUT_DEFAULT_TASK`](#nemoguardrails-library-self_check-utils-SELF_CHECK_INPUT_DEFAULT_TASK)

[`SELF_CHECK_INPUT_FLOW`](#nemoguardrails-library-self_check-utils-SELF_CHECK_INPUT_FLOW)

[`SELF_CHECK_INPUT_VARIANT_PARAM`](#nemoguardrails-library-self_check-utils-SELF_CHECK_INPUT_VARIANT_PARAM)

[`SELF_CHECK_OUTPUT_DEFAULT_TASK`](#nemoguardrails-library-self_check-utils-SELF_CHECK_OUTPUT_DEFAULT_TASK)

[`SELF_CHECK_OUTPUT_FLOW`](#nemoguardrails-library-self_check-utils-SELF_CHECK_OUTPUT_FLOW)

[`SELF_CHECK_OUTPUT_VARIANT_PARAM`](#nemoguardrails-library-self_check-utils-SELF_CHECK_OUTPUT_VARIANT_PARAM)

[`SELF_CHECK_VARIANT_PARAM`](#nemoguardrails-library-self_check-utils-SELF_CHECK_VARIANT_PARAM)

[`log`](#nemoguardrails-library-self_check-utils-log)

### API

```python
nemoguardrails.library.self_check.utils.get_self_check_llm(
    llms: typing.Dict[str, nemoguardrails.types.LLMModel],
    task: str,
    default_task: str,
    main_llm: typing.Optional[nemoguardrails.types.LLMModel]
) -> nemoguardrails.types.LLMModel
```

```python
nemoguardrails.library.self_check.utils.get_self_check_prompt_task(
    task: str,
    default_task: str,
    available_prompt_tasks: typing.Optional[collections.abc.Collection[str]] = None
) -> str
```

Resolve the prompt task name while supporting deprecated bare custom tasks.

```python
nemoguardrails.library.self_check.utils.get_self_check_task_from_rail(
    flow: typing.Any,
    flow_id: str,
    variant_param: str,
    default_task: str
) -> typing.Optional[str]
```

```python
nemoguardrails.library.self_check.utils.parse_self_check_output(
    llm_task_manager: typing.Any,
    task: str,
    response: str
)
```

```python
nemoguardrails.library.self_check.utils.resolve_self_check_task(
    variant: typing.Optional[str],
    context: typing.Optional[dict],
    events: typing.Optional[typing.List[dict]],
    triggered_rail_key: str,
    start_rail_event_type: str,
    flow_id: str,
    variant_param: str,
    default_task: str
) -> str
```

```python
nemoguardrails.library.self_check.utils.run_self_check_task(
    task: str,
    prompt_context: typing.Dict[str, typing.Any],
    llms: typing.Dict[str, nemoguardrails.types.LLMModel],
    default_task: str,
    main_llm: typing.Optional[nemoguardrails.types.LLMModel],
    llm_task_manager: typing.Any,
    lowest_temperature: float,
    max_tokens: int = 1024
) -> tuple[bool, str]
```

async

```python
nemoguardrails.library.self_check.utils.SELF_CHECK_INPUT_DEFAULT_TASK = 'self_check_input'
```

```python
nemoguardrails.library.self_check.utils.SELF_CHECK_INPUT_FLOW = 'self check input'
```

```python
nemoguardrails.library.self_check.utils.SELF_CHECK_INPUT_VARIANT_PARAM = SELF_CHECK_VARIANT_PARAM
```

```python
nemoguardrails.library.self_check.utils.SELF_CHECK_OUTPUT_DEFAULT_TASK = 'self_check_output'
```

```python
nemoguardrails.library.self_check.utils.SELF_CHECK_OUTPUT_FLOW = 'self check output'
```

```python
nemoguardrails.library.self_check.utils.SELF_CHECK_OUTPUT_VARIANT_PARAM = SELF_CHECK_VARIANT_PARAM
```

```python
nemoguardrails.library.self_check.utils.SELF_CHECK_VARIANT_PARAM = 'variant'
```

```python
nemoguardrails.library.self_check.utils.log = logging.getLogger(__name__)
```