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()