import streamlit as st import google.generativeai as genai # Streamlit app layout st.title('PromptLab') # Create two columns for the Shinobi and Raikage buttons col1, col2 = st.columns(2) mode = st.radio("Choose a mode:", ["Shinobi", "Raikage"], horizontal=True) # Retrieve the API key from Streamlit secrets GOOGLE_API_KEY = st.secrets["GEMINI_API_KEY"] # Configure the Google Generative AI API with your API key genai.configure(api_key=GOOGLE_API_KEY) # Input field for the blog topic topic = st.text_area('Enter your prompt:') # Display selected mode st.write(f"You selected: {mode}") # Shinobi and Raikage templates SHINOBI_TEMPLATE = """ You are an expert in [TOPIC]. Your task is to provide a structured, comprehensive, and easy-to-understand response to the user’s query. Include the following sections: 1. **Introduction**: Define the topic and its significance. 2. **Key Concepts**: Explain core ideas, using simple language and real-world examples. 3. **Applications/Use Cases**: Highlight practical implementations. 4. **Best Practices/Challenges**: Address common pitfalls and solutions. 5. **Exercises/Next Steps** (if applicable): Provide actionable tasks for learning. Format your response with bold section headers, numbered lists for multi-part answers, and concise explanations. Avoid jargon unless necessary, and define technical terms. """ RAIKAGE_TEMPLATE = """ You are an elite-level [role] with deep expertise in [subject]. Your task is to develop a structured, high-quality response following these key elements: ## **Context** [Provide background information related to the task to frame the problem.] ## **Approach** [Define a **step-by-step** breakdown of how to achieve the goal, focusing on methodology and best practices.] ## **Response Format** [Specify the expected output structure, ensuring clarity and completeness.] ## **Instructions** - [Ensure high-quality standards, best practices, and possible constraints.] - [Emphasize documentation, flexibility, and potential edge cases.] Enhance the following prompt using this **structured, expert-level framework:** **Original Prompt:** {user_prompt} **Enhanced Prompt:** (Apply the Mastermind framework to generate the improved version) """ if st.button("Generate Enhanced Prompt"): if topic.strip(): with st.spinner("Enhancing your prompt..."): # Choose the template based on the selected mode if mode == "Shinobi": prompt = SHINOBI_TEMPLATE.format(user_prompt=topic) else: prompt = RAIKAGE_TEMPLATE.format(user_prompt=topic) # Initialize the generative model model = genai.GenerativeModel('gemini-2.0-flash') # Generate enhanced prompt try: response = model.generate_content(prompt) enhanced_prompt = response.text # Extract the response text st.subheader("🔹 Enhanced Prompt:") st.code(enhanced_prompt, language="markdown") except Exception as e: st.error(f"❌ Error generating enhanced prompt: {e}") else: st.warning("⚠️ Please enter a prompt before generating.")