windlass.providers.llm.groq¶
groq
¶
Groq adapter.
Groq serves open-weight models (Llama, Mixtral, Gemma) on custom silicon at
very high token rates. Its API is OpenAI-compatible, so this adapter reuses the
message translation from :mod:windlass.providers.llm.openai and only differs in
client construction and error mapping.
Install with::
pip install "windlass[groq]"
Example
from windlass import Windlass # doctest: +SKIP Windlass.llm("groq", model="llama-3.3-70b-versatile") # doctest: +SKIP
GroqLLM
¶
GroqLLM(
model: str = "",
*,
api_key: str | None = None,
base_url: str | None = None,
max_retries: int = 0,
**config: Any
)
Bases: LLM
Chat completions via the official groq SDK.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
model
|
str
|
Model id, e.g. |
''
|
api_key
|
str | None
|
Credential. Falls back to |
None
|
base_url
|
str | None
|
Endpoint override. |
None
|
max_retries
|
int
|
SDK-level retries; 0 because Windlass retries itself. |
0
|
**config
|
Any
|
Forwarded to :class: |
{}
|
Raises:
| Type | Description |
|---|---|
MissingDependencyError
|
When |
AuthenticationError
|
When no API key can be found. |
Source code in src\windlass\providers\llm\groq.py
default_model
classmethod
¶
native
¶
agenerate
async
¶
agenerate(
messages: list[Message], *, tools: list[dict[str, Any]] | None = None, **kwargs: Any
) -> Completion
Request one chat completion.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
messages
|
list[Message]
|
The conversation. |
required |
tools
|
list[dict[str, Any]] | None
|
OpenAI-format tool definitions. |
None
|
**kwargs
|
Any
|
Request overrides. |
{}
|
Returns:
| Type | Description |
|---|---|
Completion
|
The completion. |
Raises:
| Type | Description |
|---|---|
ProviderError
|
For any API failure. |
Source code in src\windlass\providers\llm\groq.py
astream_generate
async
¶
astream_generate(
messages: list[Message], *, tools: list[dict[str, Any]] | None = None, **kwargs: Any
) -> AsyncIterator[StreamEvent]
Stream a chat completion.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
messages
|
list[Message]
|
The conversation. |
required |
tools
|
list[dict[str, Any]] | None
|
OpenAI-format tool definitions. |
None
|
**kwargs
|
Any
|
Request overrides. |
{}
|
Yields:
| Type | Description |
|---|---|
AsyncIterator[StreamEvent]
|
Text deltas, then completed tool calls, then |