--- title: URFU PE emoji: πŸ’» colorFrom: yellow colorTo: blue sdk: streamlit sdk_version: 1.28.2 app_file: run.py pinned: false --- [![Tests](https://github.com/kavlab/urfu_iml_2023_1_3_hw2/actions/workflows/python-app.yml/badge.svg)](https://github.com/kavlab/urfu_iml_2023_1_3_hw2/actions/workflows/python-app.yml) # ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ инТСнСрия. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ задания β„–2, β„–3, β„–4 ΠΈ β„–5 ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ с использованиСм Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° [Streamlit](https://streamlit.io/). Бостоит ΠΈΠ· Π΄Π²ΡƒΡ… страниц ΠΈ Π“Π»Π°Π²Π½ΠΎΠΉ страницы: 1. Главная страница - содСрТит описаниС ΠΈΠ· README 2. Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π°ΡƒΠ΄ΠΈΠΎ - позволяСт ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π°ΡƒΠ΄ΠΈΠΎ ΠΏΠΎ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡƒ тСксту Π½Π° английском языкС. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ осущСствляСт ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ с русского языка Π½Π° английский (ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ тСкста Π½Π° русском языкС). Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ 3 ΠΌΠΎΠ΄Π΅Π»ΠΈ: - ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ языка тСкста - ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ тСкста с языка Ru Π½Π° En - ΠžΠ·Π²ΡƒΡ‡ΠΈΠ²Π°Π½ΠΈΠ΅ тСкста Π½Π° английском языкС 3. ОписаниС изобраТСния - позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ описаниС изобраТСния Π½Π° русском языкС. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ 1 модСль: - ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΈ описаниС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ API Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ с использованиСм Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° [FastAPI](https://fastapi.tiangolo.com/). API доступныС для использования: 1. ```/langdetector/detect``` - ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ языка тСкста 2. ```/translator/translate``` - ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ тСкста с языка Ru Π½Π° En 3. ```/text-to-speech/convert``` - ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ тСкста Π½Π° английском языкС Π² Ρ€Π΅Ρ‡ΡŒ 4. ```/get_description_image/predict``` - ОписаниС Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ изобраТСния ## Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ - ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ языка тСкста - [papluca/xlm-roberta-base-language-detection](https://huggingface.co/papluca/xlm-roberta-base-language-detection) - ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ тСкста с языка Ru Π½Π° En - [Helsinki-NLP/opus-mt-ru-en](https://huggingface.co/Helsinki-NLP/opus-mt-ru-en) - ΠžΠ·Π²ΡƒΡ‡ΠΈΠ²Π°Π½ΠΈΠ΅ тСкста Π½Π° английском языкС - [microsoft/speecht5_tts](https://huggingface.co/microsoft/speecht5_tts) - ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΈ описаниС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. МодСль описания изобраТСния [Salesforce/blip-image-captioning-large](https://huggingface.co/Salesforce/blip-image-captioning-large) ## Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Web-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Запуск осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· ΠΌΠΎΠ΄ΡƒΠ»ΡŒ streamlit: ``` streamlit run run.py ``` ## Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ API-сСрвСр ```uvicorn api:app``` Π»ΠΈΠ±ΠΎ ```python api.py``` ## Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Web-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ПослС запуска ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ открываСтся Π½Π° Π“Π»Π°Π²Π½ΠΎΠΉ страницС. Π’Ρ‹Π±ΠΎΡ€ Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния доступСн слСва Π² мСню ### Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π°ΡƒΠ΄ΠΈΠΎ НСобходимо ввСсти тСкст Π² тСкстовоС ΠΏΠΎΠ»Π΅ ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ "Π“Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ!!!". Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ появится Π°ΡƒΠ΄ΠΈΠΎ запись Π½Π° английском языкС с описаниСм Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ тСкста. ![Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ "Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π°ΡƒΠ΄ΠΈΠΎ / ВСкст"](https://raw.githubusercontent.com/kavlab/urfu_iml_2023_1_3_hw2/main/mulyavin_aa/screens/audio_gen_image.png) ![Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ "Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π°ΡƒΠ΄ΠΈΠΎ / Аудио"](https://raw.githubusercontent.com/kavlab/urfu_iml_2023_1_3_hw2/main/kuznetsov_av/text_to_speech_image.png) ### ОписаниС изобраТСния НСобходимо Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ "ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ описаниС изобраТСния". Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ появится тСкстовоС описаниС изобраТСния Π½Π° русском языкС. ![Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ "ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ описания ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ"](https://raw.githubusercontent.com/kavlab/urfu_iml_2023_1_3_hw2/main/zvereva_ev/image_result.jpg) ### Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ API ОписаниС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² API гСнСрируСтся Swagger ΠΈ доступно ΠΏΠΎ адрСсу ``` /docs ``` #### ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π·ΠΎΠ²Π° сСрвиса ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ языка тСкста Π’Ρ‹Π·Π²Π°Ρ‚ΡŒ url сСрвиса ```/langdetector/detect``` ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ POST ![img.png](https://raw.githubusercontent.com/kavlab/urfu_iml_2023_1_3_hw2/main/mulyavin_aa/screens/PostmanLangDetect.png) ΠŸΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹: ``` { "text": "Π”ΠΎΠ±Ρ€ΠΎΠ³ΠΎ дСня всСм ΠΊΠΎΡ‚Π°ΠΌ!" } ``` Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния: ``` { "langs": [ { "label": "ru", "score": 0.9351206421852112 } ] } ``` #### ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π·ΠΎΠ²Π° сСрвиса ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ тСкста с языка Ru Π½Π° En Π’Ρ‹Π·Π²Π°Ρ‚ΡŒ url сСрвиса ```/translator/translate``` ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ POST ![img.png](https://raw.githubusercontent.com/kavlab/urfu_iml_2023_1_3_hw2/main/mulyavin_aa/screens/PostmanTranslate.png) ΠŸΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹: ``` { "text": "Π”ΠΎΠ±Ρ€ΠΎΠ³ΠΎ дСня всСм ΠΊΠΎΡ‚Π°ΠΌ!" } ``` Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния: ``` { "text": "Good day to all cats!" } ``` #### ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π·ΠΎΠ²Π° сСрвиса ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ тСкста Π² Ρ€Π΅Ρ‡ΡŒ Π’Ρ‹Π·Π²Π°Ρ‚ΡŒ url сСрвиса ```/text-to-speech/convert/``` ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ POST ![img.png](https://raw.githubusercontent.com/kavlab/urfu_iml_2023_1_3_hw2/main/kuznetsov_av/text_to_speech_image_api.png) ΠŸΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹: ``` { "text": "FastAPI is a modern, fast (high-performance), web framework for building APIs with Python 3.8+ based on standard Python type hints." } ``` Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² audio сокращСно): ``` { "audio": "4HXHYOWAMX2TVFFRYI5NQYFYHKESNWR2YAPHKOWFOCYTULNSF45YUZMDHJEKRJB2QNGMMOX3V6QDV6 ... F5Z5S37LOH7G2ZLSRYSKC4Z47GBXG56ZQ5YY6BEENY=", "sampling_rate": 16000 } ``` #### ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π·ΠΎΠ²Π° сСрвиса ОписаниС Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ изобраТСния Π’Ρ‹Π·Π²Π°Ρ‚ΡŒ url сСрвиса ```/get_description_image/predict/``` ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ POST ![img.png](https://raw.githubusercontent.com/kavlab/urfu_iml_2023_1_3_hw2/main/zvereva_ev/screenshot_api_description_image.jpg) ΠŸΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹: ``` { "url": "https://fikiwiki.com/uploads/posts/2022-02/1645000127_53-fikiwiki-com-p-kartinki-krasivie-babochki-narisovannie-55.png" } ``` ВСстируСт GitHub Actions