> 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._compat.langchain_kwargs

0.21 -> 0.22 LangChain config migration helper.

Detects LangChain Python-side flags in `model.parameters` when the
default framework is active and raises a clear error at LLMRails
construction, so a stale 0.21 LangChain config surfaces during init
rather than as an opaque HTTP 400 deep in a guardrail call.

Remove in 0.23.0. After 0.23 any unrecognized parameter is forwarded
verbatim to the OpenAI-compatible HTTP client; the wire's HTTP 400 is
the user's signal to clean up.

## Module Contents

### Functions

| Name                                                                                        | Description                                                        |
| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ |
| [`_canonical_name_for`](#nemoguardrails-_compat-langchain_kwargs-_canonical_name_for)       | -                                                                  |
| [`_detect_provider_alias`](#nemoguardrails-_compat-langchain_kwargs-_detect_provider_alias) | -                                                                  |
| [`_violations_for`](#nemoguardrails-_compat-langchain_kwargs-_violations_for)               | Return a list of (model\_type, action) tuples for one model.       |
| [`check_langchain_kwargs`](#nemoguardrails-_compat-langchain_kwargs-check_langchain_kwargs) | Raise ValueError if any model carries LangChain Python-side flags. |

### Data

[`_LANGCHAIN_BASE_FLAGS`](#nemoguardrails-_compat-langchain_kwargs-_LANGCHAIN_BASE_FLAGS)

[`_PROVIDER_PREFIXED_ALIAS`](#nemoguardrails-_compat-langchain_kwargs-_PROVIDER_PREFIXED_ALIAS)

### API

```python
nemoguardrails._compat.langchain_kwargs._canonical_name_for(
    matched_canonical: str
) -> str
```

```python
nemoguardrails._compat.langchain_kwargs._detect_provider_alias(
    name: str
) -> typing.Optional[str]
```

```python
nemoguardrails._compat.langchain_kwargs._violations_for(
    model_type: str,
    engine: str,
    parameters: dict
) -> typing.List[typing.Tuple[str, str]]
```

Return a list of (model\_type, action) tuples for one model.

```python
nemoguardrails._compat.langchain_kwargs.check_langchain_kwargs(
    models: typing.Iterable[nemoguardrails.rails.llm.config.Model],
    active_framework: str
) -> None
```

Raise ValueError if any model carries LangChain Python-side flags.

No-op when the active framework is anything other than `default`;
LangChain-flavored kwargs are valid on the LangChain framework.

```python
nemoguardrails._compat.langchain_kwargs._LANGCHAIN_BASE_FLAGS = frozenset({'streaming', 'disable_streaming', 'verbose', 'cache', 'callbacks', 't...
```

```python
nemoguardrails._compat.langchain_kwargs._PROVIDER_PREFIXED_ALIAS = re.compile('^(?P<prefix>[a-zA-Z]\\w*?)_(?P<canonical>api_key|base_url|api_base|e...
```