Perplexity
Configure Perplexity, Agno's model class for Perplexity's language models.
The Perplexity model provides access to Perplexity's language models.
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
id | str | "sonar" | The ID of the Perplexity model to use |
name | str | "Perplexity" | The name of the model |
provider | str | "Perplexity" | The provider of the model |
api_key | Optional[str] | None | The API key for Perplexity (defaults to PERPLEXITY_API_KEY env var) |
base_url | str | "https://api.perplexity.ai/" | The base URL for the Perplexity API |
max_tokens | int | 1024 | Maximum number of tokens to generate |
top_k | Optional[float] | None | Declared but sent under an unsupported OpenAI SDK keyword. Leave None and use the request-body workaround below. |
collect_metrics_on_completion | bool | True | Collect token metrics only from the final streaming chunk (for providers with cumulative token counts) |
supports_native_structured_outputs | bool | False | Whether the model supports native structured outputs |
supports_json_schema_outputs | bool | True | Whether the model requires a JSON schema for structured outputs |
Perplexity extends OpenAILike and inherits its constructor parameters. This adapter forwards a limited set of request fields; inherited extra_body, seed, and reasoning_effort are currently omitted. Pass supported provider-specific JSON through request_params={"extra_body": {...}}. For example, Perplexity(request_params={"extra_body": {"top_k": 2}}) sends top_k in the request body while leaving the incompatible direct field unset.