Spaces:
Sleeping
Sleeping
import gradio as gr | |
from transformers import ( | |
AutoModelForSeq2SeqLM, | |
AutoTokenizer, | |
AutoConfig, | |
pipeline, | |
) | |
import torch | |
from translator import translate_text # импортируем функцию переводчика | |
model_name = "sagard21/python-code-explainer" | |
tokenizer = AutoTokenizer.from_pretrained(model_name, padding=True) | |
model = AutoModelForSeq2SeqLM.from_pretrained(model_name) | |
config = AutoConfig.from_pretrained(model_name) | |
if torch.cuda.is_available(): | |
model = model.to('cuda') # запускаем модель на GPU, если доступно | |
model.eval() | |
pipe = pipeline("summarization", model=model_name, config=config, tokenizer=tokenizer) | |
def generate_text(text_prompt): | |
response = pipe(text_prompt) | |
english_explanation = response[0]['summary_text'] | |
russian_explanation = translate_text(english_explanation) # переводим объяснение кода с англ на рус язык | |
return english_explanation, russian_explanation | |
textbox1 = gr.Textbox(value=""" | |
class Solution(object): | |
def isValid(self, s): | |
stack = [] | |
mapping = {")": "(", "}": "{", "]": "["} | |
for char in s: | |
if char in mapping: | |
top_element = stack.pop() if stack else '#' | |
if mapping[char] != top_element: | |
return False | |
else: | |
stack.append(char) | |
return not stack""") | |
textbox2 = gr.Textbox() | |
textbox3 = gr.Textbox() | |
if __name__ == "__main__": | |
with gr.Blocks() as demo: | |
gr.Interface(fn=generate_text, inputs=textbox1, outputs=[textbox2, textbox3]) | |
demo.launch() # запускаем Gradio-интерфейс | |