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