Update app.py
Browse files
app.py
CHANGED
@@ -1,20 +1,8 @@
|
|
1 |
import gradio as gr
|
2 |
from transformers import pipeline
|
3 |
-
from huggingface_hub import login
|
4 |
|
5 |
-
#
|
6 |
-
def authenticate(api_key):
|
7 |
-
# Авторизация через API-ключ
|
8 |
-
login(token=api_key)
|
9 |
-
|
10 |
-
# Загружаем модель для анализа текста
|
11 |
-
analyzer = pipeline("text-generation", model="gpt-2")
|
12 |
-
|
13 |
-
# Возвращаем успешное сообщение
|
14 |
-
return "Успешно авторизованы с использованием ключа!"
|
15 |
-
|
16 |
-
|
17 |
-
# Список пунктов
|
18 |
steps = [
|
19 |
"Деконструкция чужих мыслей",
|
20 |
"Работа с парадоксами",
|
@@ -60,28 +48,49 @@ steps = [
|
|
60 |
"Интервью с вещами"
|
61 |
]
|
62 |
|
63 |
-
# Функция
|
64 |
-
def
|
65 |
-
|
66 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
|
68 |
-
|
69 |
-
def process_all_steps(api_key):
|
70 |
-
authenticate(api_key) # Авторизация с API-ключом
|
71 |
|
|
|
|
|
72 |
all_responses = []
|
73 |
for step in steps:
|
74 |
-
|
75 |
-
all_responses.append(f"Шаг: {step}\
|
76 |
return "\n\n".join(all_responses)
|
77 |
|
78 |
# Интерфейс для отображения результата
|
79 |
interface = gr.Interface(
|
80 |
fn=process_all_steps,
|
81 |
-
inputs=gr.Textbox(label="Введите API-ключ Hugging Face"),
|
82 |
outputs="text",
|
83 |
-
title="
|
84 |
-
description="
|
85 |
)
|
86 |
|
87 |
interface.launch() # Запуск интерфейса
|
|
|
1 |
import gradio as gr
|
2 |
from transformers import pipeline
|
3 |
+
from huggingface_hub import login
|
4 |
|
5 |
+
# Список методов, которые будут применяться к введенному тексту
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
steps = [
|
7 |
"Деконструкция чужих мыслей",
|
8 |
"Работа с парадоксами",
|
|
|
48 |
"Интервью с вещами"
|
49 |
]
|
50 |
|
51 |
+
# Функция для авторизации и загрузки моделей
|
52 |
+
def authenticate(api_key):
|
53 |
+
login(token=api_key) # Авторизация через API-ключ
|
54 |
+
# Загрузка различных моделей
|
55 |
+
model_gpt = pipeline("text-generation", model="EleutherAI/gpt-neo-2.7B") # GPT-Neo
|
56 |
+
model_t5 = pipeline("text-to-text-generation", model="t5-base") # T5
|
57 |
+
model_bert = pipeline("fill-mask", model="bert-base-uncased") # BERT, для анализа текста
|
58 |
+
return model_gpt, model_t5, model_bert
|
59 |
+
|
60 |
+
# Функция обработки одного шага с использованием всех моделей
|
61 |
+
def process_step(step, text, api_key):
|
62 |
+
# Получаем все модели после авторизации
|
63 |
+
model_gpt, model_t5, model_bert = authenticate(api_key)
|
64 |
+
|
65 |
+
# Результаты генерации для GPT-neo
|
66 |
+
gpt_response = model_gpt(f"{step}: {text}")
|
67 |
+
gpt_result = gpt_response[0]['generated_text']
|
68 |
+
|
69 |
+
# Результаты генерации для T5
|
70 |
+
t5_response = model_t5(f"{step}: {text}")
|
71 |
+
t5_result = t5_response[0]['generated_text']
|
72 |
+
|
73 |
+
# Результаты для BERT (заполнение маски, использование в контексте анализа)
|
74 |
+
mask_response = model_bert(f"{step}: {text} [MASK]")
|
75 |
+
bert_result = mask_response[0]['sequence']
|
76 |
|
77 |
+
return gpt_result, t5_result, bert_result
|
|
|
|
|
78 |
|
79 |
+
# Функция для обработки всех шагов и сравнения моделей
|
80 |
+
def process_all_steps(text, api_key):
|
81 |
all_responses = []
|
82 |
for step in steps:
|
83 |
+
gpt_result, t5_result, bert_result = process_step(step, text, api_key)
|
84 |
+
all_responses.append(f"Шаг: {step}\nGPT-NEO: {gpt_result}\nT5: {t5_result}\nBERT: {bert_result}")
|
85 |
return "\n\n".join(all_responses)
|
86 |
|
87 |
# Интерфейс для отображения результата
|
88 |
interface = gr.Interface(
|
89 |
fn=process_all_steps,
|
90 |
+
inputs=[gr.Textbox(label="Введите текст для анализа"), gr.Textbox(label="Введите API-ключ Hugging Face")],
|
91 |
outputs="text",
|
92 |
+
title="Сравнение моделей для анализа текста",
|
93 |
+
description="Поочередное применение 50 методов анализа философских и психологических аспектов текста с использованием моделей GPT-NEO, T5 и BERT."
|
94 |
)
|
95 |
|
96 |
interface.launch() # Запуск интерфейса
|