GEPA LLM adapter backed by ReqLLM.
This adapter owns all ReqLLM-specific model specs, API-key wiring, response
normalization, and test injection seams. GEPA optimizer/proposer code should
only see GEPA.LLM.Client, GEPA.LLM.Request, and GEPA.LLM.Response.
Summary
Types
@type provider() :: :openai | :gemini | :anthropic
@type t() :: %GEPA.LLM.Adapters.ReqLLM{ api_key: String.t() | nil, env: (String.t() -> String.t() | 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 }
Functions
@spec capabilities(GEPA.LLM.Client.t()) :: MapSet.t(atom())
@spec close(GEPA.LLM.Client.t()) :: :ok
@spec complete(GEPA.LLM.Client.t(), GEPA.LLM.Request.t()) :: {:ok, GEPA.LLM.Response.t()} | {:error, term()}
@spec instruction_schema() :: keyword()
@spec new(keyword()) :: {:ok, GEPA.LLM.Client.t()} | {:error, term()}
@spec new!(keyword()) :: GEPA.LLM.Client.t()
@spec stream(GEPA.LLM.Client.t(), GEPA.LLM.Request.t()) :: {:error, term()}