Spaces:
Running
Running
File size: 3,123 Bytes
d43122f |
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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
import gradio as gr
from transformers import pipeline
# Load a pre-trained code generation model (replace with your actual model)
code_generator = pipeline("text-generation", model="gpt-3.5-turbo") # Example model
# Function to generate code
def generate_code(prompt, file_type):
if file_type in ["Gradio", "Vercel", "Streamlit"]:
# Handle platform-specific code generation
prompt_with_file_type = f"Write a configuration or setup code for {file_type} to: {prompt}"
else:
# Handle programming language code generation
prompt_with_file_type = f"Write a {file_type} code for: {prompt}"
# Generate code using the AI model
generated_code = code_generator(prompt_with_file_type, max_length=200, num_return_sequences=1)
return generated_code[0]['generated_text']
# Function to update code
def update_code(existing_code, update_prompt):
# Combine the existing code and the update prompt
prompt_with_update = f"Rewrite the following code to: {update_prompt}\n\nExisting Code:\n{existing_code}"
# Generate updated code using the AI model
updated_code = code_generator(prompt_with_update, max_length=200, num_return_sequences=1)
return updated_code[0]['generated_text']
# Examples for the interface
examples = [
["Write a function to calculate factorial", "Python"],
["Create a simple interface for a calculator", "Gradio"],
["Deploy a Next.js app", "Vercel"],
["Create a data visualization app", "Streamlit"],
["Write a program to reverse a string", "JavaScript"],
["Create a responsive navbar", "HTML"],
]
# Gradio interface
with gr.Blocks(theme='Nymbo/Nymbo_Theme') as demo:
gr.Markdown("# AI Code Generator with Update Feature")
gr.Markdown("Enter a prompt and select the file type or platform to generate code. You can also update the generated code with a new prompt.")
with gr.Row():
input_prompt = gr.Textbox(label="Input Prompt", placeholder="e.g., Write a function to calculate factorial...")
file_type = gr.Dropdown(
label="File Type / Platform",
choices=["Python", "JavaScript", "HTML", "CSS", "Java", "C++", "Gradio", "Vercel", "Streamlit"],
value="Python"
)
output_code = gr.Textbox(label="Generated Code", lines=10, interactive=False)
generate_button = gr.Button("Generate Code")
generate_button.click(fn=generate_code, inputs=[input_prompt, file_type], outputs=output_code)
# Update Code Section
with gr.Row():
update_prompt = gr.Textbox(label="Update Prompt", placeholder="e.g., Add error handling to the code...")
update_button = gr.Button("Update Code")
update_button.click(fn=update_code, inputs=[output_code, update_prompt], outputs=output_code)
# Add examples
gr.Examples(
examples=examples,
inputs=[input_prompt, file_type],
outputs=output_code,
fn=generate_code,
cache_examples=True, # Cache results for faster loading
label="Click on an example to get started!"
)
# Launch the interface
demo.launch() |