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