Coder / app.py
Doubleupai's picture
Update app.py
2085fa0 verified
raw
history blame
2.51 kB
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()