providers
¶
LLM provider implementations used by the prompt enhancer.
Classes¶
fastvideo.entrypoints.streaming.prompt.providers.CerebrasProvider
dataclass
¶
CerebrasProvider(api_key: str | None = None, base_url: str = _DEFAULT_BASE_URL, name: str = 'cerebras')
Cerebras inference adapter.
api_key falls back to CEREBRAS_API_KEY when unset.
fastvideo.entrypoints.streaming.prompt.providers.GroqProvider
dataclass
¶
Groq inference adapter.
Identical wire format to :class:CerebrasProvider; both go through
:func:complete_openai_compatible. The two providers differ only
in base URL, env var, and model id conventions.
fastvideo.entrypoints.streaming.prompt.providers.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.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.LLMTimeoutError
¶
LLMTimeoutError(message: str)
Bases: LLMProviderError
Raised when an LLM provider times out — always retryable.
Source code in fastvideo/entrypoints/streaming/prompt/providers/base.py
Modules¶
fastvideo.entrypoints.streaming.prompt.providers.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.
Source code in fastvideo/entrypoints/streaming/prompt/providers/base.py
fastvideo.entrypoints.streaming.prompt.providers.cerebras
¶
Cerebras LLM provider (OpenAI-compatible chat endpoint).
fastvideo.entrypoints.streaming.prompt.providers.groq
¶
Groq LLM provider (OpenAI-compatible chat endpoint).
Classes¶
fastvideo.entrypoints.streaming.prompt.providers.groq.GroqProvider
dataclass
¶
Groq inference adapter.
Identical wire format to :class:CerebrasProvider; both go through
:func:complete_openai_compatible. The two providers differ only
in base URL, env var, and model id conventions.