Yermek68 commited on
Commit
20349e5
·
verified ·
1 Parent(s): 1c0bce9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -14
app.py CHANGED
@@ -1,15 +1,18 @@
1
  import gradio as gr
2
  from transformers import pipeline, AutoTokenizer
3
- import threading, time
 
4
  from langdetect import detect
5
 
 
 
6
  models = {}
7
  models_ready = False
 
8
 
9
  def load_model_safe(model_name, task="summarization"):
10
  try:
11
  print(f"🔄 Загружается модель: {model_name}")
12
- # Принудительно используем legacy=False только если доступен fast tokenizer
13
  tokenizer = AutoTokenizer.from_pretrained(model_name, use_fast=False, legacy=True)
14
  model = pipeline(task, model=model_name, tokenizer=tokenizer)
15
  return model
@@ -18,16 +21,16 @@ def load_model_safe(model_name, task="summarization"):
18
  return None
19
 
20
  def preload_models():
21
- global models, models_ready
22
  try:
23
- print("🚀 Инициализация моделей...")
24
  models["en"] = load_model_safe("facebook/bart-large-cnn")
25
  models["ru"] = load_model_safe("IlyaGusev/mbart_ru_sum_gazeta")
26
  models["multi"] = load_model_safe("csebuetnlp/mT5_multilingual_XLSum")
27
  models_ready = True
28
- print("✅ Все модели успешно загружены.")
 
29
  except Exception as e:
30
- print(f"❌ Ошибка при инициализации моделей: {e}")
31
 
32
  threading.Thread(target=preload_models, daemon=True).start()
33
 
@@ -35,7 +38,7 @@ def summarize_text(text):
35
  if not text.strip():
36
  return "⚠️ Пожалуйста, введите текст."
37
  if not models_ready:
38
- return "⏳ Модели ещё загружаются, попробуйте через несколько секунд."
39
  try:
40
  lang = detect(text)
41
  if lang == "ru":
@@ -49,11 +52,12 @@ def summarize_text(text):
49
  except Exception as e:
50
  return f"⚠️ Ошибка обработки: {e}"
51
 
52
- iface = gr.Interface(
53
- fn=summarize_text,
54
- inputs=gr.Textbox(label="Введите текст для суммаризации", lines=12),
55
- outputs=gr.Textbox(label="Результат суммаризации"),
56
- title="🧠 Eroha Summarizer PRO",
57
- description="Многоязычный суммаризатор (EN/RU/Multilingual) на основе BART, MBART, mT5.",
58
- )
 
59
  iface.launch(server_name="0.0.0.0", server_port=7860)
 
1
  import gradio as gr
2
  from transformers import pipeline, AutoTokenizer
3
+ import threading
4
+ import warnings
5
  from langdetect import detect
6
 
7
+ warnings.filterwarnings("ignore")
8
+
9
  models = {}
10
  models_ready = False
11
+ init_message = "⏳ Инициализация моделей (1–2 мин)..."
12
 
13
  def load_model_safe(model_name, task="summarization"):
14
  try:
15
  print(f"🔄 Загружается модель: {model_name}")
 
16
  tokenizer = AutoTokenizer.from_pretrained(model_name, use_fast=False, legacy=True)
17
  model = pipeline(task, model=model_name, tokenizer=tokenizer)
18
  return model
 
21
  return None
22
 
23
  def preload_models():
24
+ global models, models_ready, init_message
25
  try:
 
26
  models["en"] = load_model_safe("facebook/bart-large-cnn")
27
  models["ru"] = load_model_safe("IlyaGusev/mbart_ru_sum_gazeta")
28
  models["multi"] = load_model_safe("csebuetnlp/mT5_multilingual_XLSum")
29
  models_ready = True
30
+ init_message = "✅ Все модели успешно загружены!"
31
+ print(init_message)
32
  except Exception as e:
33
+ init_message = f"❌ Ошибка инициализации моделей: {e}"
34
 
35
  threading.Thread(target=preload_models, daemon=True).start()
36
 
 
38
  if not text.strip():
39
  return "⚠️ Пожалуйста, введите текст."
40
  if not models_ready:
41
+ return init_message
42
  try:
43
  lang = detect(text)
44
  if lang == "ru":
 
52
  except Exception as e:
53
  return f"⚠️ Ошибка обработки: {e}"
54
 
55
+ with gr.Blocks(title="Eroha Summarizer PRO") as iface:
56
+ gr.Markdown("## 🧠 **Eroha Summarizer PRO**\nМногоязычный суммаризатор на BART / MBART / mT5\n")
57
+ gr.Markdown(init_message)
58
+ inp = gr.Textbox(label="Введите текст для суммаризации", lines=12)
59
+ out = gr.Textbox(label="Результат суммаризации")
60
+ btn = gr.Button("🚀 Суммаризировать")
61
+ btn.click(summarize_text, inputs=inp, outputs=out)
62
+
63
  iface.launch(server_name="0.0.0.0", server_port=7860)