Spaces:
Running
Running
import streamlit as st | |
import json | |
import os | |
import sys | |
sys.path.append(os.path.join(os.path.dirname(__file__), '..')) | |
from src.user_interface.streamlitui.loadui import LoadStreamlitUI | |
from src.user_interface.streamlitui.display_result import DisplayResultStreamlit | |
from src.llms.groq_llms import GroqLLMS | |
from src.graph.graph_builder import GraphBuilder | |
# MAIN Function START | |
def load_langgraph_agenticai_app(): | |
""" | |
Loads and runs the LangGraph AgenticAI application with Streamlit UI. | |
This function initializes the UI, handles user input, configures the LLM model, | |
sets up the graph based on the selected use case, and displays the output while | |
implementing exception handling for robustness. | |
""" | |
# Load UI | |
ui = LoadStreamlitUI() | |
user_input = ui.load_streamlit_ui() | |
if not user_input: | |
st.error("Error: Failed to load user input from the UI.") | |
return | |
# Text input for user message | |
if st.session_state.IsFetchButtonClicked: | |
user_message = st.session_state.timeframe | |
else : | |
user_message = st.chat_input("Enter your message:") | |
if user_message: | |
try: | |
# Configure LLM | |
obj_llm_config = GroqLLMS(user_controls_input=user_input) | |
model = obj_llm_config.get_groq_model() | |
if not model: | |
st.error("Error: LLM model could not be initialized.") | |
return | |
# Initialize and set up the graph based on use case | |
usecase = user_input.get('selected_usecase') | |
if not usecase: | |
st.error("Error: No use case selected.") | |
return | |
### Graph Builder | |
graph_builder=GraphBuilder(model) | |
try: | |
graph = graph_builder.setup_graph(usecase) | |
DisplayResultStreamlit(usecase,graph,user_message).display_result_on_ui() | |
except Exception as e: | |
st.error(f"Error: Graph setup failed - {e}") | |
return | |
except Exception as e: | |
raise ValueError(f"Error Occurred with Exception : {e}") | |