# Identifique diferentes erros: value, type, name e divisão por zero;
"""
RESPOSTA:
Erros de value: Ocorre quando uma operação recebe um argumento de um tipo correto, mas com um valor inapropriado. Ex.: Tentar converter uma string 'abc' para um número inteiro.
Erros de type: Quando o usuário insere um tipo de caractere que não faz parte do conjunto de caracteres delimitados no código. Ex.: Letra, em vez de apenas números.
Erros de name: Ocorre quando uma variável ou função é usada antes de ser definida. Ex.: Usar uma variável que não foi declarada.
Divisão por zero: Quando o denominador é igual a zero.
"""
# Crie um bloco try para isolar operações arriscadas;
try:
a = int(input("Insira o valor do numerador (número inteiro): "))
# A variável 'i' não está definida, o que causaria um NameError.
# Para demonstração, vamos definir 'i' ou corrigir a linha.
# Por simplicidade e para focar na exceção, vou usar um valor fixo para o denominador.
denominador = 0 # Para forçar ZeroDivisionError
print(a/denominador)
except ZeroDivisionError:
print("Não é possível dividir por zero!")
# Configure except para capturar value error e alertar o usuário;
except ValueError:
print("Digite um valor numérico válido! Ex.: 1, 2, 3, não números quebrados")
# Configure except para capturar type error com mensagem de apoio;
except TypeError:
print("Digite um valor numérico!")
# Utilize except geral para erros não previstos;
except Exception as e: # Usar Exception para capturar outros erros, incluindo NameError
print(f"Erro inesperado: {e}!")
# Aplique finally para executar ações de finalização (ex.: fechar arquivos);
finally:
print("Execução concluída!")
# exit() # Desativado para permitir a execução do restante do notebook
# Replique exemplos de tratamento de exceções conforme demonstrado;
# Filtre DataFrame por análises negativas usando pandas;
import pandas as pd
# Extraia a coluna de resenhas negativas do DataFrame;
# Una as resenhas com o método join e delimitador definido;
# Armazene o texto unificado em variável para processamento;
negativos = df[df["Sentimentos"] == 'Negativo']['reviewText'].astype(str).str.cat(sep='###')
# Prepare um prompt para enviar as resenhas ao LLM;
prompt = f"Analise as seguintes avaliações negativas de clientes, separadas por '###'. Identifique o principal problema, a reclamação mais agrupada e a sugestão de melhoria mais relevante. Responda com uma única palavra para cada categoria. \n\nResenhas: {negativos}\n\nFormato de saída: Problema: [uma palavra]\nReclamação: [uma palavra]\nMelhoria: [uma palavra]"
# Configure o cliente de LLM com parâmetros específicos;
import os
from google.colab import userdata
from groq import Groq
from google.api_core.exceptions import TooManyRequests
import time
import re # Importar o módulo re para expressões regulares
os.environ['GROQ_API_KEY'] = userdata.get('GROQ_API_KEY')
client = Groq()
# Realize chamadas à IA e capture as respostas;
# Realizando a chamada única à IA com o prompt que contém todas as resenhas negativas
print("\nRealizando análise consolidada das avaliações negativas pela IA...")
max_retries = 5
initial_delay = 2 # seconds
llm_response_consolidated = "" # Para armazenar a única resposta consolidada
continua nos comentário...