ImaGen / app.py
fmmkii's picture
Revamped API handling
12671eb
import streamlit as st
import os
from dotenv import load_dotenv, set_key
# Load environment variables from .env file
load_dotenv()
st.set_page_config(layout='wide', page_icon='✨')
# Create pages
scriptgen = st.Page("scriptgen.py", title="Script Generator", icon='πŸ“ƒ')
imggen = st.Page("imggen.py", title="Thumbnail Generator", icon='πŸ–ΌοΈ')
tweaker = st.Page("tweaker.py", title="Creative Consultant", icon='🎬')
jsonbase = st.Page("secretary.py", title="Script Secretary", icon='πŸ“š')
manual = st.Page("manual.py", title="Manual", icon="πŸ‘“", default=True)
docs = st.Page("docs.py", title="Documentation", icon='πŸ“‘')
# Sidebar for API Key input and options
with st.sidebar:
api_key_input = st.text_input('Enter your OpenAI API token:', type='password')
if st.button("Save API Key"):
if api_key_input.startswith("sk-"): # Basic validation
# Save API key to session state
st.session_state["OPENAI_API_KEY"] = api_key_input
# Optionally, save it to .env file or any persistent storage
env_file = ".env"
set_key(env_file, "OPENAI_API_KEY", api_key_input)
st.success("API Key saved successfully!")
else:
st.error("Invalid API Key format!")
# Check if API Key is available
api_key = st.session_state.get("OPENAI_API_KEY", None)
if api_key:
st.success("API Key loaded from session!")
else:
st.warning("No API Key found. Please enter one.")
# Example navigation setup for your pages
pg = st.navigation(
{
"Others": [manual, docs],
"Tools": [scriptgen, imggen, tweaker, jsonbase]
}
)
pg.run()