Groq
To use GroqModel, you need to either install pydantic-ai, or install pydantic-ai-slim with the groq optional group:
pip install "pydantic-ai-slim[groq]"
uv add "pydantic-ai-slim[groq]"
To use Groq through their API, go to console.groq.com/keys and follow your nose until you find the place to generate an API key.
GroqModelName lists the latest Groq models for autocomplete. Any other model id the API accepts works too.
Once you have the API key, you can set it as an environment variable:
export GROQ_API_KEY='your-api-key'
You can then use GroqModel by name:
from pydantic_ai import Agent
agent = Agent('groq:llama-3.3-70b-versatile')
...
Or initialise the model directly with just the model name:
from pydantic_ai import Agent
from pydantic_ai.models.groq import GroqModel
model = GroqModel('llama-3.3-70b-versatile')
agent = Agent(model)
...
You can provide a custom Provider via the provider argument:
from pydantic_ai import Agent
from pydantic_ai.models.groq import GroqModel
from pydantic_ai.providers.groq import GroqProvider
model = GroqModel(
'llama-3.3-70b-versatile', provider=GroqProvider(api_key='your-api-key')
)
agent = Agent(model)
...
You can also customize the GroqProvider with a custom httpx.AsyncClient:
from httpx import AsyncClient
from pydantic_ai import Agent
from pydantic_ai.models.groq import GroqModel
from pydantic_ai.providers.groq import GroqProvider
custom_http_client = AsyncClient(timeout=30)
model = GroqModel(
'llama-3.3-70b-versatile',
provider=GroqProvider(api_key='your-api-key', http_client=custom_http_client),
)
agent = Agent(model)
...
The AsyncGroq client that the provider builds also retries failed requests on its own — max_retries=2 by default, like the OpenAI client it is modelled on. Pass groq_client=AsyncGroq(max_retries=0) to keep the retry policy in your transport alone, or set ModelSettings['max_retries'] to change the count without building the client. See Provider SDK retries for where this layer sits.