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

# Generate Text

> Generate text using AI models via chat completions

## Text Generation

Use `chat_completions_create()` to generate text responses from AI models.

### Basic Usage

```python theme={null}
from mira_network import MiraClient

async def generate_text():
    async with MiraClient(api_key="your-api-key") as client:
        response = await client.chat_completions_create(
            model="your-chosen-model",
            messages=[
                {"role": "user", "content": "What is the capital of France?"}
            ]
        )
        print(response["choices"][0]["message"]["content"])
```

### Streaming Responses

For real-time text generation:

```python theme={null}
async def stream_response():
    async with MiraClient(api_key="your-api-key") as client:
        stream = await client.chat_completions_create(
            model="your-chosen-model",
            messages=[{"role": "user", "content": "Write a story"}],
            stream=True
        )
        async for chunk in stream:
            print(chunk["choices"][0]["delta"]["content"], end="")
```

### Multi-turn Conversations

Handle complex dialogues:

```python theme={null}
messages = [
    {"role": "system", "content": "You are a helpful assistant"},
    {"role": "user", "content": "Hi! Can you help me?"},
    {"role": "assistant", "content": "Of course! What can I help you with?"},
    {"role": "user", "content": "Tell me about Paris"}
]

async with MiraClient(api_key="your-api-key") as client:
    response = await client.chat_completions_create(
        model="your-chosen-model",
        messages=messages
    )
```

### Error Handling

Handle validation and request errors:

```python theme={null}
try:
    response = await client.chat_completions_create(
        model="your-chosen-model",
        messages=[{"role": "user", "content": "Hello"}]
    )
except ValueError as e:
    print(f"Validation error: {e}")
except Exception as e:
    print(f"An error occurred: {e}")
```

### Custom Model Provider

Route a request to your own model endpoint by passing a `model_provider`:

```python theme={null}
response = await client.chat_completions_create(
    model="your-chosen-model",
    messages=[{"role": "user", "content": "Hello"}],
    model_provider={
        "base_url": "https://your-provider.com/v1",
        "api_key": "your-provider-api-key"
    }
)
```

## Message Structure

Core components of a message:

```python theme={null}
Message:
    role: str       # "system", "user", or "assistant"
    content: str    # The message content
```
