AI-Agents / app.py
razaali10's picture
Update app.py
5dde9d4 verified
import streamlit as st
from agents.use_case_agent import get_use_case_agent
from agents.architecture_agent import get_architecture_agent
from langchain.agents import initialize_agent, AgentType
from langchain.llms import OpenAI
st.set_page_config(page_title="Wearable Diabetic Support AI Agents", layout="wide")
st.title("๐Ÿง  Wearable Diabetic Support System - Multi-Agent Simulator")
st.markdown("This app runs two LangChain-based AI agents:")
st.markdown("- ๐Ÿง  **Use Case Generator**")
st.markdown("- ๐Ÿ—๏ธ **Logical Architecture Generator**")
with st.sidebar:
st.header("Model Settings")
openai_api_key = st.text_input("Enter your OpenAI API Key", type="password")
temperature = st.slider("Model Temperature", 0.0, 1.0, 0.0)
# Input Configuration
st.header("๐Ÿ“‹ System Configuration")
tasks = st.multiselect("Select Tasks", ["DietManagement", "ExerciseManagement", "MedicationManagement"], default=["DietManagement", "ExerciseManagement"])
environments = st.multiselect("Select Environments", ["Home", "Outdoor"], default=["Home"])
actors = st.multiselect("Select Actors", ["Patient", "Caregiver"], default=["Patient"])
if st.button("โ–ถ๏ธ Run Agents"):
if not openai_api_key:
st.error("Please enter your OpenAI API key in the sidebar.")
else:
llm = OpenAI(temperature=temperature, openai_api_key=openai_api_key)
# Initialize Agents
use_case_tool = get_use_case_agent(llm)
architecture_tool = get_architecture_agent(llm)
# Run Use Case Agent
st.subheader("๐Ÿง  Use Case Output")
use_case_input = f"Define use cases for tasks: {tasks}, environments: {environments}, actors: {actors}"
use_case_output = use_case_tool.run(use_case_input)
st.code(use_case_output, language="markdown")
# Run Architecture Agent
st.subheader("๐Ÿ—๏ธ Logical Architecture Output")
functions = [
"LogMeal", "MonitorGlucose", "AnalyzeDiet", "ProvideDietFeedback",
"TrackActivity", "AnalyzeActivity", "ProvideExerciseFeedback",
"SendMedicationReminder", "LogMedicationIntake"
]
arch_input = f"Define architecture with these functions: {functions}"
arch_output = architecture_tool.run(arch_input)
st.code(arch_output, language="markdown")