> ## Documentation Index
> Fetch the complete documentation index at: https://iso8583sim.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Explainer

> Message Explainer using LLM to provide human-readable explanations.

`iso8583sim.llm.explainer`

## `MessageExplainer`

```python theme={null}
MessageExplainer(provider: LLMProvider | str | None = None)
```

Explains ISO 8583 messages in plain English using an LLM.

This class uses an LLM provider to generate human-readable explanations
of ISO 8583 messages, making them easier to understand for developers
and analysts.

**Example**

```python theme={null}
explainer = MessageExplainer()  # Auto-detects provider
message = parser.parse("0100...")
print(explainer.explain(message))
```

"This is a VISA authorization request for \$100.00..."

```python theme={null}
# Or explain a raw message string
print(explainer.explain("0100702406C120E09000..."))
```

```python theme={null}
# Use a specific provider
explainer = MessageExplainer(provider="anthropic")
```

Initialize the MessageExplainer.

**Parameters**

<ResponseField name="provider" type="LLMProvider | str | None" default="None">
  LLM provider to use. Can be:

  * LLMProvider instance: Use directly
  * str: Provider name ('anthropic', 'openai', 'google', 'ollama')
  * None: Auto-detect available provider
</ResponseField>

### `provider`

Return the LLM provider being used.

### `explain()`

```python theme={null}
def explain(message: ISO8583Message | str, verbose: bool = False) -> str
```

Explain an ISO 8583 message in plain English.

**Parameters**

<ResponseField name="message" type="ISO8583Message | str" required>
  ISO8583Message object or raw message string to explain
</ResponseField>

<ResponseField name="verbose" type="bool" default="False">
  If True, include more technical details
</ResponseField>

<ResponseField name="Returns" type="str">
  Human-readable explanation of the message
</ResponseField>

### `explain_field()`

```python theme={null}
def explain_field(field_number: int, value: str) -> str
```

Explain a specific ISO 8583 field value.

**Parameters**

<ResponseField name="field_number" type="int" required>
  The field number (e.g., 2, 39, 55)
</ResponseField>

<ResponseField name="value" type="str" required>
  The field value to explain
</ResponseField>

<ResponseField name="Returns" type="str">
  Human-readable explanation of the field and its value
</ResponseField>

### `explain_error()`

```python theme={null}
def explain_error(error: str, message: ISO8583Message | str) -> str
```

Explain a validation or parsing error in context.

**Parameters**

<ResponseField name="error" type="str" required>
  The error message to explain
</ResponseField>

<ResponseField name="message" type="ISO8583Message | str" required>
  The message that caused the error
</ResponseField>

<ResponseField name="Returns" type="str">
  Human-readable explanation of the error and how to fix it
</ResponseField>

### `explain_response_code()`

```python theme={null}
def explain_response_code(code: str) -> str
```

Explain an ISO 8583 response code.

**Parameters**

<ResponseField name="code" type="str" required>
  The response code (e.g., "00", "51", "05")
</ResponseField>

<ResponseField name="Returns" type="str">
  Human-readable explanation of the response code
</ResponseField>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.