Yermek68 commited on
Commit
fee13cf
·
verified ·
1 Parent(s): 91daf3d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -10
app.py CHANGED
@@ -1,23 +1,31 @@
1
  import gradio as gr
2
  from transformers import pipeline, AutoTokenizer, logging
3
- import threading, torch, warnings
4
  from langdetect import detect
 
5
 
6
- # --- Disable warnings and logs ---
 
 
7
  warnings.filterwarnings("ignore")
8
  logging.set_verbosity_error()
9
 
 
10
  models = {}
11
  models_ready = False
12
  status_message = "⏳ Инициализация моделей (1–2 мин)..."
13
 
 
14
  def load_model(model_name, task="summarization"):
15
- """Безопасная загрузка с fallback на legacy-токенайзер и half precision"""
16
  try:
17
  print(f"🔄 Загружается модель: {model_name}")
18
- tokenizer = AutoTokenizer.from_pretrained(model_name, use_fast=False, legacy=True)
 
 
 
 
 
19
  model_pipe = pipeline(task, model=model_name, tokenizer=tokenizer, device=-1)
20
- # Оптимизация PyTorch
21
  if hasattr(model_pipe.model, "half"):
22
  model_pipe.model = model_pipe.model.half()
23
  if hasattr(torch, "compile"):
@@ -27,9 +35,10 @@ def load_model(model_name, task="summarization"):
27
  pass
28
  return model_pipe
29
  except Exception as e:
30
- print(f"⚠️ Ошибка загрузки {model_name}: {e}")
31
  return None
32
 
 
33
  def preload_models():
34
  global models, models_ready, status_message
35
  try:
@@ -40,12 +49,12 @@ def preload_models():
40
  status_message = "✅ Все модели успешно загружены и оптимизированы!"
41
  print(status_message)
42
  except Exception as e:
43
- status_message = f"❌ Ошибка при инициализации моделей: {e}"
44
  print(status_message)
45
 
46
- # --- Lazy background loading ---
47
  threading.Thread(target=preload_models, daemon=True).start()
48
 
 
49
  def summarize_text(text):
50
  if not text.strip():
51
  return "⚠️ Введите текст для суммаризации."
@@ -63,8 +72,12 @@ def summarize_text(text):
63
  except Exception as e:
64
  return f"⚠️ Ошибка суммаризации: {e}"
65
 
66
- with gr.Blocks(title="🧠 Eroha Summarizer PRO v4.0") as app:
67
- gr.Markdown("## 🧠 **Eroha Summarizer PRO** — Multilingual Summarizer (BART / MBART / mT5)")
 
 
 
 
68
  status = gr.Markdown(status_message)
69
  inp = gr.Textbox(label="Введите текст", lines=12, placeholder="Вставьте текст сюда...")
70
  out = gr.Textbox(label="Результат суммаризации")
 
1
  import gradio as gr
2
  from transformers import pipeline, AutoTokenizer, logging
 
3
  from langdetect import detect
4
+ import threading, warnings, os, torch
5
 
6
+ # --- Silent mode ---
7
+ os.environ["TOKENIZERS_PARALLELISM"] = "false"
8
+ os.environ["TRANSFORMERS_NO_ADVISORY_WARNINGS"] = "1"
9
  warnings.filterwarnings("ignore")
10
  logging.set_verbosity_error()
11
 
12
+ # --- Global vars ---
13
  models = {}
14
  models_ready = False
15
  status_message = "⏳ Инициализация моделей (1–2 мин)..."
16
 
17
+ # --- Model loader ---
18
  def load_model(model_name, task="summarization"):
 
19
  try:
20
  print(f"🔄 Загружается модель: {model_name}")
21
+ tokenizer = AutoTokenizer.from_pretrained(
22
+ model_name,
23
+ use_fast=False,
24
+ legacy=True,
25
+ trust_remote_code=True
26
+ )
27
  model_pipe = pipeline(task, model=model_name, tokenizer=tokenizer, device=-1)
28
+ # Torch optimizations
29
  if hasattr(model_pipe.model, "half"):
30
  model_pipe.model = model_pipe.model.half()
31
  if hasattr(torch, "compile"):
 
35
  pass
36
  return model_pipe
37
  except Exception as e:
38
+ print(f"⚠️ Ошибка при загрузке {model_name}: {e}")
39
  return None
40
 
41
+ # --- Preload all models asynchronously ---
42
  def preload_models():
43
  global models, models_ready, status_message
44
  try:
 
49
  status_message = "✅ Все модели успешно загружены и оптимизированы!"
50
  print(status_message)
51
  except Exception as e:
52
+ status_message = f"❌ Ошибка инициализации моделей: {e}"
53
  print(status_message)
54
 
 
55
  threading.Thread(target=preload_models, daemon=True).start()
56
 
57
+ # --- Summarization logic ---
58
  def summarize_text(text):
59
  if not text.strip():
60
  return "⚠️ Введите текст для суммаризации."
 
72
  except Exception as e:
73
  return f"⚠️ Ошибка суммаризации: {e}"
74
 
75
+ # --- UI ---
76
+ with gr.Blocks(title="Eroha Summarizer PRO — Multilingual (BART / MBART / mT5)") as app:
77
+ gr.Markdown("""
78
+ ## 🧠 **Eroha Summarizer PRO**
79
+ <div style='color:gray'>Многоязычный суммаризатор (EN/RU/Multilingual)</div>
80
+ """)
81
  status = gr.Markdown(status_message)
82
  inp = gr.Textbox(label="Введите текст", lines=12, placeholder="Вставьте текст сюда...")
83
  out = gr.Textbox(label="Результат суммаризации")