File size: 2,008 Bytes
8bd9805
97e9490
37252b1
e2d6490
8bd9805
07fa4cd
c9836bc
 
8bd9805
6484cf9
 
 
c9836bc
e2d6490
498599d
c9836bc
 
 
 
 
 
 
8bd9805
c9836bc
e2d6490
c9836bc
0fd6363
c9836bc
 
 
 
07fa4cd
 
 
 
 
e2d6490
 
 
 
 
07fa4cd
8bd9805
97e9490
07fa4cd
a232fa2
 
07fa4cd
a232fa2
07fa4cd
 
8bd9805
 
 
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
import gradio as gr
import requests
import os
from langcodes import langs

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

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

        payload = {
            'inputs': {'text': f'Переведи пожалуйста правильно, понятно, идеально, на {target_language} язык: "{text}". Пиши ТОЛЬКО перевод, без лишнего текста'},
            'max_tokens': 1000000,
            'model': 'gpt-3.5-turbo'
        }
        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:
            return f"Ошибка при переводе текста. Код ошибки: {response.status_code}"
    except Exception as e:
        return f"Ошибка: {str(e)}"

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

# Получение списка языков из библиотеки langcodes
language_list = [langs.get_name(lang, 'en') for lang in langs.langs]

# Сортировка языков в алфавитном порядке
languages = sorted(language_list)

iface = gr.Interface(
    fn=translate_interface,
    inputs=[
        gr.Textbox(label="Введите текст"),
        gr.Dropdown(languages, label="Выберите язык для перевода")
    ],
    outputs=gr.Textbox(label="Переведенный текст"),
    title="Простой переводчик",
    description="Введите текст и выберите язык для перевода."
)

iface.launch()