Skip to main content
Esta página lista comportamentos que podem surpreendê-lo. Preferimos que você os leia aqui do que os descubra em uma fatura.

Uma solicitação cancelada do OpenAI custa a resposta completa

Cancele uma solicitação do OpenAI no meio e você pagará pela resposta completa. Você não paga apenas pela parte que leu. O mesmo cancelamento em um modelo Anthropic ou Google interrompe a cobrança no ponto em que você parou. Isso se aplica quando chamamos Anthropic ou Google diretamente. Se você fixar uma solicitação para Bedrock ou Vertex, nós a leremos até o final, assim como fazemos para o OpenAI. O cancelamento ainda encerra sua conexão imediatamente, então nada continua em streaming para sua aplicação. A geração no OpenAI é o que continua, e você paga por ela. O OpenAI não nos oferece uma maneira de interromper uma resposta de streaming e não relata uso para uma que foi interrompida precocemente, então não temos nada preciso para faturar você. Estamos trabalhando em uma alternativa, e esta página será atualizada quando ela for implementada. Seus logs mostram uma solicitação interrompida como ‘Canceled’. Suas contagens de tokens são as que o provedor relatou antes de você parar. Duas coisas ajudam enquanto isso. Defina max_output_tokens para que uma solicitação cancelada não possa exceder um comprimento que você aceita. Use modelos Anthropic ou Google onde a interrupção é mais importante do que a escolha do modelo.

Um stream que falha no meio ainda começa com sucesso

Uma solicitação pode falhar depois que a resposta começou a chegar. A linha de status já indica que a solicitação foi bem-sucedida, e o HTTP não oferece uma maneira de reverter isso. A falha chega dentro do stream. Ela aparece como um evento de erro, não como um término normal. Leia o evento terminal em vez do código de status ao fazer streaming. Marcamos uma solicitação que falhou dessa forma como ‘failed’, em seus logs e no painel. Assim, o que você vê lá é preciso.