boompack commited on
Commit
90b4696
1 Parent(s): b542fb2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +52 -88
app.py CHANGED
@@ -1,96 +1,60 @@
1
- import gradio as gr
2
  from transformers import pipeline
3
- from huggingface_hub import login
4
-
5
- # Список методов, которые будут применяться к введенному тексту
6
- steps = [
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
- "'Переход через время'",
45
- "Процесс 'расширения горизонтов'",
46
- "Техника взрывной генерации идей",
47
- "Техника обратного создания",
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() # Запуск интерфейса
 
 
 
 
 
 
1
  from transformers import pipeline
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
  # Функция для авторизации и загрузки моделей
4
  def authenticate(api_key):
5
+ # Здесь предполагается, что api_key используется для каких-то целей авторизации, если нужно
6
+ # Например, вы можете проверить токен перед загрузкой моделей.
7
+ # Но в данном примере токен не используется.
8
+
9
+ # Загрузка модели GPT-Neo для генерации текста
10
+ model_gpt = pipeline("text-generation", model="EleutherAI/gpt-neo-125M")
11
+
12
+ # Загрузка модели T5 для задач text-to-text (перевод, резюмирование и т.д.)
13
+ model_t5 = pipeline("text2text-generation", model="t5-base")
14
+
15
+ # Загрузка модели BERT для задачи заполнения пропусков
16
+ model_bert = pipeline("fill-mask", model="bert-base-uncased")
17
+
18
  return model_gpt, model_t5, model_bert
19
 
20
+ # Функция для обработки текста с использованием всех трех моделей
21
  def process_step(step, text, api_key):
22
+ # Авторизация и загрузка моделей
23
  model_gpt, model_t5, model_bert = authenticate(api_key)
24
+
25
+ # Применение различных моделей по очереди в зависимости от шага
26
+ if step == 1:
27
+ # Пример генерации текста с помощью GPT-Neo
28
+ gpt_result = model_gpt(text, max_length=100)
29
+ return gpt_result
30
+ elif step == 2:
31
+ # Пример генерации текста с помощью T5 (например, для резюмирования)
32
+ t5_result = model_t5(text)
33
+ return t5_result
34
+ elif step == 3:
35
+ # Пример заполнения пропусков с помощью BERT
36
+ bert_result = model_bert(text)
37
+ return bert_result
38
+ else:
39
+ return "Unknown step"
40
+
41
+ # Пример использования
42
+ if __name__ == "__main__":
43
+ api_key = "your_api_key_here" # Здесь укажите свой API-ключ, если необходимо
44
+
45
+ text_input = "Your text input here." # Ваш текст для анализа
46
+
47
+ # Пример: шаг 1 — использование GPT-Neo
48
+ step = 1
49
+ result = process_step(step, text_input, api_key)
50
+ print(f"Result from step {step}: {result}")
51
+
52
+ # Пример: шаг 2 — использование T5
53
+ step = 2
54
+ result = process_step(step, text_input, api_key)
55
+ print(f"Result from step {step}: {result}")
56
+
57
+ # Пример: шаг 3 — использование BERT
58
+ step = 3
59
+ result = process_step(step, text_input, api_key)
60
+ print(f"Result from step {step}: {result}")