For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegação principal

Práticas recomendadas para produção

Leve projetos de IA para produção com práticas recomendadas.

Este guia reúne um conjunto abrangente de práticas recomendadas para ajudar você a passar do protótipo à produção. Seja você um engenheiro experiente em aprendizado de máquina ou alguém que começou a se interessar pelo assunto recentemente, este guia deve oferecer as ferramentas necessárias para usar a plataforma com sucesso em um ambiente de produção: desde proteger o acesso à nossa API até projetar uma arquitetura robusta capaz de lidar com grandes volumes de tráfego. Use este guia para ajudar a elaborar um plano de implantação do seu aplicativo da forma mais tranquila e eficaz possível.

Para se aprofundar nas práticas recomendadas para entrar em produção, confira nossa palestra no Developer Day:

Configuração da sua organização

Depois de entrar na sua conta da OpenAI, você pode encontrar o nome e o ID da sua organização nas configurações da organização. O nome da organização é o rótulo que a identifica nas interfaces de usuário. O ID da organização é seu identificador exclusivo, que pode ser usado em requisições à API.

Usuários que pertencem a várias organizações podem enviar um cabeçalho para especificar qual organização será usada em uma requisição à API. O uso dessas requisições será contabilizado na cota da organização especificada. Se nenhum cabeçalho for fornecido, a cobrança será feita à organização padrão. Você pode alterar sua organização padrão nas configurações de usuário.

Você pode convidar novos membros para sua organização na página Equipe. Os membros podem ser leitores ou proprietários.

Leitores:

  • Podem fazer requisições à API.
  • Podem visualizar informações básicas da organização.
  • Podem criar, atualizar e excluir recursos (como Assistentes) na organização, salvo indicação em contrário.

Proprietários:

  • Têm todas as permissões dos leitores.
  • Podem modificar informações de faturamento.
  • Podem gerenciar os membros da organização.

Gerenciamento de limites de faturamento

Depois que você informa seus dados de faturamento, a OpenAI define um limite de uso aprovado para sua organização. Sua cota aumenta automaticamente à medida que seu uso da plataforma cresce e você passa de um nível de uso para outro. Você pode consultar seu limite de uso atual na página de limites, nas configurações da sua conta.

Configure alertas de gastos na página de limites para enviar notificações quando o uso ultrapassar determinado valor em dólares. Para impor um teto mensal, defina um limite rígido de gastos. Limites rígidos de gastos interrompem o tráfego da API ao qual se aplicam quando os gastos monitorados atingem o limite. Por isso, consulte o guia de limites de gastos antes de ativar um em produção.

Chaves de API

A API da OpenAI usa chaves de API para autenticação. Acesse a página de chaves de API para obter a chave que você usará nas suas requisições.

Essa é uma maneira relativamente simples de controlar o acesso, mas você precisa ter cuidado para proteger essas chaves. Evite expor as chaves de API no seu código ou em repositórios públicos; armazene-as em um local seguro. Disponibilize as chaves para seu aplicativo por meio de variáveis do ambiente ou de um serviço de gerenciamento de segredos, para não precisar inseri-las diretamente no código. Saiba mais nas nossas Práticas recomendadas para a segurança de chaves de API.

Recomendamos fortemente definir uma data de expiração ao criar uma chave de API de projeto e estabelecer um processo regular de rotação de chaves. Antes que uma chave expire, crie uma substituta, atualize seus aplicativos para usá-la e revogue a chave antiga depois de verificar que a nova funciona.

Os administradores podem impor um prazo máximo de validade para as chaves de API no nível da organização ou do projeto nas configurações da plataforma. As novas chaves devem expirar dentro do limite configurado, o que impede que permaneçam válidas indefinidamente. Os limites dos projetos não podem exceder o limite da organização.

A seção Governança de chaves de API nas configurações da plataforma permite que administradores de organizações e projetos restrinjam os tipos de chaves de API que podem ser criadas. Os administradores podem permitir apenas chaves de contas de serviço, permitir apenas chaves de projeto pertencentes a usuários ou desativar por completo a criação de novas chaves de API. As restrições no nível da organização sempre têm precedência: as configurações do projeto podem acrescentar restrições, mas não podem flexibilizar as restrições da organização. Esses controles se aplicam apenas à criação de novas chaves; as chaves de API existentes não são afetadas.

O uso das chaves de API pode ser monitorado na página Uso depois que o rastreamento estiver ativado. Se você usa uma chave de API gerada antes de 20 de dezembro de 2023, o rastreamento não estará ativado por padrão. Você pode ativá-lo para os usos futuros no painel de gerenciamento de chaves de API. Todas as chaves de API geradas após 20 de dezembro de 2023 têm o rastreamento ativado. Qualquer uso anterior não rastreado será exibido como Untracked no painel.

Projetos de homologação

À medida que sua aplicação cresce, considere criar projetos separados para os ambientes de homologação e produção. Você pode criar esses projetos no painel para isolar o trabalho de desenvolvimento e testes e evitar interferências acidentais no aplicativo em produção. Você também pode limitar o acesso dos usuários ao projeto de produção e definir limites de taxa e de gastos personalizados por projeto.

Escalabilidade da arquitetura da sua solução

Ao projetar seu aplicativo ou serviço que usa nossa API para uso em produção, é importante considerar como ampliar sua capacidade para atender às demandas de tráfego. Você precisará considerar alguns pontos fundamentais, independentemente do provedor de serviços de nuvem escolhido:

  • Escalonamento horizontal: você pode expandir seu aplicativo horizontalmente para atender a requisições de várias origens. Isso pode envolver a implantação de servidores ou contêineres adicionais para distribuir a carga. Se optar por esse tipo de escalonamento, certifique-se de que sua arquitetura foi projetada para lidar com vários nodes e de que existem mecanismos para balancear a carga entre eles.
  • Escalonamento vertical: outra opção é expandir seu aplicativo verticalmente, aumentando os recursos disponíveis em um único node. Isso envolveria ampliar a capacidade do servidor para lidar com a carga adicional. Se optar por esse tipo de escalonamento, certifique-se de que seu aplicativo foi projetado para aproveitar esses recursos adicionais.
  • Armazenamento em cache: ao armazenar dados acessados com frequência, você pode melhorar os tempos de resposta sem precisar fazer chamadas repetidas à nossa API. Seu aplicativo precisará ser projetado para usar os dados em cache sempre que possível e invalidar o cache quando novas informações forem adicionadas. Por exemplo, você pode armazenar dados em um banco de dados, em um sistema de arquivos ou em um cache em memória, dependendo do que fizer mais sentido para seu aplicativo.
  • Balanceamento de carga: por fim, considere técnicas de balanceamento de carga para garantir que as requisições sejam distribuídas uniformemente entre os servidores disponíveis. Isso pode envolver o uso de um balanceador de carga na frente dos servidores ou de DNS round-robin. Balancear a carga ajudará a melhorar o desempenho e reduzir gargalos.

Gerenciamento de limites de taxa

Ao usar nossa API, é importante entender os limites de taxa e levá-los em conta no planejamento.

Redução da latência

Confira nosso guia mais atualizado sobre otimização de latência.

Latência é o tempo necessário para processar uma requisição e retornar uma resposta. Nesta seção, discutiremos alguns fatores que influenciam a latência dos nossos modelos de geração de texto e apresentaremos sugestões para reduzi-la.

A latência de uma requisição de geração de resposta é influenciada principalmente por dois fatores: o modelo e o número de tokens gerados. O ciclo de vida de uma requisição desse tipo é o seguinte:

Network
End user to API latency
Server
Time to process prompt tokens
Server
Time to sample/generate tokens
Network
API to end user latency

A maior parte da latência costuma ocorrer na etapa de geração de tokens.

Intuição: os tokens do prompt acrescentam pouca latência às chamadas de geração de respostas. A geração dos tokens de resposta leva muito mais tempo, pois eles são gerados um de cada vez. Quanto mais longa for a resposta gerada, maior será a latência acumulada devido ao tempo necessário para gerar cada token.

Fatores comuns que afetam a latência e possíveis técnicas de mitigação

Agora que vimos os conceitos básicos de latência, vamos examinar os diversos fatores que podem afetá-la, apresentados, em linhas gerais, do maior para o menor impacto.

Modelo

Nossa API oferece diferentes modelos com níveis variados de complexidade e abrangência. Os modelos mais capazes, como gpt-6-astra, podem gerar respostas mais complexas e diversas, mas também levam mais tempo para processar sua consulta. Modelos como gpt-5.6-terra e gpt-5.6-luna podem gerar Responses com mais rapidez e menor custo, enquanto gpt-6-astra é uma opção padrão mais capaz quando você precisa de mais capacidade para tarefas complexas. Você pode escolher o modelo que melhor atende ao seu caso de uso e ao equilíbrio desejado entre velocidade, custo e qualidade.

Número de tokens da resposta

Solicitar respostas com um grande número de tokens gerados pode aumentar a latência:

  • Reduza o número máximo de tokens: entre requisições que geram quantidades semelhantes de tokens, aquelas com um valor menor no parâmetro max_tokens têm menos latência.
  • Inclua sequências de parada: para evitar a geração de tokens desnecessários, adicione uma sequência de parada. Por exemplo, você pode usar sequências de parada para gerar uma lista com um número específico de itens. Nesse caso, ao usar 11. como sequência de parada, você pode gerar uma lista com apenas 10 itens, pois a geração da resposta será interrompida ao chegar a 11.. Leia nosso artigo de ajuda sobre sequências de parada para entender melhor como fazer isso.
  • Gere menos respostas: reduza os valores de n e best_of sempre que possível. O parâmetro n indica quantas respostas gerar para cada prompt, e best_of é usado para representar o resultado com a maior probabilidade logarítmica por token.

Se n e best_of forem ambos iguais a 1 (o valor padrão), o número de tokens gerados será, no máximo, igual a max_tokens.

Se n (o número de respostas retornadas) ou best_of (o número de respostas geradas para avaliação) forem definidos como > 1, cada requisição criará várias saídas. Nesse caso, você pode considerar o número de tokens gerados como [ max_tokens * max (n, best_of) ]

Streaming

Definir stream: true em uma requisição faz o modelo começar a retornar tokens assim que estiverem disponíveis, sem esperar que toda a sequência seja gerada. Isso não altera o tempo necessário para obter todos os tokens, mas reduz o tempo até o primeiro token em aplicativos nos quais queremos mostrar o progresso parcial ou interromper a geração. Isso pode melhorar a experiência do usuário, então vale a pena experimentar o streaming.

Processamento em lote

Dependendo do seu caso de uso, o processamento em lote pode ajudar. Se você envia várias requisições ao mesmo endpoint, pode agrupar os prompts em lote para enviá-los em uma única requisição. Isso reduzirá o número de requisições necessárias. O parâmetro prompt aceita até 20 prompts distintos. Recomendamos testar esse método para ver se ele ajuda. Em alguns casos, você pode acabar aumentando o número de tokens gerados, o que tornará a resposta mais lenta.

Gerenciamento de custos

Para monitorar seus custos, você pode definir um limiar de notificação na sua conta para receber um alerta por e-mail quando ultrapassar determinado nível de uso. Use o painel de acompanhamento de uso para monitorar seu consumo de tokens no ciclo de faturamento atual e nos anteriores.

Geração de texto

Um dos desafios de levar seu protótipo à produção é planejar o orçamento dos custos de execução do aplicativo. A OpenAI oferece um modelo de preços baseado no uso, com valores por 1.000 tokens (aproximadamente 750 palavras). Para estimar seus custos, você precisará projetar o consumo de tokens. Considere fatores como o volume de tráfego, a frequência com que os usuários interagirão com seu aplicativo e a quantidade de dados que você processará.

Uma abordagem útil para pensar na redução de custos é considerá-los em função da quantidade de tokens e do custo por token. Com essa abordagem, você pode buscar a redução de custos de duas maneiras. A primeira é tentar reduzir o custo por token, passando a usar modelos menores em algumas tarefas. A outra é tentar reduzir a quantidade de tokens necessários. Há algumas maneiras de fazer isso, como usar prompts mais curtos, fazer o ajuste fino de modelos ou armazenar em cache consultas comuns dos usuários para que não precisem ser processadas repetidamente.

Você pode experimentar nossa ferramenta de tokenização interativa para ajudar a estimar custos. A API e o playground também retornam a contagem de tokens como parte da resposta. Depois que tudo estiver funcionando com nosso modelo mais capaz, você pode verificar se outros modelos conseguem produzir os mesmos resultados com menor latência e custo. Saiba mais no nosso artigo de ajuda sobre uso de tokens.

Estratégia de MLOps

Ao levar seu protótipo à produção, você pode considerar desenvolver uma estratégia de MLOps. MLOps (operações de aprendizado de máquina) se refere ao processo de gerenciar todo o ciclo de vida dos seus modelos de aprendizado de máquina, incluindo quaisquer modelos nos quais você esteja fazendo ajuste fino com nossa API. Considere as seguintes áreas ao elaborar sua estratégia de MLOps:

  • Gerenciamento de dados e modelos: gerenciar os dados usados para treinar ou fazer o ajuste fino do modelo e acompanhar versões e alterações.
  • Monitoramento do modelo: acompanhar o desempenho do modelo ao longo do tempo e detectar possíveis problemas ou degradações.
  • Retreinamento do modelo: garantir que o modelo acompanhe as mudanças nos dados ou a evolução dos requisitos e retreiná-lo ou fazer seu ajuste fino conforme necessário.
  • Implantação do modelo: automatizar o processo de implantação do modelo e dos artefatos relacionados em produção.

Analisar esses aspectos do aplicativo ajudará a garantir que o modelo continue relevante e tenha um bom desempenho ao longo do tempo.

Segurança e conformidade

Ao levar seu protótipo para produção, você precisará avaliar e atender aos requisitos de segurança e conformidade que se apliquem ao aplicativo. Isso envolve examinar os dados com os quais você trabalha, entender como nossa API processa dados e determinar quais regulamentações você deve seguir. Nossas práticas de segurança e nosso portal de confiança e conformidade oferecem nossa documentação mais completa e atualizada. Para referência, consulte nossa Política de Privacidade e nossos Termos de Uso.

Alguns aspectos comuns que você precisará considerar incluem armazenamento, transmissão e retenção de dados. Talvez você também precise implementar medidas de proteção da privacidade dos dados, como criptografia ou anonimização, quando possível. Além disso, siga práticas recomendadas de programação segura, como sanitização de entradas e tratamento adequado de erros.

Práticas recomendadas de segurança

Ao criar seu aplicativo com nossa API, considere nossas práticas recomendadas de segurança para garantir a segurança e o sucesso do aplicativo. Essas recomendações destacam a importância de testar o produto extensivamente, agir de forma proativa para resolver possíveis problemas e limitar as oportunidades de uso indevido.

Considerações de negócios

À medida que os projetos que usam IA passam de protótipos para produção, é importante considerar como criar um ótimo produto com IA e como isso se relaciona com a atividade principal da sua empresa. Certamente não temos todas as respostas, mas um ótimo ponto de partida é uma palestra do nosso Developer Day, em que exploramos esse assunto com alguns dos nossos clientes: