Finish-him commited on
Commit
a750daa
·
verified ·
1 Parent(s): 4662e37

create app.py

Browse files
Files changed (1) hide show
  1. app.py +52 -0
app.py ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import os
3
+ import time
4
+ import zipfile
5
+ import shutil
6
+
7
+ # --- 1. CONFIGURAÇÕES E CONSTANTES ---
8
+ # Defina os caminhos e nomes de arquivos importantes aqui.
9
+ # Isso facilita a manutenção.
10
+
11
+ # ATENÇÃO: No Hugging Face Spaces, o armazenamento é efêmero por padrão.
12
+ # Para salvar os embeddings permanentemente, ative o "Persistent Storage" nas configurações do seu Space.
13
+ # O caminho para o armazenamento persistente geralmente começa com /data
14
+ # Se você tiver armazenamento persistente, mude o caminho abaixo:
15
+ # OUTPUT_EMBEDDINGS_FILE = "/data/embeddings_gerados.faiss"
16
+ OUTPUT_EMBEDDINGS_FILE = "embeddings_gerados.faiss" # Usando armazenamento temporário por enquanto
17
+
18
+ DATA_DIR = "dados"
19
+ ZIP_FILE_PATH = os.path.join(DATA_DIR, "Treinamento do PGL_4.zip")
20
+ EXTRACT_PATH = os.path.join(DATA_DIR, "extraidos")
21
+
22
+ # --- 2. FUNÇÕES DE PROCESSAMENTO ---
23
+ # Cada etapa do seu processo original foi transformada em uma função.
24
+
25
+ def unzip_data():
26
+ """Descompacta o arquivo ZIP de dados."""
27
+ if os.path.exists(EXTRACT_PATH):
28
+ shutil.rmtree(EXTRACT_PATH) # Limpa extrações antigas
29
+ os.makedirs(EXTRACT_PATH, exist_ok=True)
30
+
31
+ with zipfile.ZipFile(ZIP_FILE_PATH, 'r') as zip_ref:
32
+ zip_ref.extractall(EXTRACT_PATH)
33
+
34
+ # Conta os arquivos para dar um feedback similar ao original
35
+ files = [os.path.join(root, name) for root, dirs, files in os.walk(EXTRACT_PATH) for name in files]
36
+ return len(files)
37
+
38
+ def process_files(num_files_to_process):
39
+ """
40
+ Simula o processamento dos 265 arquivos.
41
+ Esta função usa 'yield' para enviar o progresso para a interface.
42
+ """
43
+ yield f"🔎 Encontrados {num_files_to_process} arquivos para processar."
44
+
45
+ # Simulação do processamento de arquivos
46
+ for i in range(num_files_to_process + 1):
47
+ # ATENÇÃO: Substitua este 'time.sleep' pelo seu CÓDIGO REAL de processamento de um arquivo.
48
+ time.sleep(0.01)
49
+
50
+ # Atualiza a barra de progresso a cada iteração
51
+ progress_bar = "█" * int((i / num_files_to_process) * 20)
52
+ yield f"Processando arquivos: {int((i / num_files_to_process) *