Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[GROQ] Sem resposta - Limite de Tokens excedido na primeira request

Fala, pessoal!
Estou fazendo a aula sobre open LLM e Groq e estou recebendo erros.

**Esse é o codigo:
**

from groq import Groq

client = Groq()
completion = client.chat.completions.create(
model="openai/gpt-oss-120b",
messages=[
{
"role": "user",
"content": "What is AI? 5 words only."
}
],
temperature=1,
max_completion_tokens=8192,
top_p=1,
reasoning_effort="medium",
stream=True,
stop=None
)

for chunk in completion:
print(chunk.choices[0].delta.content or "", end="")

**E esse é o erro:
**


APIStatusError Traceback (most recent call last)
/tmp/ipykernel_6081/2444207085.py in <cell line: 0>()
2
3 client = Groq()
----> 4 completion = client.chat.completions.create(
5 model="openai/gpt-oss-120b",
6 messages=[

2 frames/usr/local/lib/python3.12/dist-packages/groq/resources/chat/completions.py in create(self, messages, model, citation_options, compound_custom, disable_tool_validation, documents, exclude_domains, frequency_penalty, function_call, functions, include_domains, include_reasoning, logit_bias, logprobs, max_completion_tokens, max_tokens, metadata, n, parallel_tool_calls, presence_penalty, reasoning_effort, reasoning_format, response_format, search_settings, seed, service_tier, stop, store, stream, temperature, tool_choice, tools, top_logprobs, top_p, user, extra_headers, extra_query, extra_body, timeout)
459 timeout: Override the client-level default timeout for this request, in seconds
460 """
--> 461 return self._post(
462 "/openai/v1/chat/completions",
463 body=maybe_transform(

/usr/local/lib/python3.12/dist-packages/groq/_base_client.py in post(self, path, cast_to, body, content, options, files, stream, stream_cls)
1282 method="post", url=path, json_data=body, content=content, files=to_httpx_files(files), **options
1283 )
-> 1284 return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
1285
1286 def patch(

/usr/local/lib/python3.12/dist-packages/groq/_base_client.py in request(self, cast_to, options, stream, stream_cls)
1069
1070 log.debug("Re-raising status error")
-> 1071 raise self._make_status_error_from_response(err.response) from None
1072
1073 break

APIStatusError: Error code: 413 - {'error': {'message': 'Request too large for model openai/gpt-oss-120b in organization org_01kqmve7mgf22rbrg1ehrgnd0h service tier on_demand on tokens per minute (TPM): Limit 8000, Requested 8272, please reduce your message size and try again. Need more tokens? Upgrade to Dev Tier today at https://console.groq.com/settings/billing', 'type': 'tokens', 'code': 'rate_limit_exceeded'}}

**Detalhe:
**

Acontece o mesmo erro, com o mesmo codigo no Colab e no Playground do Groq.

Alguma ideia da causa e solução?
Abraço!

2 respostas
solução!

Consegui avançar. Tudo indica que o problema estava em

max_completion_tokens=8192

Coloquei um valo menor, 100, e consegui obter uma resposta.

Olá, Francisco! Tudo bem?

Como Software Engineer Lead, você sabe que mensagens de erro são ótimos "mapas" para o diagnóstico. O erro que você está recebendo (413 - Request too large) é bem específico: você está tentando "reservar" mais recursos do que a sua cota atual permite na Groq.

O Diagnóstico Técnico

O ponto central está aqui: on tokens per minute (TPM): Limit 8000, Requested 8272.

Diferente de outras APIs, a Groq (e alguns outros provedores) calcula o seu limite de Tokens Por Minuto (TPM) somando o que você envia no input com o que você reserva no max_completion_tokens.

No seu código, você definiu:
max_completion_tokens=8192

Como o seu limite no nível gratuito (ou on_demand) para esse modelo específico é de 8000 TPM, a requisição é negada antes mesmo de começar, porque a soma do seu prompt com a reserva de 8192 já ultrapassa o teto de 8000.


Como resolver?

Para solucionar, você precisa adequar a sua solicitação ao limite da sua conta:

  1. Reduza o max_completion_tokens: Como sua pergunta é curta ("What is AI? 5 words only"), você não precisa de 8192 tokens de resposta. Tente alterar para algo como max_completion_tokens=100 ou até menos.
  2. Verifique o Modelo: O modelo openai/gpt-oss-120b é extremamente denso. Verifique no Console da Groq se há outros modelos (como o Llama 3 ou Mixtral) que possuem um limite de TPM maior para o seu nível de conta.
  3. Ajuste o stream=True: O uso de streaming é ótimo para UX, mas ele não "contorna" os limites de TPM. A validação do limite total (Input + Max Completion) acontece no momento em que o servidor recebe o POST.

Sugestão de alteração no código

completion = client.chat.completions.create(
    model="openai/gpt-oss-120b",
    messages=[
        {
            "role": "user",
            "content": "What is AI? 5 words only."
        }
    ],
    temperature=1,
    max_completion_tokens=50, # Reduzido para caber no limite de 8000 TPM
    top_p=1,
    stream=True
)

Essa mudança deve fazer com que o erro desapareça imediatamente, tanto no Colab quanto no Playground.

Francisco, como você está na trilha de Python Aplicado à IA, essa é uma ótima oportunidade para explorar a biblioteca tiktoken no futuro, que ajuda a contar tokens antes de enviar a requisição e evitar esses erros de limite.

Conseguiu rodar com a redução do max_completion_tokens?