Spaces:
Running
Running
File size: 1,534 Bytes
7d41bbc ef215a0 fb0ab55 b758f58 fb0ab55 7d41bbc bfcaca7 05039dd fb0ab55 7d41bbc b1a1fe2 bfcaca7 fb0ab55 7d41bbc 05039dd 067221c 7d41bbc 980abe2 fb0ab55 067221c bf42b73 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
import gradio as gr
from transformers import pipeline
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
# 1. Модель суммаризации
summarizer = None
def summarize_text(text: str):
"""Функция суммаризации текста"""
global summarizer
if summarizer is None:
summarizer = pipeline("summarization", model="facebook/bart-large-cnn")
result = summarizer(text, max_length=180, min_length=50, do_sample=False)
return result[0]["summary_text"]
# 2. FastAPI-приложение (для REST API)
app = FastAPI()
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_methods=["*"],
allow_headers=["*"],
)
@app.post("/api/summarize")
async def summarize_api(data: dict):
"""REST API для суммаризации"""
text = data.get("text", "")
return {"summary": summarize_text(text)}
# 3. Gradio интерфейс (веб-интерфейс)
iface = gr.Interface(
fn=summarize_text,
inputs=gr.Textbox(lines=10, label="Введите текст для суммаризации"),
outputs=gr.Textbox(label="Результат"),
title="Eroha Summarizer PRO",
description="AI-инструмент для анализа и суммаризации текста (рус/англ)."
)
# 4. Запуск сервера (чтобы контейнер Hugging Face не завершался)
if __name__ == "__main__":
iface.launch(server_name="0.0.0.0", server_port=7860, share=False)
|