prompt-roulette / app.py
n8cha's picture
testing with OpenAI
c9a49fb
raw
history blame
2.69 kB
import gradio as gr
import os
from openai import OpenAI
css = """
.gradio-container {
max-width: min(90vw, 800px) !important;
margin: 0 auto !important;
display: flex !important;
}
@keyframes rainbow {
0% { background: hsl(0, 60%, 70%); }
16% { background: hsl(60, 60%, 70%); }
33% { background: hsl(120, 60%, 70%); }
50% { background: hsl(180, 60%, 70%); }
66% { background: hsl(240, 60%, 70%); }
83% { background: hsl(300, 60%, 70%); }
100% { background: hsl(360, 60%, 70%); }
}
#rainbow-btn {
text-shadow: 1px 1px 2px black !important;
}
#rainbow-btn:hover {
animation: rainbow 3s linear infinite !important;
}
h1 {
background: linear-gradient(45deg, #4169e1, #87ceeb, #4169e1) !important;
-webkit-background-clip: text !important;
-webkit-text-fill-color: transparent !important;
background-clip: text !important;
text-shadow: 2px 2px 4px rgba(0,0,0,0.3) !important;
font-size: 4.5em !important;
font-weight: 700 !important;
font-family: "Impact", "Arial Black", sans-serif !important;
text-align: center !important;
letter-spacing: 2px !important;
}
"""
def generate_prompt():
try:
# Read the system prompt from file
with open("system_prompt.md", "r") as f:
system_prompt = f.read()
# Initialize OpenAI client
client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))
# Make API call
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": "Generate a new system prompt."}
],
max_tokens=500,
temperature=0.9
)
return response.choices[0].message.content
except Exception:
return f"Could not generate a prompt. No fish today."
with gr.Blocks(
title="Prompt Roulette",
css=css
) as demo:
gr.Markdown("# PROMPT ROULETTE")
gr.Markdown(
"**Tired of talking to the same boring AI every day?**\n\n"
"Tired of friendly exclamation points (!), πŸ‘‹ emojis, and bullet point lists?\n\n"
)
gr.Markdown(
"You need a new system prompt! Click the button below to discover a new side of your favorite AI assistant."
)
generate_btn = gr.Button("SPIN", variant="primary", elem_id="rainbow-btn")
output_text = gr.Textbox(
label="Your New Prompt",
lines=5,
max_lines=10,
interactive=False,
show_copy_button=True
)
generate_btn.click(
fn=generate_prompt,
outputs=[output_text]
)
demo.launch()