File size: 1,973 Bytes
42b1b7d
 
 
 
e151f47
cf4e043
42b1b7d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
cf4e043
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42b1b7d
cf4e043
42b1b7d
cf4e043
 
 
 
 
 
 
 
 
 
 
42b1b7d
e151f47
 
 
42b1b7d
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
import streamlit as st
import json
from src.langgraphagenticai.ui.streamlitui.loadui import LoadStreamlitUI
from src.langgraphagenticai.LLMS.groqllm import GroqLLM
from src.langgraphagenticai.graph.graph_builder import GraphBuilder
from src.langgraphagenticai.ui.streamlitui.display_result import DisplayResultStreamlit

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.
    """

    ui = LoadStreamlitUI()
    user_input = ui.load_streamlit_ui()

    if not user_input:
        st.error("Error:Failed to load user input from UI")

    #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:")

    # Initializing the LLM
    if user_message:
        
        obj_llm_config = GroqLLM(user_controls_input=user_input)
        model = obj_llm_config.get_llm_model()

        if not model:
            st.error("Error: LLM model could not be initialized.")
            return 
        
        usecase = user_input.get("selected_usecase")
        if not usecase:
            st.error("Error: Usecase not selected.")
            return
        

        # Graph Builder
        graph_builder = GraphBuilder(model)
        try:
            graph = graph_builder.setup_graph(usecase=usecase)
        except Exception as e:
            raise ValueError(f"Error: Graph set up Failed - {e}")
            return 
        
        # Display Result
        display_obj = DisplayResultStreamlit(
            usecase=usecase,
            graph=graph,
            user_message=user_message
        )
        display_obj.display_result_on_ui()