import pandas as pd import os from dotenv import load_dotenv load_dotenv() import groq groq.api_key = os.getenv("GROQ_API_KEY") from agno.agent import Agent from agno.models.groq import Groq from agno.tools.yfinance import YFinanceTools from agno.tools.duckduckgo import DuckDuckGoTools from finance_agent import FinanceAgent from web_search_agent import WebSearchAgent from multi_agent import MultiAgent import matplotlib.pyplot as plt from textblob import TextBlob def fetch_financial_data(ticker_symbol): import yfinance as yf ticker = yf.Ticker(ticker_symbol) return ticker def clean_data(data): if isinstance(data, pd.DataFrame): return data.dropna() return data def fetch_and_clean_news(ticker_symbol): ticker = fetch_financial_data(ticker_symbol) news_items = ticker.news cleaned_news = [item for item in news_items if item.get('content')] return cleaned_news def extract_fundamentals(ticker_symbol): ticker = fetch_financial_data(ticker_symbol) fundamentals = { "longName": ticker.info.get('longName', ticker_symbol), "marketCap": ticker.info.get('marketCap'), "peRatio": ticker.info.get('forwardPE'), "dividendYield": ticker.info.get('dividendYield') } return clean_data(fundamentals)