File size: 1,892 Bytes
1ea64bd
7eac112
1ea64bd
3053a3f
a418b39
3053a3f
e50a355
 
 
0643dae
 
1ea64bd
 
4cebd63
9d6d875
1ea64bd
d306847
 
a418b39
ae9de2e
4cebd63
a418b39
b29330a
a418b39
4cebd63
ae9de2e
1ea64bd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import streamlit as st
from Generate_text import generate, load_tokenizer_and_model

device = "cpu"
tok, model = load_tokenizer_and_model("models/essays", device)

st.markdown("## Генератор сочинений")
st.markdown("##### Это приложение представляет из себя примитивный генератор сочинений. \\\
В качестве основной модели был взят трансформер RuGPT от Сбера https://huggingface.co/ai-forever/rugpt3small_based_on_gpt2. После этого на том же HF был скачан датасет с сочинениями на русском языке, который использовался для finetuning'а (см. ReadMe)")
with st.columns(3)[1]:
    st.markdown("<img width=200px src='https://ps-static.cdn-tinkoff.ru/static/ai-pushkin/portrait-2021-12-10-12-24-56.png'>", unsafe_allow_html=True)
# ^-- можно показывать пользователю текст, картинки, ограниченное подмножество html - всё как в jupyter

max_len = st.text_area("Максимальная длина")
text = st.text_area("Тема сочинения")
# ^-- показать текстовое поле. В поле text лежит строка, которая находится там в данный момент
thesis = "<s>Тема:" + "«" + text + "»." + "\nСочинение: " 

if max_len != "":
    begin_index = len(thesis)
    max_len = int(max_len)
    generated = generate(model, tok, thesis, device, max_length=max_len, num_beams=10)
    end_index = (generated[0]).find("</s>")
    
    st.markdown(f"Сочинение:\n")
    st.markdown(generated[0][begin_index:end_index])
# выводим результаты модели в текстовое поле, на потеху пользователю