base ¶
LLM provider protocol + DTOs used by the prompt enhancer.
Third-party users add a new provider by implementing :class:LLMProvider and registering it with a prompt enhancer instance. The shipped providers live in sibling modules (cerebras.py, groq.py) and each is ~100-200 LOC — the provider layer is intentionally thin so the enhancer stays provider-agnostic.
Classes¶
fastvideo.entrypoints.streaming.prompt.providers.base.LLMProvider ¶
Bases: Protocol
Provider interface every LLM adapter implements.
Providers are async-first because every built-in implementation talks to an HTTP API. Synchronous providers can wrap their call in asyncio.to_thread internally.
fastvideo.entrypoints.streaming.prompt.providers.base.LLMProviderError ¶
Bases: RuntimeError
Raised when an LLM provider fails a request.
retryable controls whether the enhancer falls back to the next provider. It is settable per-instance so the same exception type can describe retryable transport errors (5xx, 429) and non-retryable client errors (4xx auth/bad-request) without forcing a separate subclass for every status family.
Source code in fastvideo/entrypoints/streaming/prompt/providers/base.py
fastvideo.entrypoints.streaming.prompt.providers.base.LLMTimeoutError ¶
LLMTimeoutError(message: str)
Bases: LLMProviderError
Raised when an LLM provider times out — always retryable.