File size: 2,513 Bytes
5784f1c
 
2085fa0
5784f1c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2085fa0
 
 
 
 
 
 
 
5784f1c
 
 
 
 
 
2085fa0
5784f1c
 
 
2085fa0
5784f1c
 
 
 
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
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()