File size: 7,441 Bytes
9140d68 80901e6 c5676bf b7b397e c5676bf 26ca950 b7b397e c5676bf e19b30e cda83bf c5676bf cda83bf 85ebef7 c5676bf 85ebef7 9140d68 c5676bf 9140d68 85ebef7 7c66e2d c5676bf cda83bf c5676bf e19b30e cda83bf c5676bf cda83bf c5676bf cda83bf 85ebef7 c5676bf 85ebef7 c5676bf 85ebef7 c5676bf b7b397e cda83bf 9140d68 c5676bf 85ebef7 9140d68 c5676bf 85ebef7 cda83bf 85ebef7 c5676bf cda83bf 9140d68 c5676bf 9140d68 c5676bf 9140d68 c5676bf 9140d68 c5676bf 9140d68 c5676bf 9140d68 b7b397e cda83bf e19b30e b7b397e cda83bf 85ebef7 c5676bf 85ebef7 c5676bf 85ebef7 cda83bf 9140d68 cda83bf c5676bf cda83bf c5676bf cda83bf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 |
import os
import streamlit as st
from datetime import datetime
from agent_manager import AgentManager
from shopify_client import create_shopify_product
from dashboard.logs import show_logs
from stripe_checkout import create_stripe_session
import requests # if youβre also firing webhooks/Zapier
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# 1. GLOBAL PAGE CONFIG
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
st.set_page_config(
page_title="AutoExecΒ AI",
page_icon="π",
layout="wide",
initial_sidebar_state="expanded",
)
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# 2. NAVIGATION
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
PAGES = {
"Home": "π Home",
"Launch": "π Launch",
"Logs": "π Logs",
"Settings": "βοΈ Settings"
}
if "page" not in st.session_state:
st.session_state.page = "Home"
st.sidebar.title("AutoExecΒ AI")
selection = st.sidebar.radio(
"Navigate:",
list(PAGES.values()),
index=list(PAGES.values()).index(PAGES[st.session_state.page]),
key="nav_radio"
)
# map back to key
st.session_state.page = next(k for k, v in PAGES.items() if v == selection)
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# 3. PAGE DISPATCHER
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
def main():
page = st.session_state.page
if page == "Home":
render_home()
elif page == "Launch":
render_launch()
elif page == "Logs":
render_logs()
elif page == "Settings":
render_settings()
else:
st.error("Page not found")
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# 4. PAGE RENDERERS
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
def render_home():
st.markdown(
"""
<div style="text-align:center; padding:2rem 0;">
<h1 style="font-size:3rem; margin:0;">π AutoExecΒ AI</h1>
<p style="font-size:1.25rem; color:#555;">
Your Autonomous AI Business Builder<br>
Generate, deploy, and optimize startups in one click.
</p>
</div>
""", unsafe_allow_html=True
)
cols = st.columns(3)
features = [
("π€ LLM-Powered", "Gemini Pro + GPTβ4 fallback"),
("π LoopAgent", "Daily autonomous optimizations"),
("π Dashboard", "Real-time logs & analytics")
]
for col, (title, desc) in zip(cols, features):
col.subheader(title)
col.write(desc)
st.markdown("---")
if st.button("π Try the Demo"):
st.session_state.page = "Launch"
st.experimental_rerun()
def render_launch():
st.markdown("## π Launch a New AI Business")
with st.form("launch_form"):
niche = st.text_input("π― Niche", placeholder="e.g., fitness wear")
business_type = st.selectbox(
"π¦ Business Type",
["Dropshipping", "PrintβonβDemand", "Newsletter", "Course"]
)
submit = st.form_submit_button("Generate & Deploy")
if submit:
if not niche.strip():
st.warning("Please enter a niche to continue.")
return
# Run agents
with st.spinner("π€ Running AI agentsβ¦"):
manager = AgentManager(niche.strip(), business_type)
results = manager.run_all()
st.success("β
Business Launched Successfully!")
st.json(results)
# Publish product to Shopify
try:
title = f"{business_type} in {niche}"
description = results["copy"]
price = "49.00"
image_url = None # or provide a default URL
storefront_url = create_shopify_product(
title=title,
description=description,
price=price,
image_url=image_url
)
st.markdown(f"**ποΈ Product live on Shopify:** [View Product]({storefront_url})")
except Exception as e:
st.error(f"β Shopify publish failed: {e}")
def render_logs():
st.markdown("## π Agent Memory Log Dashboard")
show_logs()
def render_settings():
st.markdown("## βοΈ Settings & Billing")
st.markdown(
"""
**Configure these secrets in Settings β Secrets**
β’ `API_KEY`
β’ `OPENAI_API_KEY`
β’ `GEMINI_API_KEY`
β’ `STRIPE_API_KEY`
"""
)
if st.button("π³ Subscribe via Stripe"):
checkout_url = create_stripe_session()
st.markdown(f"[Proceed to Payment β]({checkout_url})", unsafe_allow_html=True)
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# 5. FOOTER
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
def render_footer():
st.markdown("---")
st.markdown(
"<div style='text-align:center; color:#888; font-size:0.85rem;'>"
"Powered by Streamlit β’ FastAPI β’ Celery β’ Redis β’ Hugging Face Spaces"
"</div>",
unsafe_allow_html=True,
)
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# 6. ENTRY POINT
# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
if __name__ == "__main__":
main()
render_footer()
|