Yermek68 commited on
Commit
bfcaca7
·
verified ·
1 Parent(s): 4b82f29

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -12
app.py CHANGED
@@ -2,29 +2,30 @@ from fastapi import FastAPI, UploadFile, File
2
  from typing import List
3
  import gradio as gr
4
  from transformers import pipeline
5
- import uvicorn
6
 
7
- app = FastAPI(title="Eroha Summarizer PRO", version="3.6")
 
8
 
9
- # Ленивая загрузка модели
10
  summarizer = None
11
 
12
  @app.get("/")
13
  def home():
14
  return {"message": "✅ Eroha Summarizer PRO работает!"}
15
 
 
16
  @app.post("/summarize")
17
  async def summarize(files: List[UploadFile] = File(...)):
18
  global summarizer
19
  if summarizer is None:
20
  summarizer = pipeline("summarization", model="facebook/bart-large-cnn")
21
-
22
  texts = [await f.read() for f in files]
23
  full_text = "\n".join([t.decode("utf-8") for t in texts])
24
  summary = summarizer(full_text, max_length=180, min_length=50, do_sample=False)
25
  return {"summary": summary[0]["summary_text"]}
26
 
27
- # Gradio-интерфейс
 
28
  def gradio_summary(text):
29
  global summarizer
30
  if summarizer is None:
@@ -32,6 +33,8 @@ def gradio_summary(text):
32
  result = summarizer(text, max_length=180, min_length=50, do_sample=False)
33
  return result[0]["summary_text"]
34
 
 
 
35
  iface = gr.Interface(
36
  fn=gradio_summary,
37
  inputs=gr.Textbox(lines=10, label="Введите текст для суммаризации"),
@@ -40,12 +43,8 @@ iface = gr.Interface(
40
  description="AI-система для анализа и суммаризации текстов."
41
  )
42
 
43
- # Запуск FastAPI + Gradio (на Hugging Face)
44
- @app.on_event("startup")
45
- async def startup_event():
46
- print("✅ Запуск Gradio интерфейса...")
47
- iface.launch(share=False, server_name="0.0.0.0", server_port=7860, inbrowser=False, prevent_thread_lock=True)
48
 
49
- # Чтобы FastAPI запустился корректно
50
  if __name__ == "__main__":
51
- uvicorn.run(app, host="0.0.0.0", port=7860)
 
 
2
  from typing import List
3
  import gradio as gr
4
  from transformers import pipeline
 
5
 
6
+ # --- FastAPI app ---
7
+ app = FastAPI(title="Eroha Summarizer PRO", version="3.7")
8
 
9
+ # --- Lazy loading model ---
10
  summarizer = None
11
 
12
  @app.get("/")
13
  def home():
14
  return {"message": "✅ Eroha Summarizer PRO работает!"}
15
 
16
+
17
  @app.post("/summarize")
18
  async def summarize(files: List[UploadFile] = File(...)):
19
  global summarizer
20
  if summarizer is None:
21
  summarizer = pipeline("summarization", model="facebook/bart-large-cnn")
 
22
  texts = [await f.read() for f in files]
23
  full_text = "\n".join([t.decode("utf-8") for t in texts])
24
  summary = summarizer(full_text, max_length=180, min_length=50, do_sample=False)
25
  return {"summary": summary[0]["summary_text"]}
26
 
27
+
28
+ # --- Gradio Interface ---
29
  def gradio_summary(text):
30
  global summarizer
31
  if summarizer is None:
 
33
  result = summarizer(text, max_length=180, min_length=50, do_sample=False)
34
  return result[0]["summary_text"]
35
 
36
+
37
+ # создаем интерфейс, но не запускаем его сразу
38
  iface = gr.Interface(
39
  fn=gradio_summary,
40
  inputs=gr.Textbox(lines=10, label="Введите текст для суммаризации"),
 
43
  description="AI-система для анализа и суммаризации текстов."
44
  )
45
 
 
 
 
 
 
46
 
47
+ # --- Запуск только Gradio, без FastAPI run() ---
48
  if __name__ == "__main__":
49
+ # Hugging Face Spaces требует, чтобы работал один порт 7860
50
+ iface.launch(server_name="0.0.0.0", server_port=7860)