Perplexity AI (pplx-api)
API Key​
# env variable
os.environ['PERPLEXITYAI_API_KEY']
Sample Usage​
from litellm import completion
import os
os.environ['PERPLEXITYAI_API_KEY'] = ""
response = completion(
model="perplexity/sonar-pro",
messages=messages
)
print(response)
Sample Usage - Streaming​
from litellm import completion
import os
os.environ['PERPLEXITYAI_API_KEY'] = ""
response = completion(
model="perplexity/sonar-pro",
messages=messages,
stream=True
)
for chunk in response:
print(chunk)
Reasoning Effort​
Requires v1.72.6+
info
See full guide on Reasoning with LiteLLM here
You can set the reasoning effort by setting the reasoning_effort
parameter.
- SDK
- Proxy
from litellm import completion
import os
os.environ['PERPLEXITYAI_API_KEY'] = ""
response = completion(
model="perplexity/sonar-reasoning",
messages=messages,
reasoning_effort="high"
)
print(response)
- Setup config.yaml
model_list:
- model_name: perplexity-sonar-reasoning-model
litellm_params:
model: perplexity/sonar-reasoning
api_key: os.environ/PERPLEXITYAI_API_KEY
- Start proxy
litellm --config /path/to/config.yaml
- Test it!
Replace anything
with your LiteLLM Proxy Virtual Key, if setup.
curl http://0.0.0.0:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer anything" \
-d '{
"model": "perplexity-sonar-reasoning-model",
"messages": [{"role": "user", "content": "Who won the World Cup in 2022?"}],
"reasoning_effort": "high"
}'
Supported Models​
All models listed here https://docs.perplexity.ai/docs/model-cards are supported. Just do model=perplexity/<model-name>
.
Model Name | Function Call |
---|---|
sonar-deep-research | completion(model="perplexity/sonar-deep-research", messages) |
sonar-reasoning-pro | completion(model="perplexity/sonar-reasoning-pro", messages) |
sonar-reasoning | completion(model="perplexity/sonar-reasoning", messages) |
sonar-pro | completion(model="perplexity/sonar-pro", messages) |
sonar | completion(model="perplexity/sonar", messages) |
r1-1776 | completion(model="perplexity/r1-1776", messages) |
info
For more information about passing provider-specific parameters, go here