lasagnastack.llm.base¶
lasagnastack.llm.base
¶
LLMClient
¶
LLMClient(
reasoning_max_tokens: int = 4000,
reasoning_effort: str | None = None,
total_max_tokens: int | None = None,
)
Bases: ABC
Abstract base class for all LLM provider clients.
Subclasses must implement :meth:generate and
:meth:generate_with_video. The constructor stores three shared
reasoning-control parameters that each concrete client interprets
according to its provider's API:
reasoning_max_tokens— a hard token budget for internal reasoning/thinking. Gemini maps this tothinking_budget; OpenRouter maps it toreasoning.max_tokens(when no effort level is set).reasoning_effort— a qualitative effort level ("none"/"minimal"/"low"/"medium"/"high"/"xhigh"). OpenRouter maps this toreasoning.effortand it takes priority overreasoning_max_tokenswhen both are supplied. Not used by Gemini.total_max_tokens— ceiling on all output tokens combined (reasoning + visible response). Maps directly to themax_tokensAPI parameter. Required for Anthropic models via OpenRouter, where this total must be strictly greater than the reasoning budget. Ignored by Gemini.
Store shared reasoning-control parameters.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
reasoning_max_tokens
|
int
|
Maximum tokens the model may spend on
internal reasoning per call. Set to |
4000
|
reasoning_effort
|
str | None
|
Qualitative effort level controlling reasoning
depth. When set, takes priority over |
None
|
total_max_tokens
|
int | None
|
Hard ceiling on all output tokens combined
(reasoning + visible response). Maps to the |
None
|
Source code in src/lasagnastack/llm/base.py
generate
abstractmethod
¶
generate(
prompt: str,
response_schema: type[BaseModel],
*,
temperature: float = 0.4,
) -> BaseModel
Send a text-only prompt; return a validated response_schema instance.
generate_with_video
abstractmethod
¶
generate_with_video(
video_path: Path,
prompt: str,
response_schema: type[BaseModel],
*,
temperature: float = 0.4,
) -> BaseModel
Upload video_path to the Files API, generate, return validated response.