Spaces:
Running
Running
| 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=["*"], | |
| ) | |
| 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) | |