CrewAI-Studio / app.py
zhengr's picture
init
58e0d8e
raw
history blame contribute delete
No virus
1.97 kB
import streamlit as st
from streamlit import session_state as ss
import db_utils
from pg_agents import PageAgents
from pg_tasks import PageTasks
from pg_crews import PageCrews
from pg_tools import PageTools
from pg_crew_run import PageCrewRun
from pg_export_crew import PageExportCrew
from dotenv import load_dotenv
import os
def pages():
return {
'Crews': PageCrews(),
'Tools': PageTools(),
'Agents': PageAgents(),
'Tasks': PageTasks(),
'Kickoff!': PageCrewRun(),
'Import/export': PageExportCrew()
}
def load_data():
ss.agents = db_utils.load_agents()
ss.tasks = db_utils.load_tasks()
ss.crews = db_utils.load_crews()
ss.tools = db_utils.load_tools()
ss.enabled_tools = db_utils.load_tools_state()
def draw_sidebar():
with st.sidebar:
st.image("img/crewai_logo.png")
if 'page' not in ss:
ss.page = 'Crews'
selected_page = st.radio('Page', list(pages().keys()), index=list(pages().keys()).index(ss.page),label_visibility="collapsed")
if selected_page != ss.page:
ss.page = selected_page
st.rerun()
def main():
st.set_page_config(page_title="CrewAI Studio", page_icon="img/favicon.ico", layout="wide")
load_dotenv()
if (str(os.getenv('AGENTOPS_ENABLED')).lower() in ['true', '1']) and not ss.get('agentops_failed', False):
try:
import agentops
agentops.init(api_key=os.getenv('AGENTOPS_API_KEY'),auto_start_session=False)
except ModuleNotFoundError as e:
ss.agentops_failed = True
print(f"Error initializing AgentOps: {str(e)}")
db_utils.initialize_db()
load_data()
draw_sidebar()
PageCrewRun.maintain_session_state() #this will persist the session state for the crew run page so crew run can be run in a separate thread
pages()[ss.page].draw()
if __name__ == '__main__':
main()