A Perplexity oferece vários modelos de IA através de sua API, incluindo llama-3.1-sonar-small-128k-online, llama-3.1-sonar-large-128k-online e llama-3.1-sonar-huge-128k-online. Cada modelo tem capacidades diferentes em termos de velocidade, custo e qualidade das respostas. Você pode precisar alternar entre esses modelos para tarefas diferentes, como consultas rápidas versus pesquisas aprofundadas. Este artigo explica como especificar o parâmetro do modelo em uma única solicitação de API sem alterar toda a sua configuração.
Principais Conclusões: Alternar Modelos da API Perplexity por Requisição
- Parâmetro
modelna requisição: Defina o campo model no seu JSON para alternar o modelo em cada chamada. - IDs de modelo disponíveis: Use strings exatas como
llama-3.1-sonar-small-128k-onlinepara small,llama-3.1-sonar-large-128k-onlinepara large ellama-3.1-sonar-huge-128k-onlinepara huge. - Não é necessário reautenticar: A chave da API permanece a mesma ao alternar modelos; apenas o corpo da requisição muda.
Entendendo o Parâmetro de Modelo da API Perplexity
A API Perplexity usa uma interface RESTful onde cada requisição é independente. Isso significa que você pode alterar o modelo em cada requisição sem afetar chamadas anteriores ou posteriores. O modelo é especificado no corpo JSON da requisição POST para o endpoint de chat completions.
O endpoint da API é https://api.perplexity.ai/chat/completions. Você envia uma requisição POST com cabeçalhos incluindo sua chave de API e Content-Type, e um corpo contendo o nome do modelo, mensagens e parâmetros opcionais como temperature ou max_tokens. O campo model é uma string que corresponde a um dos IDs de modelo suportados.
Atualmente, a Perplexity oferece três modelos online principais. O modelo small é o mais rápido e barato, adequado para perguntas e respostas simples. O modelo large equilibra velocidade e qualidade para uso geral. O modelo huge fornece as respostas mais completas, mas custa mais e responde mais devagar. Você pode alternar entre eles por requisição com base na complexidade de cada pergunta.
Não é necessário criar vários clientes de API ou manter sessões separadas. Cada requisição é stateless. O modelo escolhido se aplica apenas àquela resposta. Essa flexibilidade permite otimizar custo e desempenho dinamicamente.
Passos para Especificar o Modelo em uma Única Requisição de API
Siga estes passos para enviar uma requisição com um modelo específico. Você pode usar qualquer linguagem de programação que suporte requisições HTTP. Os exemplos abaixo usam Python com a biblioteca requests, mas a mesma estrutura JSON funciona com cURL, JavaScript ou outras ferramentas.
Método 1: Usando cURL pela Linha de Comando
- Prepare sua chave de API
Obtenha sua chave de API no painel da API Perplexity emhttps://www.perplexity.ai/settings/api. Copie a chave e mantenha-a segura. - Escreva o comando cURL
Use o modelo a seguir. SubstituaYOUR_API_KEYpela sua chave real e defina o modelo comollama-3.1-sonar-large-128k-onlinepara este exemplo.curl -X POST "https://api.perplexity.ai/chat/completions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "llama-3.1-sonar-large-128k-online", "messages": [{"role": "user", "content": "Qual é a capital da França?"}]}' - Execute o comando
Execute o comando no seu terminal. A API retorna uma resposta JSON com a resposta do modelo. A resposta inclui o campo model confirmando qual modelo foi usado. - Altere o modelo para a próxima requisição
Para alternar para o modelo huge, substitua a string do modelo porllama-3.1-sonar-huge-128k-onlinee envie a requisição novamente.
Método 2: Usando Python com a Biblioteca Requests
- Instale a biblioteca requests
Se você não a tiver, executepip install requestsno terminal. - Escreva o script Python
Crie um arquivo chamadoperplexity_request.pycom o seguinte conteúdo:import requestsurl = "https://api.perplexity.ai/chat/completions"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
payload = {
"model": "llama-3.1-sonar-small-128k-online",
"messages": [
{"role": "user", "content": "Explique computação quântica em termos simples."}
]
}
response = requests.post(url, json=payload, headers=headers)
print(response.json()["choices"][0]["message"]["content"]) - Execute o script
Executepython perplexity_request.py. O script imprime a resposta do modelo. Para usar um modelo diferente, altere o valor da chavemodelno dicionário payload.
Método 3: Usando JavaScript com Fetch (Node.js ou Navegador)
- Configure a chamada fetch
Use o seguinte código em um ambiente Node.js (requer node-fetch ou fetch nativo em versões mais recentes):const url = "https://api.perplexity.ai/chat/completions";
const headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
};
const body = JSON.stringify({
model: "llama-3.1-sonar-huge-128k-online",
messages: [{ role: "user", content: "Quais são os benefícios da energia renovável?" }]
});
fetch(url, { method: "POST", headers, body })
.then(res => res.json())
.then(data => console.log(data.choices[0].message.content)); - Execute o código
Execute o script com Node.js. O console exibe a resposta. Altere a string do modelo para alternar modelos em chamadas subsequentes.
Erros Comuns ao Alternar Modelos
A API Retorna um Erro 400 para Nomes de Modelo Desconhecidos
Se você receber um erro 400 Bad Request, o nome do modelo provavelmente está incorreto. Verifique a ortografia e certifique-se de usar o ID exato do modelo da documentação da Perplexity. Erros comuns incluem digitação incorreta, como ‘llama-3.1-sonar-large’ sem o sufixo de comprimento de contexto, ou usar nomes de modelo desatualizados.
A Alternância de Modelo Não Afeta a Qualidade da Resposta
Se você alternar modelos mas não notar diferença nas respostas, verifique se o campo model no corpo da requisição está sendo enviado corretamente. Alguns clientes de API podem armazenar em cache a requisição anterior ou ignorar o campo model se ele estiver posicionado incorretamente. Sempre imprima ou registre a resposta completa para confirmar que o campo model retornado pela API corresponde ao que você solicitou.
Limites de Taxa São Atingidos Após Alternar Modelos
Cada modelo tem seu próprio limite de taxa com base no seu plano de assinatura. Alternar para um modelo maior pode consumir mais tokens por requisição, fazendo com que você atinja seu limite de taxa mais cedo. Verifique os limites do seu plano e ajuste a seleção do modelo de acordo. Você também pode implementar lógica de repetição com backoff exponencial.
Modelos da API Perplexity: Small vs Large vs Huge
| Item | Small (llama-3.1-sonar-small-128k-online) | Large (llama-3.1-sonar-large-128k-online) | Huge (llama-3.1-sonar-huge-128k-online) |
|---|---|---|---|
| Janela de contexto | 128k tokens | 128k tokens | 128k tokens |
| Velocidade | Mais rápido | Equilibrado | Mais lento |
| Custo por 1M tokens de entrada | $0,20 | $1,00 | $5,00 |
| Custo por 1M tokens de saída | $0,80 | $4,00 | $20,00 |
| Melhor caso de uso | Perguntas e respostas simples, definições rápidas | Pesquisa geral, resumos | Análise aprofundada, raciocínio complexo |
| Disponibilidade | Todos os planos | Todos os planos | Planos Pro e Enterprise |
Cada modelo suporta a mesma capacidade de busca online. A diferença está no tamanho da rede neural subjacente e na profundidade da resposta resultante. O modelo small produz respostas concisas, enquanto o modelo huge gera explicações detalhadas com mais citações. Escolha com base no trade-off entre custo e qualidade de resposta necessária.
Você pode alternar modelos por requisição sem qualquer configuração adicional. Isso permite usar o modelo small para consultas rotineiras e o modelo huge para pesquisas críticas dentro da mesma aplicação. A chave de API e a autenticação permanecem inalteradas em todas as alternâncias de modelo.