# `GEPA.LLM.ReqLLM`
[🔗](https://github.com/nshkrdotcom/gepa_ex/blob/v0.3.0/lib/gepa/llm/req_llm.ex#L1)

Backward-compatible ReqLLM implementation.

New code should prefer `GEPA.LLM.req_llm/2`, which returns a normalized
`GEPA.LLM.Client`. This module preserves the original struct-returning API
used by existing examples and tests while delegating all provider behavior to
`GEPA.LLM.Adapters.ReqLLM`.

# `provider`

```elixir
@type provider() :: :openai | :gemini | :anthropic
```

# `t`

```elixir
@type t() :: %GEPA.LLM.ReqLLM{
  api_key: String.t() | nil,
  env: (String.t() -&gt; String.t() | nil) | nil,
  max_tokens: pos_integer() | nil,
  model: String.t(),
  provider: provider(),
  provider_opts: keyword(),
  req_llm_module: module(),
  req_options: keyword(),
  response_module: module(),
  temperature: float() | nil,
  timeout: pos_integer() | nil,
  top_p: float() | nil
}
```

# `new`

```elixir
@spec new(keyword()) :: t()
```

Creates a backward-compatible ReqLLM provider struct.

Supported providers are `:openai`, `:gemini`, and `:anthropic`.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
