anal / app.py
boompack's picture
Update app.py
1f8811b verified
from transformers import pipeline
import gradio as gr
class TextProcessor:
"""
Класс для обработки текста с использованием моделей GPT-Neo и T5.
"""
def __init__(self, api_key=None):
"""
Инициализирует объект TextProcessor.
"""
self.api_key = api_key # API-ключ, если он нужен для авторизации
self.model_gpt = pipeline("text-generation", model="EleutherAI/gpt-neo-125M")
self.model_t5 = pipeline("text2text-generation", model="t5-base")
def process_text(self, step, text):
"""
Обрабатывает текст с использованием выбранной модели, разбивая текст на части.
"""
if step == 1:
# Разбиваем текст на части, например, по 500 символов
text_parts = [text[i:i + 500] for i in range(0, len(text), 500)]
gpt_results = []
for part in text_parts:
gpt_result = self.model_gpt(part, max_length=150)
gpt_results.append(gpt_result[0]['generated_text'])
return "\n".join(gpt_results) # Объединяем ответы для всех частей
elif step == 2:
# ... (код обработки с помощью T5)
else:
return "Unknown step"
# Создание интерфейса Gradio
processor = TextProcessor()
def process_step(step, text):
"""
Функция для обработки шага в Gradio.
"""
result = processor.process_text(step, text)
return result
iface = gr.Interface(
fn=process_step,
inputs=[
gr.Radio(choices=[1, 2], label="Шаг"), # Изменили количество вариантов
gr.Textbox(lines=3, label="Текст"),
],
outputs="text",
title="Обработка Текста",
description="Выберите шаг и введите текст.",
)
iface.launch()