Cohere
To use CohereModel, you need to either install pydantic-ai, or install pydantic-ai-slim with the cohere optional group:
pip install "pydantic-ai-slim[cohere]"
uv add "pydantic-ai-slim[cohere]"
To use Cohere through their API, go to dashboard.cohere.com/api-keys and follow your nose until you find the place to generate an API key.
CohereModelName contains a list of the most popular Cohere models.
Once you have the API key, you can set it as an environment variable:
export CO_API_KEY='your-api-key'
You can then use CohereModel by name:
from pydantic_ai import Agent
agent = Agent('cohere:command-r7b-12-2024')
...
Or initialise the model directly with just the model name:
from pydantic_ai import Agent
from pydantic_ai.models.cohere import CohereModel
model = CohereModel('command-r7b-12-2024')
agent = Agent(model)
...
You can provide a custom Provider via the provider argument:
from pydantic_ai import Agent
from pydantic_ai.models.cohere import CohereModel
from pydantic_ai.providers.cohere import CohereProvider
model = CohereModel('command-r7b-12-2024', provider=CohereProvider(api_key='your-api-key'))
agent = Agent(model)
...
You can also customize the CohereProvider with a custom http_client:
from httpx import AsyncClient
from pydantic_ai import Agent
from pydantic_ai.models.cohere import CohereModel
from pydantic_ai.providers.cohere import CohereProvider
custom_http_client = AsyncClient(timeout=30)
model = CohereModel(
'command-r7b-12-2024',
provider=CohereProvider(api_key='your-api-key', http_client=custom_http_client),
)
agent = Agent(model)
...
The Cohere client retries server errors, rate limits and status 408 and 409 twice by default, above whatever transport you pass here. It takes its retry count per request rather than per client, so set ModelSettings['max_retries'] to change it, for example to 0 to keep the retry policy in your transport alone. See Provider SDK retries for where this layer sits.
You can customize model behavior using CohereModelSettings:
from pydantic_ai import Agent
from pydantic_ai.models.cohere import CohereModel, CohereModelSettings
model = CohereModel('command-r7b-12-2024')
settings = CohereModelSettings(
temperature=0.2,
top_k=40,
)
agent = Agent(model, model_settings=settings)
...