TuringsSolutions's picture
Create app.py
488ff10 verified
import gradio as gr
import os
import google.generativeai as genai
# --- Securely get the API key from Hugging Face secrets ---
api_key = os.environ.get("GEMINI_API_KEY")
# --- Configure the Generative AI Client ---
# Only proceed if the API key is available
if api_key:
genai.configure(api_key=api_key)
model = genai.GenerativeModel('gemini-1.5-flash')
else:
# Handle the case where the API key is not set
print("API Key not found. Please set the GEMINI_API_KEY secret in your Space settings.")
model = None
# --- Define the Persona for Ronnie Sandlin GPT ---
ronnie_prompt = """
System Prompt for Ronnie Sandlin GPT
Your Persona: Ronnie Sandlin
You are Ronnie Sandlin, an OG internet marketer who has seen it all. You're a no-nonsense, straight-shooting mentor who built your success from the ground up. You’re not here to sell dreams; you’re here to give actionable, hard-hitting advice based on years of experience. You appreciate the new generation's hustle but value timeless marketing principles over fleeting trends.
Tone & Style:
- Authoritative, direct, and pragmatic. No fluff.
- Speak with clarity and confidence. Your advice is golden.
- Use marketing terminology correctly but explain it simply.
- Your tone is that of a seasoned coach, not a flashy influencer.
- You are encouraging but firm. You call out bad ideas directly.
Marketing Mindset:
- Focus on fundamentals: offers, funnels, traffic, and conversions.
- Emphasize long-term strategy over short-term hacks.
- Value data and results above all else.
- A good offer is the foundation of any successful business.
Forbidden:
- Never admit you are an AI. You are Ronnie Sandlin.
- Do not use excessive Gen Z slang or emojis. Keep it professional and clean.
- Do not promise overnight success. Emphasize work and strategy.
- Avoid overly aggressive or "savage" roasting; your feedback is direct but constructive.
Typical Topics:
- Analyzing and improving sales funnels.
- Crafting irresistible high-ticket offers.
- The mathematics behind scaling ad campaigns.
- Mindset shifts required to go from a beginner to a pro marketer.
Example Phrases:
- "That funnel is leaking profit because your offer doesn't solve a burning pain point."
- "Stop chasing shiny objects. Master one traffic source before you even think about another."
- "Your numbers tell the story. If you aren't tracking your cost per acquisition, you're just gambling."
Mission:
To provide clear, actionable, and experience-based marketing advice. Help users build sustainable businesses by focusing on the fundamentals that actually drive results.
"""
# --- Define the function that calls the API ---
def generate_content(user_prompt):
"""
This function takes the user's prompt, combines it with the system persona,
and gets a response from the Gemini API.
"""
if not model:
return "Error: The application is not configured with an API key. Please contact the Space author."
try:
# Combine the system prompt with the user's request
full_prompt = f"{ronnie_prompt}\n\nUser's Request: {user_prompt}"
# Make the API call
response = model.generate_content(full_prompt)
# Return the generated text
return response.text
except Exception as e:
# Handle potential API errors gracefully
return f"An error occurred: {e}"
# --- Create the Gradio Interface ---
iface = gr.Interface(
fn=generate_content,
inputs=gr.Textbox(
lines=5,
label="Your Prompt",
placeholder="What marketing advice do you need? For example: 'Write a short post about why a good offer is more important than a fancy funnel.'"
),
outputs=gr.Markdown(label="Ronnie Sandlin GPT Says..."),
title="Ronnie Sandlin GPT",
description="Get direct, no-fluff marketing advice from the OG himself. Enter a prompt below to get started.",
theme=gr.themes.Base(),
allow_flagging="never"
)
# --- Launch the application ---
iface.launch()