BadRequestError: Error code: 400 - {'error': {'message': 'The model `llama3-8b-8192` has been decommissioned and is no longer supported. Please refer to https://console.groq.com/docs/deprecations for a recommendation on which model to use instead.', 'type': 'invalid_request_error', 'code': 'model_decommissioned'
Problema Inicial: Ao tentar realizar uma consulta ao banco de dados SQLite utilizando LlamaIndex e a API do Groq como modelo de linguagem (LLM), encontrei um erro do tipo BadRequestError. A mensagem de erro da API do Groq indicava que o modelo de linguagem especificado não era mais suportado.
Tentativas Iniciais e Diagnóstico: Inicialmente, suspeitei que o problema poderia estar no meu código ou em possíveis incompatibilidades entre as versões das bibliotecas Python instaladas (como sqlalchemy, pandas, llama-index, llama-index-llms-groq, etc.). No entanto, após verificar a sintaxe do código e analisar a mensagem de erro detalhada, ficou claro que o erro era uma resposta direta da API do Groq informando sobre a desativação do modelo.
A Dificuldade: A principal dificuldade foi perceber que o problema não estava na minha implementação, mas sim na disponibilidade dos modelos na plataforma externa (Groq). Mesmo tentando um segundo modelo sugerido (llama3-8b-8192), o mesmo tipo de erro persistiu, confirmando que o problema era com a desativação dos modelos específicos que eu estava tentando usar.
A Solução: A solução para o BadRequestError foi identificar um modelo de linguagem no Groq que estivesse ativo e suportado no momento. Consultei a documentação ou experimentei outros modelos até encontrar um que a API do Groq aceitasse. O modelo que finalmente funcionou foi o llama-3.3-70b-versatile.
Implementação da Solução: Para aplicar a solução no código, precisei:
Localizar a célula onde o nome do modelo do Groq estava definido (variável modelo).
Alterar o valor dessa variável para o nome do modelo ativo e suportado ("llama-3.3-70b-versatile").
Executar novamente as células subsequentes que utilizam essa variável para configurar o LLM no LlamaIndex (Settings.llm = Groq(model=modelo, api_key = key)) e inicializar o mecanismo de consulta (SQLTableRetrieverQueryEngine).
Finalmente, executar a célula que realiza a consulta (query_engine.query(...)).
Versão do Erro e Versão Resolvida:
Versão do Erro: O erro ocorreu ao tentar usar os modelos 'llama3-70b-8192' e 'llama3-8b-8192'. A "versão do erro", neste contexto, refere-se ao nome específico do modelo desativado que estava causando o erro BadRequestError.
Versão Resolvida: O problema foi resolvido ao utilizar o modelo 'llama-3.3-70b-versatile'. A "versão resolvida" é o nome do modelo ativo e suportado que permitiu que a consulta fosse processada com sucesso pela API do Groq.