Desenvolvedores que criam aplicativos com IA frequentemente perguntam se a API Perplexity funciona com ferramentas e bibliotecas feitas para OpenAI. A API Perplexity foi projetada para ser compatível com as bibliotecas de cliente e o formato da API OpenAI, facilitando a migração ou integração. Este artigo explica exatamente quais recursos da OpenAI são suportados pela API Perplexity e quais não são. Você aprenderá as principais diferenças em endpoints, parâmetros, autenticação e comportamento de streaming.
Principais Conclusões: Compatibilidade da API Perplexity com OpenAI
- Estrutura do endpoint: A Perplexity usa
https://api.perplexity.aicom o mesmo caminho de chat completions da OpenAI. - Autenticação: Ambas as APIs exigem um token Bearer no cabeçalho Authorization.
- Nomes de modelos: Nomes de modelos da Perplexity como
sonar-prosubstituem nomes da OpenAI comogpt-4.
Visão Geral do Design da API Perplexity e Compatibilidade com OpenAI
A API Perplexity é construída sobre a mesma arquitetura REST da API da OpenAI. Isso significa que você pode usar os mesmos métodos HTTP, cabeçalhos e estrutura JSON para a maioria das requisições. O objetivo é permitir que desenvolvedores alternem entre provedores com o mínimo de alterações no código.
A principal diferença é a URL base e os nomes dos modelos. A Perplexity não suporta todos os recursos da OpenAI. Alguns parâmetros como function_call e tools estão ausentes. A API é focada em chat completions e não oferece geração de imagens, embeddings ou fine-tuning.
URL Base e Caminho do Endpoint
O endpoint de chat completions da OpenAI está em https://api.openai.com/v1/chat/completions. A Perplexity usa https://api.perplexity.ai/chat/completions. O caminho após a URL base é idêntico. Isso significa que você só precisa alterar a URL base e o token de autenticação para mudar da OpenAI para a Perplexity.
Método de Autenticação
Ambas as APIs autenticam usando uma chave de API passada como token Bearer no cabeçalho Authorization. Por exemplo: Authorization: Bearer pplx-xxxxxxxxxxxxxxxx. As chaves da API Perplexity começam com pplx-. Você as gera no painel da sua conta Perplexity, em API Keys.
Nomes de Modelos
A OpenAI usa nomes como gpt-4, gpt-3.5-turbo e gpt-4-turbo. A Perplexity usa seus próprios nomes, como sonar-pro, sonar-small e sonar-medium. Você deve substituir o nome do modelo no corpo da requisição. A lista completa de modelos disponíveis está em https://api.perplexity.ai/models.
Recursos da OpenAI Suportados na API Perplexity
A tabela a seguir lista os recursos da OpenAI que a Perplexity suporta. Se um recurso não estiver listado, considere que não é suportado.
| Recurso | Parâmetro OpenAI | Suporte Perplexity |
|---|---|---|
| Chat completions | /v1/chat/completions |
Sim |
| Streaming | stream: true |
Sim |
| Mensagens do sistema | role: system |
Sim |
| Mensagens do usuário | role: user |
Sim |
| Mensagens do assistente | role: assistant |
Sim |
| Temperatura | temperature |
Sim |
| Máximo de tokens | max_tokens |
Sim |
| Top P | top_p |
Sim |
| Sequências de parada | stop |
Sim |
| Penalidade de presença | presence_penalty |
Sim |
| Penalidade de frequência | frequency_penalty |
Sim |
| N (número de escolhas) | n |
Sim |
| Logprobs | logprobs |
Não |
| Funções | functions |
Não |
| Ferramentas | tools |
Não |
| Escolha de ferramenta | tool_choice |
Não |
| Formato de resposta (modo JSON) | response_format |
Não |
Passos para Migrar um Aplicativo OpenAI para a Perplexity
Siga estes passos para migrar um aplicativo de chat simples da OpenAI para a Perplexity. Eles assumem que você está usando a biblioteca oficial da OpenAI para Python ou um cliente similar.
- Obtenha sua chave de API Perplexity
Acesseperplexity.ai/settings/api. Clique em Generate API Key. Copie a chave que começa compplx-. - Altere a URL base no seu cliente
No cliente OpenAI, definabase_urlcomohttps://api.perplexity.ai. Exemplo:client = OpenAI(api_key='pplx-...', base_url='https://api.perplexity.ai'). - Substitua o nome do modelo
Altere o parâmetro model degpt-4parasonar-proou outro modelo Perplexity. Exemplo:model='sonar-pro'. - Remova parâmetros não suportados
Exclua quaisquer camposfunctions,tools,tool_choice,logprobsouresponse_formatdo corpo da requisição. - Teste a conexão
Envie uma requisição simples de chat completion. Se receber um erro 401, verifique sua chave de API. Se receber um erro 404, verifique o caminho do endpoint.
Equívocos Comuns e Limitações
Posso Usar a Biblioteca Python da OpenAI Diretamente?
Sim, você pode usar a biblioteca Python openai com a API Perplexity alterando a URL base e a chave de API. A biblioteca formatará as requisições corretamente. No entanto, ela pode tentar chamar endpoints não suportados como /v1/models ou /v1/embeddings. Você precisa tratar essas chamadas separadamente ou desativá-las.
A Perplexity Suporta Respostas em Streaming?
Sim, a Perplexity suporta streaming com stream: true. O formato da resposta é idêntico ao formato de streaming da OpenAI. Cada chunk contém um objeto choices[0].delta com content ou role. Você pode usar a mesma lógica de streaming.
Chamadas de Função ou Uso de Ferramentas Estão Disponíveis?
Não, a Perplexity não suporta chamadas de função ou uso de ferramentas. Os parâmetros functions, tools e tool_choice são ignorados ou causam erro. Se seu aplicativo depende de chamadas de função, você precisa implementar um mecanismo separado ou escolher outro provedor.
A Perplexity Suporta Embeddings ou Geração de Imagens?
Não, a Perplexity oferece apenas chat completions. Ela não fornece embeddings, geração de imagens ou processamento de áudio. Use OpenAI ou outro provedor para essas tarefas.
API Perplexity vs API OpenAI: Principais Diferenças
| Item | API Perplexity | API OpenAI |
|---|---|---|
| URL base | https://api.perplexity.ai |
https://api.openai.com |
| Endpoint de chat completions | /chat/completions |
/v1/chat/completions |
| Nomenclatura de modelos | sonar-pro, sonar-small, sonar-medium |
gpt-4, gpt-3.5-turbo, etc |
| Chamada de função | Não suportado | Suportado |
| Uso de ferramentas | Não suportado | Suportado |
| Streaming | Suportado | Suportado |
| Logprobs | Não suportado | Suportado |
| Modo JSON | Não suportado | Suportado |
| Embeddings | Não disponível | Disponível |
| Geração de imagens | Não disponível | Disponível |
A API Perplexity oferece uma interface compatível para chat completions básicos com streaming e parâmetros de amostragem padrão. Ela não suporta recursos avançados da OpenAI como chamada de função, ferramentas, modo JSON ou embeddings. Para migrar um aplicativo existente, altere a URL base para https://api.perplexity.ai, substitua o nome do modelo por um modelo Perplexity e remova quaisquer parâmetros não suportados. Para uma integração mais profunda, considere usar os recursos específicos da Perplexity, como o parâmetro search_domain para pesquisa na web ou resultados acadêmicos. Teste seu aplicativo completamente após a migração, pois alguns casos extremos, como formatos de resposta de erro, podem diferir.