tuliodisanto commited on
Commit
5d2526d
·
verified ·
1 Parent(s): ac17ac6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +29 -5
app.py CHANGED
@@ -33,15 +33,19 @@ FEEDBACK_CSV_COLUMNS = [
33
  def normalize_text_for_feedback(text):
34
  if pd.isna(text):
35
  return ""
 
 
 
36
  from enhanced_search_v2 import normalize_text as es_normalize_text
37
  return es_normalize_text(str(text).strip())
38
 
39
 
40
  def load_user_feedback():
41
  global USER_BEST_MATCHES_COUNTS
42
- USER_BEST_MATCHES_COUNTS = {}
43
  feedback_file_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), USER_FEEDBACK_FILE)
44
 
 
45
  if not os.path.exists(feedback_file_path):
46
  print(f"--- [AVISO] Arquivo de feedback '{USER_FEEDBACK_FILE}' não encontrado. Criando um novo. ---")
47
  try:
@@ -52,18 +56,35 @@ def load_user_feedback():
52
  print(f"--- [ERRO] Falha ao criar '{USER_FEEDBACK_FILE}': {e} ---")
53
  return
54
 
 
55
  try:
56
  with open(feedback_file_path, 'r', encoding='utf-8') as f:
57
  reader = csv.reader(f)
58
- header = next(reader)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
 
60
- if header != FEEDBACK_CSV_COLUMNS:
61
  print(
62
  f"--- [AVISO] Cabeçalho de '{USER_FEEDBACK_FILE}' inesperado: {header}. Esperado: {FEEDBACK_CSV_COLUMNS}. Recriando arquivo.")
 
63
  with open(feedback_file_path, 'w', newline='', encoding='utf-8') as f_write:
64
  writer = csv.writer(f_write)
65
  writer.writerow(FEEDBACK_CSV_COLUMNS)
66
- return
 
67
 
68
  for row in reader:
69
  if len(row) == len(FEEDBACK_CSV_COLUMNS):
@@ -164,7 +185,7 @@ try:
164
  load_correction_corpus,
165
  load_general_dictionary,
166
  search_procedure_with_log,
167
- normalize_text as es_normalize_text
168
  )
169
 
170
  print("--- [SUCESSO] Módulo 'enhanced_search_v2.py' importado. ---")
@@ -187,6 +208,9 @@ except Exception as e:
187
  traceback.print_exc();
188
  sys.exit(1)
189
 
 
 
 
190
  load_user_feedback()
191
 
192
  try:
 
33
  def normalize_text_for_feedback(text):
34
  if pd.isna(text):
35
  return ""
36
+ # Importar normalize_text de enhanced_search_v2 para garantir consistência
37
+ # É importante que enhanced_search_v2 já tenha sido importado antes desta função ser chamada.
38
+ # No seu código, enhanced_search_v2 é importado globalmente, então esta linha funciona.
39
  from enhanced_search_v2 import normalize_text as es_normalize_text
40
  return es_normalize_text(str(text).strip())
41
 
42
 
43
  def load_user_feedback():
44
  global USER_BEST_MATCHES_COUNTS
45
+ USER_BEST_MATCHES_COUNTS = {} # Reseta o dicionário em memória para carregar do arquivo
46
  feedback_file_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), USER_FEEDBACK_FILE)
47
 
48
+ # 1. Se o arquivo não existe, cria com o cabeçalho
49
  if not os.path.exists(feedback_file_path):
50
  print(f"--- [AVISO] Arquivo de feedback '{USER_FEEDBACK_FILE}' não encontrado. Criando um novo. ---")
51
  try:
 
56
  print(f"--- [ERRO] Falha ao criar '{USER_FEEDBACK_FILE}': {e} ---")
57
  return
58
 
59
+ # 2. Tenta carregar o feedback do arquivo existente
60
  try:
61
  with open(feedback_file_path, 'r', encoding='utf-8') as f:
62
  reader = csv.reader(f)
63
+
64
+ # --- INÍCIO DA CORREÇÃO ---
65
+ # Verifica se o arquivo está vazio antes de tentar ler o cabeçalho
66
+ try:
67
+ header = next(reader)
68
+ except StopIteration:
69
+ print(f"--- [AVISO] '{USER_FEEDBACK_FILE}' está vazio ou contém apenas linhas em branco. Recriando cabeçalho.")
70
+ # Recria o arquivo com apenas o cabeçalho se ele estiver vazio
71
+ with open(feedback_file_path, 'w', newline='', encoding='utf-8') as f_write:
72
+ writer = csv.writer(f_write)
73
+ writer.writerow(FEEDBACK_CSV_COLUMNS)
74
+ return # Sai da função, pois não há dados para carregar
75
+
76
+ # Normaliza o cabeçalho lido para remover espaços em branco e garantir comparação exata
77
+ header_normalized = [col.strip() for col in header]
78
 
79
+ if header_normalized != FEEDBACK_CSV_COLUMNS:
80
  print(
81
  f"--- [AVISO] Cabeçalho de '{USER_FEEDBACK_FILE}' inesperado: {header}. Esperado: {FEEDBACK_CSV_COLUMNS}. Recriando arquivo.")
82
+ # Recria o arquivo com o cabeçalho correto (apaga o conteúdo existente)
83
  with open(feedback_file_path, 'w', newline='', encoding='utf-8') as f_write:
84
  writer = csv.writer(f_write)
85
  writer.writerow(FEEDBACK_CSV_COLUMNS)
86
+ return # Sai da função, pois o arquivo foi reformatado e não há dados antigos para carregar
87
+ # --- FIM DA CORREÇÃO ---
88
 
89
  for row in reader:
90
  if len(row) == len(FEEDBACK_CSV_COLUMNS):
 
185
  load_correction_corpus,
186
  load_general_dictionary,
187
  search_procedure_with_log,
188
+ normalize_text as es_normalize_text # Importado para ser usado em normalize_text_for_feedback
189
  )
190
 
191
  print("--- [SUCESSO] Módulo 'enhanced_search_v2.py' importado. ---")
 
208
  traceback.print_exc();
209
  sys.exit(1)
210
 
211
+ # Esta linha deve ser chamada DEPOIS que enhanced_search_v2 foi importado,
212
+ # pois normalize_text_for_feedback depende de es_normalize_text.
213
+ # Sua ordem atual está correta.
214
  load_user_feedback()
215
 
216
  try: