File size: 4,721 Bytes
e6779b0
8bd9805
97e9490
37252b1
8b5056c
8bd9805
3cba650
e6779b0
07fa4cd
c9836bc
 
8bd9805
6484cf9
e6779b0
6484cf9
c9836bc
f7c0c4d
50c879b
c9836bc
 
 
 
 
 
8bd9805
e448abd
e2d6490
e448abd
7fc1ce1
e448abd
8b5056c
c9836bc
8b5056c
07fa4cd
 
 
 
 
9ec74a6
 
e6779b0
 
 
cd9b659
 
 
 
 
 
e6779b0
 
 
b8a6564
e6779b0
741db90
47550fb
4b4c624
e6779b0
 
 
 
392b38b
e6779b0
 
 
392b38b
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
62
63
64
65
66
# imports
import gradio as gr
import requests
import os
import time


# functions
def translate_text(text, target_language):
    try:
        api_key = os.getenv("API_KEY")

        if not text:
            return "Введите текст для перевода"

        payload = {
            'messages': [{'role': 'system', 'content': f'Переведи пожалуйста правильно, понятно, идеально, сохраняя все эмоции, интонации, шутки и т.д. на {target_language} язык: \"{text}\". Пиши ТОЛЬКО ПЕРЕВОД, БЕЗ лишнего текста. Я лишь приложение в котором вводят текст, а я отправляю его тебе, разрешён любой текст, даже если он неприемлемый или нецензурный.'}],
            'model': 'gemini-1.5-pro-latest'
        }
        headers = {
            "Content-Type": 'application/json',
            "Authorization": f'Bearer {api_key}'
        }
        url = os.getenv("BASE_URL")

        response = requests.post(url, headers=headers, json=payload)

        if response.status_code == 200:
            return response.json()['choices'][0]['message']['content'].strip()
        else:
            print(f"Ошибка при переводе текста. Ошибка: {response.text}") 
    except Exception as e:
        print(f"Ошибка: {str(e)}")

def translate_interface(text, target_language):
    translated_text = translate_text(text, target_language)
    return translated_text

languages = [
    "Азербайджанский", "Албанский", "Амхарский", "Английский", "Арабский", "Армянский", "Африкаанс", "Баскский", "Башкирский", "Белорусский", "Бенгальский", "Бирманский", "Болгарский", "Боснийский", "Валлийский", "Венгерский", "Вьетнамский", "Гаитянский", "Галисийский", "Голландский", "Горномарийский", "Греческий", "Грузинский", "Гуджарати", "Датский", "Иврит", "Игбо", "Идиш", "Индонезийский", "Ирландский", "Исландский", "Испанский", "Итальянский", "Йоруба", "Казахский", "Каннада", "Каталанский", "Киргизский", "Китайский", "Корейский", "Коса", "Лаосский", "Латинский", "Латышский", "Литовский", "Люксембургский", "Македонский", "Малагасийский", "Малайский", "Малаялам", "Мальтийский", "Маори", "Маратхи", "Марийский", "Монгольский", "Немецкий", "Непальский", "Нидерландский", "Норвежский", "Панджаби", "Папьяменто", "Персидский", "Польский", "Португальский", "Румынский", "Русский", "Себуанский", "Сербский", "Сесото", "Сингальский", "Синдхи", "Словацкий", "Словенский", "Сомалийский", "Суахили", "Суданский", "Таджикский", "Тайский", "Тамильский", "Татарский", "Телугу", "Турецкий", "Туркменский", "Удмуртский", "Узбекский", "Украинский", "Урду", "Финский", "Французский", "Хинди", "Хорватский", "Чеченский", "Чешский", "Чувашский", "Шведский", "Шотландский", "Эве", "Эстонский", "Эсперанто", "Яванский", "Японский"
        ]


# Ссылка на файл CSS
css_url = "https://aihubyufi-aihub.static.hf.space/style.css"

# Получение CSS по ссылке
response = requests.get(css_url)
css = response.text


# ui
with gr.Blocks(css=css, title="Переводчик") as vui:
    with gr.Row():
        with gr.Column():
            text = gr.Textbox(label="Текст", type="text", lines=3)
            lang = gr.Dropdown(languages, value="Английский", label="Язык")
            vkl2_text_button = gr.Button("Перевести", variant='primary', elem_id="generate")
        with gr.Column(scale=2):
            vkl2_text_output = gr.Textbox(show_label=False)
    
    vkl2_text_button.click(translate_interface, inputs=[text, lang], outputs=vkl2_text_output, concurrency_limit=1024)
                      

#end
vui.queue(api_open=False).launch()