from phi.agent import Agent
from phi.model.groq import Groq
from phi.tools.yfinance import YFinanceTools
from phi.tools.duckduckgo import DuckDuckGo
import os
import streamlit as st
import openai
from phi.model.google import Gemini
from phi.model.openai import OpenAIChat
from dotenv import load_dotenv
from phi.agent import Agent, RunResponse
from phi.utils.pprint import pprint_run_response
load_dotenv()
openai.api_key = os.getenv(‘OPENAI_API_KEY’)
Gemini.api_key = os.getenv(‘GOOGLE_API_KEY’)
os.environ[‘SSL_CERT_FILE’] = r’C:\Users\Admin\Projects\Agentic\agentic_venv\Library\ssl\cacert.pem’
Web search agent
web_search_agent = Agent(
name = “web_search_agent”,
role = “Search the web for information about stocks”,
model = Groq(id=“llama-3.1-70b-versatile”),
tools = [DuckDuckGo()],
instructions = [“Always include source information”],
show_tool_calls=True,
markdown=True
)
Finance agent
finance_agent = Agent(
name = “Finance AI Agent”,
model = Groq(id=“llama-3.1-70b-versatile”),
tools=[YFinanceTools(stock_price=True, analyst_recommendations=True, company_info=True, company_news=True)],
instructions=[“Use tables to display data”],
show_tool_calls=True,
markdown=True,
)
multi_ai_agent = Agent(
model = Gemini(id=“models/gemini-2.0-flash-exp”),
#model = OpenAIChat(id=“gpt-4o”),
#model = Groq(id=“llama-3.1-70b-versatile”),
team= [web_search_agent, finance_agent],
instructions=[“Always include sources”, “Use table to display the data”],
show_tools_calls = True,
markdown= True,
)
def user_input(user_question):
question = user_question
return multi_ai_agent.print_response(question, stream=True)
def main():
st.set_page_config(“Financial Avisor”)
st.header(“Chat with AI Financial Advisor”)
user_question = st.text_input("Ask a Question about stocks")
if user_question:
(user_input(user_question))
if name == “main”:
main()