Spaces:
Sleeping
Sleeping
import gradio as gr | |
def generate_code(language, task_description): | |
# Простые шаблоны для генерации кода | |
templates = { | |
"Python": { | |
"Hello World": "print('Hello, World!')", | |
"Factorial": "def factorial(n):\n return 1 if n == 0 else n * factorial(n-1)", | |
"Fibonacci": "def fibonacci(n):\n if n <= 1:\n return n\n else:\n return fibonacci(n-1) + fibonacci(n-2)" | |
}, | |
"JavaScript": { | |
"Hello World": "console.log('Hello, World!');", | |
"Factorial": "function factorial(n) {\n return n === 0 ? 1 : n * factorial(n - 1);\n}", | |
"Fibonacci": "function fibonacci(n) {\n if (n <= 1) return n;\n return fibonacci(n - 1) + fibonacci(n - 2);\n}" | |
}, | |
"Java": { | |
"Hello World": "public class Main {\n public static void main(String[] args) {\n System.out.println(\"Hello, World!\");\n }\n}", | |
"Factorial": "public class Main {\n public static int factorial(int n) {\n return n == 0 ? 1 : n * factorial(n - 1);\n }\n}", | |
"Fibonacci": "public class Main {\n public static int fibonacci(int n) {\n if (n <= 1) return n;\n return fibonacci(n - 1) + fibonacci(n - 2);\n }\n}" | |
} | |
} | |
# Поиск подходящего шаблона на основе описания задачи | |
task_description = task_description.lower() | |
for task, code in templates.get(language, {}).items(): | |
if task.lower() in task_description: | |
return code | |
# Если задача не найдена | |
return "Код для данной задачи не найден. Попробуйте описать задачу более четко." | |
# Создаем интерфейс Gradio | |
iface = gr.Interface( | |
fn=generate_code, | |
inputs=[ | |
gr.Dropdown(choices=["Python", "JavaScript", "Java"], label="Выберите язык программирования"), | |
gr.Textbox(label="Опишите задачу", placeholder="Например, 'напиши код для вычисления факториала'") | |
], | |
outputs=gr.Code(label="Сгенерированный код"), | |
title="Генератор кода", | |
description="Выберите язык программирования и опишите задачу для генерации кода." | |
) | |
# Запускаем интерфейс | |
iface.launch() |