mipatov commited on
Commit
1c98656
·
1 Parent(s): 5364417
Files changed (1) hide show
  1. app.py +20 -23
app.py CHANGED
@@ -1,7 +1,7 @@
1
  import transformers
2
  import torch
3
  import tokenizers
4
- import streamlit as st
5
  import re
6
 
7
  from PIL import Image
@@ -20,7 +20,7 @@ def get_model_t5(model_name,tokenizer_name):
20
  return model, tokenizer
21
 
22
 
23
- def predict_gpt(text, model, tokenizer, temperature):
24
  input_ids = tokenizer.encode(text, return_tensors="pt")
25
  with torch.no_grad():
26
  out = model.generate(input_ids,
@@ -40,7 +40,7 @@ def predict_gpt(text, model, tokenizer, temperature):
40
  generated_text = list(map(decode, out['sequences'])).split('Описание :')[1]
41
  return generated_text
42
 
43
- def predict_t5(text, model, tokenizer, temperature):
44
  input_ids = tokenizer.encode(text, return_tensors="pt")
45
  with torch.no_grad():
46
  out = model.generate(input_ids,
@@ -59,30 +59,27 @@ def predict_t5(text, model, tokenizer, temperature):
59
  generated_text = list(map(decode, out['sequences']))[0]
60
  return generated_text
61
 
 
 
 
 
 
 
 
 
62
  gpt_model, gpt_tokenizer = get_model_gpt('mipatov/rugpt3_nb_descr', 'mipatov/rugpt3_nb_descr')
63
  t5_model, t5_tokenizer = get_model_t5('mipatov/rut5_nb_descr', 'mipatov/rut5_nb_descr')
64
 
65
 
66
- option = st.selectbox('Выберите модель', ('GPT', 'T5'))
67
- temperature = st.slider(label='Температура', min_value=0.1, max_value=5.0, value=1.0,step = 0.1)
68
-
69
- # st.markdown("\n")
70
  example = ' Название : Super_NB 2001 Gaming;\n Диагональ экрана : 21 " ;\n Разрешение экрана : 1337x228 ;\n Поверхность экрана : матовая ;\n Тип матрицы : nfc ;\n Процессор : CMD processor 7 ядер 16.16 ГГц (46.0 ГГц, в режиме Turbo) ;\n Оперативная память : 28 Гб DDR5 ;\n Тип видеокарты : интегрированный ;\n Видеокарта : qwerty-grafics ;\n SSD : 720 Гб ;\n Wi-Fi : ДА, 802.11 a/b/g/n/ac ;\n Bluetooth : ДА, v5.0 ;\n Кабельная сеть : 10/100/1000 (Gigabit Ethernet) Мбит/с ;\n USB 2.0 : 13 ;\n USB 3.0 : 22 ;\n HDMI : 11 ;\n Операционная система : CMD-shell ;\n Веб-камера : встроенная ;\n Микрофон : есть ;\n Разъем наушники/микрофон : комбинированный разъем ;\n Акустическая система : стереодинамики ;\n Цвет клавиатуры : черный ;\n Цифровой блок клавиатуры : есть ;\n Подсветка клавиш клавиатуры : есть ;\n Тип батареи : Al-Ion ;\n Количество ячеек батареи : 36 cell ;\n Энергоемкость батареи : 176 Wh ;\n Цвет : черный ;\n Размеры : 1.23 х 456 х 78.9 мм ;\n Вес : 19 кг ;\n Гарантия : 322 мес. ;\n Материал корпуса : пластик ;\n Время работы от батареи : 82ч ;\n Кард-ридер : есть WA SD ;'
 
 
 
 
 
 
 
 
71
 
72
- text = st.text_area(label='Характеристики ноутбука', value=example, height=200).replace('\n','')
73
- button = st.button('Старт')
74
 
75
- if button:
76
- try:
77
- with st.spinner("Пишем описание..."):
78
- if option == 'GPT':
79
- result = predict_gpt(text, gpt_model, gpt_tokenizer, temperature=temperature)
80
- elif option == 'T5':
81
- result = predict_t5(text, t5_model, t5_tokenizer, temperature=temperature)
82
- else:
83
- st.error('Error in selectbox')
84
-
85
- st.text_area(label='', value=result, height=1000)
86
-
87
- except Exception:
88
- st.error("Ooooops, something went wrong. Please try again and report to me, tg: @mipatov")
 
1
  import transformers
2
  import torch
3
  import tokenizers
4
+ import gradio as gr
5
  import re
6
 
7
  from PIL import Image
 
20
  return model, tokenizer
21
 
22
 
23
+ def predict_gpt(text, model, tokenizer, temperature=1.0):
24
  input_ids = tokenizer.encode(text, return_tensors="pt")
25
  with torch.no_grad():
26
  out = model.generate(input_ids,
 
40
  generated_text = list(map(decode, out['sequences'])).split('Описание :')[1]
41
  return generated_text
42
 
43
+ def predict_t5(text, model, tokenizer, temperature=1.2):
44
  input_ids = tokenizer.encode(text, return_tensors="pt")
45
  with torch.no_grad():
46
  out = model.generate(input_ids,
 
59
  generated_text = list(map(decode, out['sequences']))[0]
60
  return generated_text
61
 
62
+ def generate(model,text):
63
+ if model == 'GPT':
64
+ result = predict_gpt(text, gpt_model, gpt_tokenizer)
65
+ elif model == 'T5':
66
+ result = predict_t5(text, t5_model, t5_tokenizer)
67
+ return result
68
+
69
+
70
  gpt_model, gpt_tokenizer = get_model_gpt('mipatov/rugpt3_nb_descr', 'mipatov/rugpt3_nb_descr')
71
  t5_model, t5_tokenizer = get_model_t5('mipatov/rut5_nb_descr', 'mipatov/rut5_nb_descr')
72
 
73
 
 
 
 
 
74
  example = ' Название : Super_NB 2001 Gaming;\n Диагональ экрана : 21 " ;\n Разрешение экрана : 1337x228 ;\n Поверхность экрана : матовая ;\n Тип матрицы : nfc ;\n Процессор : CMD processor 7 ядер 16.16 ГГц (46.0 ГГц, в режиме Turbo) ;\n Оперативная память : 28 Гб DDR5 ;\n Тип видеокарты : интегрированный ;\n Видеокарта : qwerty-grafics ;\n SSD : 720 Гб ;\n Wi-Fi : ДА, 802.11 a/b/g/n/ac ;\n Bluetooth : ДА, v5.0 ;\n Кабельная сеть : 10/100/1000 (Gigabit Ethernet) Мбит/с ;\n USB 2.0 : 13 ;\n USB 3.0 : 22 ;\n HDMI : 11 ;\n Операционная система : CMD-shell ;\n Веб-камера : встроенная ;\n Микрофон : есть ;\n Разъем наушники/микрофон : комбинированный разъем ;\n Акустическая система : стереодинамики ;\n Цвет клавиатуры : черный ;\n Цифровой блок клавиатуры : есть ;\n Подсветка клавиш клавиатуры : есть ;\n Тип батареи : Al-Ion ;\n Количество ячеек батареи : 36 cell ;\n Энергоемкость батареи : 176 Wh ;\n Цвет : черный ;\n Размеры : 1.23 х 456 х 78.9 мм ;\n Вес : 19 кг ;\n Гарантия : 322 мес. ;\n Материал корпуса : пластик ;\n Время работы от батареи : 82ч ;\n Кард-ридер : есть WA SD ;'
75
+ demo = gr.Interface(
76
+ fn=generate,
77
+ inputs=[
78
+ gr.components.Dropdown(label="Модель", choices=('GPT', 'T5')),
79
+ gr.components.Textbox(label="Характеристики ноутбука",value = example,lines = example.count('\n')),
80
+ ],
81
+ outputs=["text"],
82
+ )
83
 
84
+ demo.launch()
 
85