Yermek68 commited on
Commit
05039dd
·
verified ·
1 Parent(s): ef215a0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -11
app.py CHANGED
@@ -1,30 +1,36 @@
1
  import gradio as gr
2
  from fastapi import FastAPI
3
  from transformers import pipeline
 
4
 
5
- # 1. Инициализация FastAPI и Gradio
6
- app = FastAPI()
7
 
8
- # 2. Ленивая инициализация модели (для скорости)
9
  summarizer = None
10
 
11
- def summarize_text(text):
12
  global summarizer
13
  if summarizer is None:
14
  summarizer = pipeline("summarization", model="facebook/bart-large-cnn")
15
  result = summarizer(text, max_length=180, min_length=50, do_sample=False)
16
  return result[0]["summary_text"]
17
 
18
- # 3. Интерфейс Gradio
19
  iface = gr.Interface(
20
  fn=summarize_text,
21
- inputs=gr.Textbox(lines=8, label="Введите текст"),
22
- outputs="text",
23
- title="Eroha Agent API",
24
- description="💠 Универсальный API для суммаризации текста (RU/EN)."
25
  )
26
 
27
- # 4. Обеспечиваем совместимость Hugging Face + FastAPI
28
- from gradio.routes import mount_gradio_app
29
  app = mount_gradio_app(app, iface, path="/")
30
 
 
 
 
 
 
 
 
1
  import gradio as gr
2
  from fastapi import FastAPI
3
  from transformers import pipeline
4
+ from gradio.routes import mount_gradio_app
5
 
6
+ # 1. Инициализация FastAPI-приложения
7
+ app = FastAPI(title="Eroha Summarizer PRO", version="3.7")
8
 
9
+ # 2. Ленивая загрузка модели (ускоряет запуск)
10
  summarizer = None
11
 
12
+ def summarize_text(text: str):
13
  global summarizer
14
  if summarizer is None:
15
  summarizer = pipeline("summarization", model="facebook/bart-large-cnn")
16
  result = summarizer(text, max_length=180, min_length=50, do_sample=False)
17
  return result[0]["summary_text"]
18
 
19
+ # 3. Gradio интерфейс
20
  iface = gr.Interface(
21
  fn=summarize_text,
22
+ inputs=gr.Textbox(lines=10, label="Введите текст для суммаризации"),
23
+ outputs=gr.Textbox(label="Результат"),
24
+ title="Eroha Summarizer PRO",
25
+ description="AI-инструмент для автоматической суммаризации текста."
26
  )
27
 
28
+ # 4. Интеграция Gradio в FastAPI (чтобы не завершался контейнер)
 
29
  app = mount_gradio_app(app, iface, path="/")
30
 
31
+ # 5. Стандартный эндпоинт для API-запросов
32
+ @app.post("/api/summarize")
33
+ async def summarize_api(request: dict):
34
+ text = request.get("text", "")
35
+ summary = summarize_text(text)
36
+ return {"summary": summary}