1
resposta

[Bug] Erro

System.Security.Authentication.AuthenticationException: 'OpenAI rejected your authorization, most likely due to an invalid API Key.  Try checking your API Key and see https://github.com/OkGoDoIt/OpenAI-API-dotnet#authentication for guidance.  Full API response follows: {

aparece esse erro, como resolver ?

também aparece esse:

System.Net.Http.HttpRequestException: 'Error at chat/completions (https://api.openai.com/v1/chat/completions) with HTTP status code: TooManyRequests. Content: {
    "error": {
        "message": "You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https://platform.openai.com/docs/guides/error-codes/api-errors.",
        "type": "insufficient_quota",
        "param": null,
        "code": "insufficient_quota"
    }
}
'
1 resposta

Oii, Matheus. Tudo bem?

O primeiro erro, o System.Security.Authentication.AuthenticationException, fala que a chave da API que você está usando para se autenticar com a OpenAI não é válida. Isso pode acontecer se a chave estiver incorreta ou se ela tiver sido revogada. É necessário você verificar isso.

Aqui está um exemplo de como você precisa inserir a chave da API:

var client = new OpenAIAPI("sua-chave-api-aqui");

O segundo erro, System.Net.Http.HttpRequestException, indica que você excedeu a cota de sua conta na API do OpenAI. Ou seja: você fez muitas solicitações em um curto período de tempo. Para lidar com isso, você pode precisar aguardar até que a cota seja redefinida ou considerar a possibilidade de aumentar sua cota entrando em contato com o OpenAI.

Se você estiver fazendo muitas solicitações em um loop, por exemplo, pode ser útil adicionar algum tempo de espera entre as solicitações para evitar atingir a cota. Aqui está um exemplo de como você pode fazer isso:

for (int i = 0; i < 100; i++)
{
    var chat = client.Chat.CreateConversation();
    chat.AppendSystemMessage("Sua mensagem aqui");
    string resposta = await chat.GetResponseFromChatbotAsync();
    Console.WriteLine(resposta);
    System.Threading.Thread.Sleep(1000); // Espera 1 segundo antes da próxima solicitação
}

Se mais dúvidas surgirem, estamos aqui.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software