jeydipak commited on
Commit
bbc9b75
1 Parent(s): 104c2ee

Update pages/task3.py

Browse files
Files changed (1) hide show
  1. pages/task3.py +88 -88
pages/task3.py CHANGED
@@ -1,89 +1,89 @@
1
- import streamlit as st
2
- from transformers import GPT2LMHeadModel, GPT2Tokenizer
3
- import time
4
-
5
- def generate_text(model, tokenizer, prompt, max_length, num_generations, temperature):
6
- generated_texts = []
7
-
8
- for _ in range(num_generations):
9
- input_ids = tokenizer.encode(prompt, return_tensors="pt")
10
- output = model.generate(
11
- input_ids,
12
- max_length=max_length,
13
- temperature=temperature,
14
- num_return_sequences=1
15
- )
16
- generated_text = tokenizer.decode(output[0], skip_special_tokens=True)
17
- generated_texts.append(generated_text)
18
-
19
- return generated_texts
20
-
21
- button_style = """
22
- <style>
23
- .center-align {
24
- display: flex;
25
- justify-content: center;
26
-
27
- </style>
28
- """
29
-
30
- DEVICE = 'cpu'
31
-
32
- # Загрузка пользовательской модели и токенизатора (замените на свои пути и модель)
33
- # model_path = "sberbank-ai/rugpt3small_based_on_gpt2"
34
- # tokenizer_path = "sberbank-ai/rugpt3small_based_on_gpt2"
35
-
36
- # model = GPT2LMHeadModel.from_pretrained(model_path).to(DEVICE)
37
- # tokenizer = GPT2Tokenizer.from_pretrained(tokenizer_path)
38
-
39
- st.markdown("""
40
- <style>
41
- section[data-testid="stSidebar"][aria-expanded="true"]{
42
- display: none;
43
- }
44
- </style>
45
- """, unsafe_allow_html=True)
46
-
47
- st.write("## Text generator")
48
- st.page_link("main.py", label="Home", icon='🏠')
49
- st.markdown(
50
- """
51
- This streamlit-app can generate text using your prompt
52
- """
53
- )
54
- # Ввод пользовательского prompt
55
- prompt = st.text_area("Enter your prompt:")
56
-
57
- # Параметры генерации
58
- max_length = st.slider("Max length of generated text:", min_value=10, max_value=500, value=100, step=10)
59
- num_generations = st.slider("Number of generations:", min_value=1, max_value=10, value=3, step=1)
60
- temperature = st.slider("Temperature:", min_value=0.1, max_value=2.0, value=1.0, step=0.1)
61
- try:
62
- if st.button("Generate text"):
63
- start_time = time.time()
64
- generated_texts = generate_text(model, tokenizer, prompt, max_length, num_generations, temperature)
65
- end_time = time.time()
66
-
67
- st.subheader("Сгенерированный текст:")
68
- for i, text in enumerate(generated_texts, start=1):
69
- st.write(f"Генерация {i}:\n{text}")
70
-
71
- generation_time = end_time - start_time
72
- st.write(f"\nВремя генерации: {generation_time:.2f} секунд")
73
-
74
- st.markdown(button_style, unsafe_allow_html=True) # Применяем стиль к кнопке
75
- st.markdown(
76
- """
77
- <style>
78
- div[data-baseweb="textarea"] {
79
- border: 2px solid #3498db; /* Цвет границы */
80
- border-radius: 5px; /* Закругленные углы */
81
- background-color: #ecf0f1; /* Цвет фона */
82
- padding: 10px; /* Поля вокруг текстового поля */
83
- }
84
- </style>
85
- """,
86
- unsafe_allow_html=True,
87
- )
88
- except:
89
  st.write('Модель в разработке ( ノ ゚ー゚)ノ( ノ ゚ー゚)ノ( ノ ゚ー゚)ノ( ノ ゚ー゚)ノ')
 
1
+ import streamlit as st
2
+ from transformers import GPT2LMHeadModel, GPT2Tokenizer
3
+ import time
4
+
5
+ def generate_text(model, tokenizer, prompt, max_length, num_generations, temperature):
6
+ generated_texts = []
7
+
8
+ for _ in range(num_generations):
9
+ input_ids = tokenizer.encode(prompt, return_tensors="pt")
10
+ output = model.generate(
11
+ input_ids,
12
+ max_length=max_length,
13
+ temperature=temperature,
14
+ num_return_sequences=1
15
+ )
16
+ generated_text = tokenizer.decode(output[0], skip_special_tokens=True)
17
+ generated_texts.append(generated_text)
18
+
19
+ return generated_texts
20
+
21
+ button_style = """
22
+ <style>
23
+ .center-align {
24
+ display: flex;
25
+ justify-content: center;
26
+
27
+ </style>
28
+ """
29
+
30
+ DEVICE = 'cpu'
31
+
32
+ # Загрузка пользовательской модели и токенизатора (замените на свои пути и модель)
33
+ # model_path = "sberbank-ai/rugpt3small_based_on_gpt2"
34
+ # tokenizer_path = "sberbank-ai/rugpt3small_based_on_gpt2"
35
+
36
+ # model = GPT2LMHeadModel.from_pretrained(model_path).to(DEVICE)
37
+ # tokenizer = GPT2Tokenizer.from_pretrained(tokenizer_path)
38
+
39
+ st.markdown("""
40
+ <style>
41
+ section[data-testid="stSidebar"][aria-expanded="true"]{
42
+ display: none;
43
+ }
44
+ </style>
45
+ """, unsafe_allow_html=True)
46
+
47
+ st.write("## Text generator")
48
+ st.page_link("app.py", label="Home", icon='🏠')
49
+ st.markdown(
50
+ """
51
+ This streamlit-app can generate text using your prompt
52
+ """
53
+ )
54
+ # Ввод пользовательского prompt
55
+ prompt = st.text_area("Enter your prompt:")
56
+
57
+ # Параметры генерации
58
+ max_length = st.slider("Max length of generated text:", min_value=10, max_value=500, value=100, step=10)
59
+ num_generations = st.slider("Number of generations:", min_value=1, max_value=10, value=3, step=1)
60
+ temperature = st.slider("Temperature:", min_value=0.1, max_value=2.0, value=1.0, step=0.1)
61
+ try:
62
+ if st.button("Generate text"):
63
+ start_time = time.time()
64
+ generated_texts = generate_text(model, tokenizer, prompt, max_length, num_generations, temperature)
65
+ end_time = time.time()
66
+
67
+ st.subheader("Сгенерированный текст:")
68
+ for i, text in enumerate(generated_texts, start=1):
69
+ st.write(f"Генерация {i}:\n{text}")
70
+
71
+ generation_time = end_time - start_time
72
+ st.write(f"\nВремя генерации: {generation_time:.2f} секунд")
73
+
74
+ st.markdown(button_style, unsafe_allow_html=True) # Применяем стиль к кнопке
75
+ st.markdown(
76
+ """
77
+ <style>
78
+ div[data-baseweb="textarea"] {
79
+ border: 2px solid #3498db; /* Цвет границы */
80
+ border-radius: 5px; /* Закругленные углы */
81
+ background-color: #ecf0f1; /* Цвет фона */
82
+ padding: 10px; /* Поля вокруг текстового поля */
83
+ }
84
+ </style>
85
+ """,
86
+ unsafe_allow_html=True,
87
+ )
88
+ except:
89
  st.write('Модель в разработке ( ノ ゚ー゚)ノ( ノ ゚ー゚)ノ( ノ ゚ー゚)ノ( ノ ゚ー゚)ノ')