File size: 1,816 Bytes
40de63b |
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 |
import streamlit as st
from dotenv import load_dotenv
from phi.agent import Agent
from phi.model.google import Gemini
from phi.tools.yfinance import YFinanceTools
from phi.tools.duckduckgo import DuckDuckGo
load_dotenv()
#model_name=Groq(id="llama-3.3-70b-versatile")
model_name=Gemini(id="gemini-2.0-flash-exp")
finance_agent = Agent(
name="Finance Agent",
model=model_name,
tools=[YFinanceTools(stock_price=True, analyst_recommendations=True, stock_fundamentals=True)],
instructions=["Use table to display data."],
show_tool_calls=True,
markdowon=True,
debug_mode=True
)
web_agent = Agent(
name="Web Agent",
model=model_name,
tools=[DuckDuckGo()],
instructions=["Always include sources"],
show_tool_calls=True,
markdown=True
)
agent_team=Agent(
name="Agent Team",
model=model_name,
team=[web_agent,finance_agent],
instructions=["Always include sources","Use table to display data."],
show_tool_calls=True,
markdown=True,
debug_mode=True
)
# Streamlit App
def main():
st.set_page_config(page_title="StockIntel AI", page_icon=":bar_chart:", layout="wide")
st.markdown("""
<h1 style="text-align: center; color: #4CAF50;">StockIntel AI</h1>
<p style="text-align: center; font-size: 20px; color: #777;">AI-powered assistant for analyzing your stocks.</p>
""", unsafe_allow_html=True)
user_input = st.text_input("Enter your query (e.g., 'Tell me about Apple stock')")
submit = st.button("Get Stock Data")
if submit and user_input.strip():
# Extract the stock ticker using LLM
result = agent_team.run(user_input)
st.markdown(result.content, unsafe_allow_html=True)
if __name__ == "__main__":
main()
|