SharvNey's picture
Create app.py
984abd6 verified
import gradio as gr
from optimizer import optimize_prompt
def run_optimizer(prompt, reference):
if not prompt.strip():
return "Please enter a prompt.", ""
try:
results = optimize_prompt(prompt, reference)
best = results[0]
best_prompt = best["prompt"]
details = ""
for i, r in enumerate(results, 1):
details += f"\n=== Variant {i} | Score: {r['score']} ===\n"
details += f"PROMPT:\n{r['prompt']}\n\n"
details += f"OUTPUT:\n{r['output']}\n\n"
return best_prompt, details
except Exception as e:
# user-friendly message
msg = "⚠️ Something went wrong while generating results.\n"
msg += "Please try again in a moment."
return msg, msg
with gr.Blocks() as demo:
gr.Markdown("# 🧠 Prompt Optimization Tool")
gr.Markdown("Powered by **Mistral-7B-Instruct** (free, HF-native LLM)")
with gr.Row():
prompt_in = gr.Textbox(label="Enter your prompt", lines=4)
ref_in = gr.Textbox(label="Optional: Ideal answer", lines=4)
optimize_btn = gr.Button("πŸš€ Optimize Prompt")
best_out = gr.Textbox(label="πŸ† Best Optimized Prompt", lines=6)
details_out = gr.Textbox(label="πŸ“Š All Variants", lines=20)
optimize_btn.click(
fn=run_optimizer,
inputs=[prompt_in, ref_in],
outputs=[best_out, details_out]
)
demo.launch()