From 0134792d19f25ebabeede45fcc3bba75f5755e45 Mon Sep 17 00:00:00 2001 From: kevin-bruton Date: Sat, 27 Sep 2025 14:39:53 +0200 Subject: [PATCH] feat: make tool naming llm provider agnostic --- cli/main.py | 4 ++-- .../agents/analysts/fundamentals_analyst.py | 2 +- tradingagents/agents/analysts/news_analyst.py | 2 +- .../agents/analysts/social_media_analyst.py | 2 +- tradingagents/agents/utils/agent_utils.py | 12 ++++++------ tradingagents/agents/utils/memory.py | 2 +- tradingagents/dataflows/interface.py | 6 +++--- tradingagents/graph/trading_graph.py | 6 +++--- 8 files changed, 18 insertions(+), 18 deletions(-) diff --git a/cli/main.py b/cli/main.py index 22676e93..c7a625b8 100644 --- a/cli/main.py +++ b/cli/main.py @@ -465,10 +465,10 @@ def get_user_selections(): ) selected_research_depth = select_research_depth() - # Step 5: OpenAI backend + # Step 5: LLM Provider console.print( create_question_box( - "Step 5: OpenAI backend", "Select which service to talk to" + "Step 5: LLM Provider", "Select which service to talk to" ) ) selected_llm_provider, backend_url = select_llm_provider() diff --git a/tradingagents/agents/analysts/fundamentals_analyst.py b/tradingagents/agents/analysts/fundamentals_analyst.py index 716d4de1..7979d2a7 100644 --- a/tradingagents/agents/analysts/fundamentals_analyst.py +++ b/tradingagents/agents/analysts/fundamentals_analyst.py @@ -10,7 +10,7 @@ def create_fundamentals_analyst(llm, toolkit): company_name = state["company_of_interest"] if toolkit.config["online_tools"]: - tools = [toolkit.get_fundamentals_openai] + tools = [toolkit.get_fundamentals_from_llm] else: tools = [ toolkit.get_finnhub_company_insider_sentiment, diff --git a/tradingagents/agents/analysts/news_analyst.py b/tradingagents/agents/analysts/news_analyst.py index e1f03aa4..5b7c4f56 100644 --- a/tradingagents/agents/analysts/news_analyst.py +++ b/tradingagents/agents/analysts/news_analyst.py @@ -9,7 +9,7 @@ def create_news_analyst(llm, toolkit): ticker = state["company_of_interest"] if toolkit.config["online_tools"]: - tools = [toolkit.get_global_news_openai, toolkit.get_google_news] + tools = [toolkit.get_global_news_from_llm, toolkit.get_google_news] else: tools = [ toolkit.get_finnhub_news, diff --git a/tradingagents/agents/analysts/social_media_analyst.py b/tradingagents/agents/analysts/social_media_analyst.py index d556f73a..1594af7d 100644 --- a/tradingagents/agents/analysts/social_media_analyst.py +++ b/tradingagents/agents/analysts/social_media_analyst.py @@ -10,7 +10,7 @@ def create_social_media_analyst(llm, toolkit): company_name = state["company_of_interest"] if toolkit.config["online_tools"]: - tools = [toolkit.get_stock_news_openai] + tools = [toolkit.get_stock_news_from_llm] else: tools = [ toolkit.get_reddit_stock_info, diff --git a/tradingagents/agents/utils/agent_utils.py b/tradingagents/agents/utils/agent_utils.py index b80d883e..892191aa 100644 --- a/tradingagents/agents/utils/agent_utils.py +++ b/tradingagents/agents/utils/agent_utils.py @@ -363,7 +363,7 @@ class Toolkit: @staticmethod @tool - def get_stock_news_openai( + def get_stock_news_from_llm( ticker: Annotated[str, "the company's ticker"], curr_date: Annotated[str, "Current date in yyyy-mm-dd format"], ): @@ -377,7 +377,7 @@ class Toolkit: """ try: - openai_news_results = interface.get_stock_news_openai(ticker, curr_date) + openai_news_results = interface.get_stock_news_from_llm(ticker, curr_date) return openai_news_results except ValueError as e: # Return the detailed error message to the agent @@ -385,7 +385,7 @@ class Toolkit: @staticmethod @tool - def get_global_news_openai( + def get_global_news_from_llm( curr_date: Annotated[str, "Current date in yyyy-mm-dd format"], ): """ @@ -397,7 +397,7 @@ class Toolkit: """ try: - openai_news_results = interface.get_global_news_openai(curr_date) + openai_news_results = interface.get_global_news_from_llm(curr_date) return openai_news_results except ValueError as e: # Return the detailed error message to the agent @@ -405,7 +405,7 @@ class Toolkit: @staticmethod @tool - def get_fundamentals_openai( + def get_fundamentals_from_llm( ticker: Annotated[str, "the company's ticker"], curr_date: Annotated[str, "Current date in yyyy-mm-dd format"], ): @@ -419,7 +419,7 @@ class Toolkit: """ try: - openai_fundamentals_results = interface.get_fundamentals_openai( + openai_fundamentals_results = interface.get_fundamentals_from_llm( ticker, curr_date ) return openai_fundamentals_results diff --git a/tradingagents/agents/utils/memory.py b/tradingagents/agents/utils/memory.py index 1ced293d..34b94dd8 100644 --- a/tradingagents/agents/utils/memory.py +++ b/tradingagents/agents/utils/memory.py @@ -14,7 +14,7 @@ class FinancialSituationMemory: # Use a good general-purpose model for financial text self.embedding_model = SentenceTransformer('all-MiniLM-L6-v2') self.embedding_type = "local" - print(f"✅ Using local embeddings with sentence-transformers") + print(f"✅ Using local embeddings with sentence-transformers for {name}") except ImportError: print("⚠️ sentence-transformers not found. Install with: pip install sentence-transformers") print("Falling back to ChromaDB's default embeddings...") diff --git a/tradingagents/dataflows/interface.py b/tradingagents/dataflows/interface.py index fe98f556..92e91450 100644 --- a/tradingagents/dataflows/interface.py +++ b/tradingagents/dataflows/interface.py @@ -932,19 +932,19 @@ def _call_llm_api(prompt, config): raise ValueError(error_msg) from e -def get_stock_news_openai(ticker, curr_date): +def get_stock_news_from_llm(ticker, curr_date): config = get_config() prompt = f"Can you search Social Media for {ticker} from 7 days before {curr_date} to {curr_date}? Make sure you only get the data posted during that period." return _call_llm_api(prompt, config) -def get_global_news_openai(curr_date): +def get_global_news_from_llm(curr_date): config = get_config() prompt = f"Can you search global or macroeconomics news from 7 days before {curr_date} to {curr_date} that would be informative for trading purposes? Make sure you only get the data posted during that period." return _call_llm_api(prompt, config) -def get_fundamentals_openai(ticker, curr_date): +def get_fundamentals_from_llm(ticker, curr_date): config = get_config() prompt = f"Can you search for fundamental analysis discussions on {ticker} during the month before {curr_date} to the month of {curr_date}. Make sure you only get the data posted during that period. List as a table, with PE/PS/Cash flow/ etc" return _call_llm_api(prompt, config) diff --git a/tradingagents/graph/trading_graph.py b/tradingagents/graph/trading_graph.py index 7ac71c3e..3a65c96a 100644 --- a/tradingagents/graph/trading_graph.py +++ b/tradingagents/graph/trading_graph.py @@ -153,7 +153,7 @@ class TradingAgentsGraph: "social": ToolNode( [ # online tools - self.toolkit.get_stock_news_openai, + self.toolkit.get_stock_news_from_llm, # offline tools self.toolkit.get_reddit_stock_info, ] @@ -161,7 +161,7 @@ class TradingAgentsGraph: "news": ToolNode( [ # online tools - self.toolkit.get_global_news_openai, + self.toolkit.get_global_news_from_llm, self.toolkit.get_google_news, # offline tools self.toolkit.get_finnhub_news, @@ -171,7 +171,7 @@ class TradingAgentsGraph: "fundamentals": ToolNode( [ # online tools - self.toolkit.get_fundamentals_openai, + self.toolkit.get_fundamentals_from_llm, # offline tools self.toolkit.get_finnhub_company_insider_sentiment, self.toolkit.get_finnhub_company_insider_transactions,