> ## 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.

# Generator

> Message Generator using LLM to create ISO 8583 messages from natural language.

`iso8583sim.llm.generator`

## `MessageGenerator`

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

Generates ISO 8583 messages from natural language descriptions.

This class uses an LLM to interpret natural language descriptions
and generate valid ISO 8583 messages.

**Example**

```python theme={null}
generator = MessageGenerator()
message = generator.generate("$100 VISA purchase at a gas station")
print(message.mti)  # "0100"
print(message.fields[4])  # "000000010000"
```

```python theme={null}
# Generate without validation
message = generator.generate("refund $50", validate=False)
```

Initialize the MessageGenerator.

**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.

### `generate()`

```python theme={null}
def generate(description: str, validate: bool = True) -> ISO8583Message
```

Generate an ISO 8583 message from a natural language description.

**Parameters**

<ResponseField name="description" type="str" required>
  Natural language description of the desired message
  (e.g., "\$100 VISA purchase at a gas station in NYC")
</ResponseField>

<ResponseField name="validate" type="bool" default="True">
  Whether to validate the generated message
</ResponseField>

<ResponseField name="Returns" type="ISO8583Message">
  Valid ISO8583Message object
</ResponseField>

**Raises**

* `GenerationError`: If the message cannot be generated or validated

### `suggest_fields()`

```python theme={null}
def suggest_fields(partial_message: ISO8583Message) -> dict[int, str]
```

Suggest missing fields for a partial message.

**Parameters**

<ResponseField name="partial_message" type="ISO8583Message" required>
  Partial ISO8583Message with some fields populated
</ResponseField>

<ResponseField name="Returns" type="dict[int, str]">
  Dictionary of suggested field values
</ResponseField>


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