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)
|