File size: 1,440 Bytes
bce1255
7e5aa7c
c2e22b2
7e5aa7c
 
bce1255
 
7e5aa7c
 
bce1255
045a7e1
7e5aa7c
 
 
 
 
 
 
 
bce1255
7e5aa7c
bce1255
 
 
7e5aa7c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import streamlit as st
from agents.api_agent import get_asia_tech_risk
from agents.scrapping_agent import get_earnings_news
from agents.analysis_agent import get_aum_change, earnings_summary
from agents.language_agent import generate_brief
from agents.voice_agent import speech_to_text, text_to_speech

st.set_page_config(page_title="🧠 Finance Assistant", layout="centered")
st.title("🧠 Morning Market Brief - Voice Assistant")

st.markdown("Ask: _What’s our risk exposure in Asia tech stocks today, and highlight any earnings surprises?_")

input_mode = st.radio("Choose input mode", ["🎤 Voice", "⌨️ Button"])

query = ""
if input_mode == "🎤 Voice":
    if st.button("Record Voice"):
        query = speech_to_text()
        st.write("You said:", query)
else:
    if st.button("Get Market Brief"):
        query = "What's our risk exposure in Asia tech stocks today?"

if query:
    # Get agent responses
    stocks = get_asia_tech_risk(['TSM', 'SSNLF'])
    news = get_earnings_news()
    earnings = earnings_summary(stocks)
    aum_change = get_aum_change(22, 18)
    narrative = generate_brief(query)

    final_brief = (
        f"Today, your Asia tech allocation is 22% of AUM, up from 18% yesterday.\n\n"
        f"Earnings Summary: {earnings}.\n\n"
        f"Top Headlines:\n" + "\n".join([f"- {h}" for h in news]) + "\n\n"
        f"{narrative}"
    )

    st.success(final_brief)
    text_to_speech(final_brief)