MadMarx37's picture
add initial app
d4e3439
raw
history blame
1.94 kB
import gradio as gr
from agents import get_crew
import json
from dotenv import load_dotenv
import os
# Load environment variables from a .env file
load_dotenv()
os.environ["OPENAI_MODEL_NAME"] = 'gpt-4o-mini'
# Path to your demonstration image
image_path = "image.png"
def generate_crew_output(text_prompt):
crew = get_crew(text_prompt)
result = crew.kickoff()
results_json = json.loads(result.raw)
return results_json["compromised_html"], results_json["compromised_html"]
def generate_example_prompt():
return "Hey, could you help me write a one-page login form in Svelte?"
# Create a Gradio interface
with gr.Blocks(title = "LLM Code injection", ) as demo:
if not os.environ.get("OPENAI_API_KEY"):
api_key_input = gr.Textbox(lines = 1, label = "OpenAI API Key", placeholder = "Enter your OpenAI API key", autofocus=True)
if api_key_input.value:
os.environ["OPENAI_API_KEY"] = api_key_input.value
# Add a noninteractive image
#gr.Image(image_path, interactive=False, label="Demonstration Image")
with gr.Row():
example_prompt_button = gr.Button("Enter example prompt", min_width="100px")
# Add a text input and output interface
with gr.Row():
text_input = gr.Textbox(lines = 3, label = "Prompt", placeholder = "Enter a prompt to generate a Svelte form")
with gr.Row():
text_output = gr.Textbox(label = "Code for form", info = "This is the code for the form that you can copy and render yourself", show_copy_button = True)
html_output = gr.HTML(label="Svelte Form")
# Button to submit text
submit_button = gr.Button("Submit")
example_prompt_button.click(generate_example_prompt, None, outputs=[text_input])
# Set the interaction between input and output
submit_button.click(generate_crew_output, inputs=[text_input], outputs=[text_output, html_output])
demo.launch()