From 2c29702ace3084e8efd7a7d4c6e5b25f54c0b737 Mon Sep 17 00:00:00 2001 From: bjorn Date: Tue, 10 Jun 2025 18:11:01 +0800 Subject: [PATCH] chore: update to use free models Signed-off-by: bjorn --- Makefile | 0 cli/utils.py | 2 ++ requirements.txt | 1 + tradingagents/agents/utils/memory.py | 14 ++++++++------ tradingagents/default_config.py | 5 +++-- tradingagents/graph/trading_graph.py | 3 ++- 6 files changed, 16 insertions(+), 9 deletions(-) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..e69de29b diff --git a/cli/utils.py b/cli/utils.py index c3865253..92bacb10 100644 --- a/cli/utils.py +++ b/cli/utils.py @@ -131,6 +131,7 @@ def select_shallow_thinking_agent() -> str: ("GPT-4.1-nano - Ultra-lightweight model for basic operations", "gpt-4.1-nano"), ("GPT-4.1-mini - Compact model with good performance", "gpt-4.1-mini"), ("GPT-4o - Standard model with solid capabilities", "gpt-4o"), + ("Deepseek R1","deepseek/deepseek-chat-v3-0324:free"), ] choice = questionary.select( @@ -170,6 +171,7 @@ def select_deep_thinking_agent() -> str: ("o3-mini - Advanced reasoning model (lightweight)", "o3-mini"), ("o3 - Full advanced reasoning model", "o3"), ("o1 - Premier reasoning and problem-solving model", "o1"), + ("Deepseek R1","deepseek/deepseek-chat-v3-0324:free"), ] choice = questionary.select( diff --git a/requirements.txt b/requirements.txt index 1c7c2818..dc45236e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -22,3 +22,4 @@ redis chainlit rich questionary +sentence-transformers diff --git a/tradingagents/agents/utils/memory.py b/tradingagents/agents/utils/memory.py index a1934bd8..5d309596 100644 --- a/tradingagents/agents/utils/memory.py +++ b/tradingagents/agents/utils/memory.py @@ -2,21 +2,23 @@ import chromadb from chromadb.config import Settings from openai import OpenAI import numpy as np +from sentence_transformers import SentenceTransformer class FinancialSituationMemory: def __init__(self, name): - self.client = OpenAI() + self.embedding_model = SentenceTransformer("all-MiniLM-L6-v2") self.chroma_client = chromadb.Client(Settings(allow_reset=True)) self.situation_collection = self.chroma_client.create_collection(name=name) def get_embedding(self, text): """Get OpenAI embedding for a text""" - response = self.client.embeddings.create( - model="text-embedding-ada-002", input=text - ) - return response.data[0].embedding - + # response = self.client.embeddings.create( + # model="text-embedding-ada-002", input=text + # ) + # return response.data[0].embedding + return self.embedding_model.encode(text, convert_to_tensor=False) + def add_situations(self, situations_and_advice): """Add financial situations and their corresponding advice. Parameter is a list of tuples (situation, rec)""" diff --git a/tradingagents/default_config.py b/tradingagents/default_config.py index 5bb2548c..7b5e86ae 100644 --- a/tradingagents/default_config.py +++ b/tradingagents/default_config.py @@ -8,8 +8,9 @@ DEFAULT_CONFIG = { "dataflows/data_cache", ), # LLM settings - "deep_think_llm": "o4-mini", - "quick_think_llm": "gpt-4o-mini", + "base_url": "https://openrouter.ai/api/v1", + "deep_think_llm": "deepseek/deepseek-r1:free", + "quick_think_llm": "deepseek/deepseek-r1:free", # Debate and discussion settings "max_debate_rounds": 1, "max_risk_discuss_rounds": 1, diff --git a/tradingagents/graph/trading_graph.py b/tradingagents/graph/trading_graph.py index bbd45071..159abb56 100644 --- a/tradingagents/graph/trading_graph.py +++ b/tradingagents/graph/trading_graph.py @@ -55,8 +55,9 @@ class TradingAgentsGraph: ) # Initialize LLMs - self.deep_thinking_llm = ChatOpenAI(model=self.config["deep_think_llm"]) + self.deep_thinking_llm = ChatOpenAI(base_url=self.config['base_url'],model=self.config["deep_think_llm"]) self.quick_thinking_llm = ChatOpenAI( + base_url=self.config['base_url'], model=self.config["quick_think_llm"], temperature=0.1 ) self.toolkit = Toolkit(config=self.config)