update prompt

This commit is contained in:
Jeffrey Chu 2025-10-23 21:59:47 +08:00
parent 662b0644b8
commit 28218b2db9
3 changed files with 30 additions and 6 deletions

View File

@ -8,14 +8,22 @@ from langchain_core.language_models.chat_models import BaseChatModel
class Reflector:
"""Handles reflection on decisions and updating memory."""
def __init__(self, quick_thinking_llm: BaseChatModel):
def __init__(self, quick_thinking_llm: BaseChatModel, config):
"""Initialize the reflector with an LLM."""
language = config["output_language"]
language_prompts = {
"en": "",
"zh-tw": "Use Traditional Chinese as the output.",
"zh-cn": "Use Simplified Chinese as the output.",
}
self.language_prompt = language_prompts.get(language, "")
self.quick_thinking_llm = quick_thinking_llm
self.reflection_system_prompt = self._get_reflection_prompt()
def _get_reflection_prompt(self) -> str:
"""Get the system prompt for reflection."""
return """
return f"""
You are an expert financial analyst tasked with reviewing trading decisions/analysis and providing a comprehensive, step-by-step analysis.
Your goal is to deliver detailed insights into investment decisions and highlight opportunities for improvement, adhering strictly to the following guidelines:
@ -45,6 +53,8 @@ Your goal is to deliver detailed insights into investment decisions and highligh
- Ensure the condensed sentence captures the essence of the lessons and reasoning for easy reference.
Adhere strictly to these instructions, and ensure your output is detailed, accurate, and actionable. You will also be given objective descriptions of the market from a price movements, technical indicator, news, and sentiment perspective to provide more context for your analysis.
Output language: ***{self.language_prompt}***
"""
def _extract_current_situation(self, current_state: Dict[str, Any]) -> str:

View File

@ -7,8 +7,16 @@ from langchain_core.language_models.chat_models import BaseChatModel
class SignalProcessor:
"""Processes trading signals to extract actionable decisions."""
def __init__(self, quick_thinking_llm: BaseChatModel):
def __init__(self, quick_thinking_llm: BaseChatModel, config):
"""Initialize with an LLM for processing."""
language = config["output_language"]
language_prompts = {
"en": "",
"zh-tw": "Use Traditional Chinese as the output.",
"zh-cn": "Use Simplified Chinese as the output.",
}
self.language_prompt = language_prompts.get(language, "")
self.quick_thinking_llm = quick_thinking_llm
def process_signal(self, full_signal: str) -> str:
@ -24,7 +32,13 @@ class SignalProcessor:
messages = [
(
"system",
"You are an efficient assistant designed to analyze paragraphs or financial reports provided by a group of analysts. Your task is to extract the investment decision: SELL, BUY, or HOLD. Provide only the extracted decision (SELL, BUY, or HOLD) as your output, without adding any additional text or information.",
f"""
You are an efficient assistant designed to analyze paragraphs or financial reports provided by a group of analysts.
Your task is to extract the investment decision: SELL, BUY, or HOLD.
Provide only the extracted decision (SELL, BUY, or HOLD) as your output, without adding any additional text or information.
Output language: ***{self.language_prompt}***
""",
),
("human", full_signal),
]

View File

@ -109,8 +109,8 @@ class TradingAgentsGraph:
)
self.propagator = Propagator()
self.reflector = Reflector(self.quick_thinking_llm)
self.signal_processor = SignalProcessor(self.quick_thinking_llm)
self.reflector = Reflector(self.quick_thinking_llm, self.config)
self.signal_processor = SignalProcessor(self.quick_thinking_llm, self.config)
# State tracking
self.curr_state = None