Yermek68 commited on
Commit
fb0ab55
·
verified ·
1 Parent(s): baf1581

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -17
app.py CHANGED
@@ -1,18 +1,35 @@
1
  import gradio as gr
2
  from transformers import pipeline
 
 
3
 
4
- # 1. Ленивое подключение модели (ускоряет старт)
5
  summarizer = None
6
 
7
  def summarize_text(text: str):
8
- """Функция для суммаризации текста"""
9
  global summarizer
10
  if summarizer is None:
11
  summarizer = pipeline("summarization", model="facebook/bart-large-cnn")
12
  result = summarizer(text, max_length=180, min_length=50, do_sample=False)
13
  return result[0]["summary_text"]
14
 
15
- # 2. Создаём Gradio интерфейс
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
  iface = gr.Interface(
17
  fn=summarize_text,
18
  inputs=gr.Textbox(lines=10, label="Введите текст для суммаризации"),
@@ -21,19 +38,6 @@ iface = gr.Interface(
21
  description="AI-инструмент для анализа и суммаризации текста (рус/англ)."
22
  )
23
 
24
- # 3. Главная часть удерживаем процесс живым
25
  if __name__ == "__main__":
26
- # Важно: server_name="0.0.0.0", чтобы Hugging Face смог подключиться
27
  iface.launch(server_name="0.0.0.0", server_port=7860, share=False, show_api=True)
28
-
29
- import fastapi
30
- from fastapi import FastAPI
31
- from fastapi.middleware.cors import CORSMiddleware
32
-
33
- app = FastAPI()
34
- app.add_middleware(CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"])
35
-
36
- @app.post("/api/summarize")
37
- async def summarize_api(data: dict):
38
- text = data.get("text", "")
39
- return {"summary": summarize_text(text)}
 
1
  import gradio as gr
2
  from transformers import pipeline
3
+ from fastapi import FastAPI
4
+ from fastapi.middleware.cors import CORSMiddleware
5
 
6
+ # 1. Модель суммаризации
7
  summarizer = None
8
 
9
  def summarize_text(text: str):
10
+ """Функция суммаризации текста"""
11
  global summarizer
12
  if summarizer is None:
13
  summarizer = pipeline("summarization", model="facebook/bart-large-cnn")
14
  result = summarizer(text, max_length=180, min_length=50, do_sample=False)
15
  return result[0]["summary_text"]
16
 
17
+ # 2. FastAPI-приложение (для REST API)
18
+ app = FastAPI()
19
+ app.add_middleware(
20
+ CORSMiddleware,
21
+ allow_origins=["*"],
22
+ allow_methods=["*"],
23
+ allow_headers=["*"],
24
+ )
25
+
26
+ @app.post("/api/summarize")
27
+ async def summarize_api(data: dict):
28
+ """REST API для суммаризации"""
29
+ text = data.get("text", "")
30
+ return {"summary": summarize_text(text)}
31
+
32
+ # 3. Gradio интерфейс (веб-интерфейс)
33
  iface = gr.Interface(
34
  fn=summarize_text,
35
  inputs=gr.Textbox(lines=10, label="Введите текст для суммаризации"),
 
38
  description="AI-инструмент для анализа и суммаризации текста (рус/англ)."
39
  )
40
 
41
+ # 4. Запуск сервера (чтобы контейнер Hugging Face не завершался)
42
  if __name__ == "__main__":
 
43
  iface.launch(server_name="0.0.0.0", server_port=7860, share=False, show_api=True)