guides/groq.md

# Groq

Ultra-fast LLM inference with custom hardware (LPU). OpenAI-compatible with Groq-specific options.

## Configuration

```bash
GROQ_API_KEY=gsk_...
```

## Provider Options

Passed via `:provider_options` keyword:

### `service_tier`
- **Type**: `"auto"` | `"on_demand"` | `"flex"` | `"performance"`
- **Default**: `"auto"`
- **Purpose**: Control performance tier for requests
- **Example**: `provider_options: [service_tier: "performance"]`

### `reasoning_effort`
- **Type**: `"none"` | `"default"` | `"low"` | `"medium"` | `"high"`
- **Purpose**: Control reasoning level for compatible models
- **Compatible**: DeepSeek R1 distill models
- **Example**: `provider_options: [reasoning_effort: "high"]`

### `reasoning_format`
- **Type**: String
- **Purpose**: Specify format for reasoning output
- **Example**: `provider_options: [reasoning_format: "detailed"]`

### `search_settings`
- **Type**: Map
- **Purpose**: Enable web search capabilities
- **Keys**:
  - `include_domains`: List of domains to include
  - `exclude_domains`: List of domains to exclude
- **Example**:
  ```elixir
  provider_options: [
    search_settings: %{
      include_domains: ["techcrunch.com", "arstechnica.com"],
      exclude_domains: ["spam.com"]
    }
  ]
  ```

### `compound_custom`
- **Type**: Map
- **Purpose**: Custom configuration for Compound systems
- **Example**: `provider_options: [compound_custom: %{...}]`

## Performance Notes

- **Streaming**: Groq's LPU hardware excels at streaming - tokens appear instantly
- **Model Selection**: Use `8b-instant` for speed, `70b` for quality
- **Service Tier**: Use `"performance"` for lowest latency
- **Concurrency**: Handles concurrent requests efficiently

## Resources

- [Groq Documentation](https://console.groq.com/docs)
- [Model Playground](https://console.groq.com/playground)