File size: 2,535 Bytes
ebe0d49
 
 
 
 
 
 
 
 
 
38f7ef3
ebe0d49
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
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
53
54
55
56
57
58
59
60
61
import streamlit as st
import pandas as pd
import requests
import word2emoji
import os 

# Установка API URL и заголовков
API_URL_gen = "https://api-inference.huggingface.co/models/facebook/blenderbot-400M-distill"
API_URL_tra = "https://api-inference.huggingface.co/models/Helsinki-NLP/opus-mt-en-ru"

headers = {"Authorization": os.getenv("api_token")}

# Функция для генерирования предложения
def generate_example(payload):
	response = requests.post(API_URL_gen, headers=headers, json=payload)
	return response.json()

# Функция для перевода слова
def translate_word(payload):    
	response = requests.post(API_URL_tra, headers=headers, json=payload)
	return response.json()

# Настраеваем заголовок и название страницы
st.set_page_config(layout="wide", page_title="Students' Personal Assistant")
st.markdown(' # :female-student: Персональный помощник для студентов')
st.divider()
st.markdown('## :flower_playing_cards: Карточки для изучения английских слов')

st.sidebar.markdown('# :bookmark_tabs: :bookmark_tabs:  :bookmark_tabs:  :bookmark_tabs: ')
words_from_tarea = st.sidebar.text_area('Напиши список слов на английском', value='cat dog duck')
button_start = st.sidebar.button('Создать карточки')

cards_list = list()
if button_start:
    words_list = words_from_tarea.split()
    st.divider()
   
    
    # Отправляем запросы через API для получения перевода слов и генерирования предложений
    with st.spinner('...'):
        for word in words_list:
            example = generate_example(word)
            translated = translate_word(word)
            cards_list.append([word, translated[0]['translation_text'].lower(), example['generated_text']])
        
        # Преобразуем полученные данные в DataFrame
        cards_df = pd.DataFrame(cards_list, columns=['word', 'translated', 'example'])
    st.sidebar.success('Готово')

    # Выводим карточки 
    for el in cards_list:
        with st.chat_message("assistant"):
            #st.divider()            
            st.markdown(f'# {word2emoji(el[0])}')
            st.markdown(f'#  :red[{el[0]}]')
            st.markdown(f'## :blue[{el[1]}]')
            st.markdown(f'*        {el[2]}')
            st.divider()