Spaces:
Sleeping
Sleeping
| 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() | |