File size: 1,321 Bytes
52bd024
a47e415
 
a4d5e2f
a47e415
a4d5e2f
4aa9d41
a4d5e2f
 
 
 
 
 
 
 
 
 
 
 
 
2ef7125
 
 
 
 
a4d5e2f
52bd024
 
a4d5e2f
 
 
 
 
52bd024
 
a47e415
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
import gradio as gr
from workflow.agents_workflow import build_agents_workflow
from workflow.graph_state import GraphState

app = build_agents_workflow(llm_model_name="gpt-4o-mini")

def run_user_query(ticker, history):
    QUERY = f"Produce investor-ready insights for {ticker}."
    init_state: GraphState = {
        "ticker": ticker,
        "query": QUERY,
        "news_summary": None,
        "earnings_summary": None,
        "market_summary": None,
        "completed": [],
        "final_recommendation": None,
    }
    final_state = app.invoke(init_state)

    # Update the Gradio chat history
    recommendations = (f'### NEWS SUMMARY\n{final_state["news_summary"]}\n '
                      f'### EARNINGS SUMMARY\n{final_state["earnings_summary"]}\n '
                      f'### MARKET SUMMARY\n{final_state["market_summary"]}\n '
                      f'### FINAL RECOMMENDATION\n{final_state["final_recommendation"]}\n')
    history.append((QUERY, recommendations))
    return "", history

with gr.Blocks() as demo:
    chatbot = gr.Chatbot()
    msg = gr.Textbox()
    clear = gr.Button("Clear")
    msg.submit(run_user_query, [msg, chatbot], [msg, chatbot], queue=False)
    clear.click(lambda: None, None, chatbot, queue=False)

if __name__ == "__main__":
    demo.launch(share=True, show_api=False)