diff --git a/src/brain/prompt_optimizer.py b/src/brain/prompt_optimizer.py index 7dc2c17..fdc0d99 100644 --- a/src/brain/prompt_optimizer.py +++ b/src/brain/prompt_optimizer.py @@ -179,8 +179,8 @@ class PromptOptimizer: # Minimal instructions prompt = ( f"{market_name} trader. Analyze:\n{data_str}\n\n" - 'Return JSON: {"act":"BUY"|"SELL"|"HOLD","conf":<0-100>,"reason":""}\n' - "Rules: act=BUY/SELL/HOLD, conf=0-100, reason=concise. No markdown." + 'Return JSON: {"action":"BUY"|"SELL"|"HOLD","confidence":<0-100>,"rationale":""}\n' + "Rules: action=BUY/SELL/HOLD, confidence=0-100, rationale=concise. No markdown." ) else: # Data only (for cached contexts where instructions are known) diff --git a/src/broker/overseas.py b/src/broker/overseas.py index 84b0fdb..13f3903 100644 --- a/src/broker/overseas.py +++ b/src/broker/overseas.py @@ -133,7 +133,7 @@ class OverseasBroker: "AUTH": "", "EXCD": ranking_excd, "NDAY": "0", - "GUBN": "1", + "GUBN": "0", # 0=전체(상승+하락), 1=상승만 — 변동성 스캐너는 전체 필요 "VOL_RANG": "0", } diff --git a/tests/test_overseas_broker.py b/tests/test_overseas_broker.py index 65d6d60..3f346f6 100644 --- a/tests/test_overseas_broker.py +++ b/tests/test_overseas_broker.py @@ -124,7 +124,7 @@ class TestFetchOverseasRankings: assert "/uapi/overseas-stock/v1/ranking/updown-rate" in url assert params["EXCD"] == "NAS" assert params["NDAY"] == "0" - assert params["GUBN"] == "1" + assert params["GUBN"] == "0" # 0=전체(상승+하락), 변동성 스캐너에 필요 assert params["VOL_RANG"] == "0" overseas_broker._broker._auth_headers.assert_called_with("HHDFS76290000") diff --git a/tests/test_token_efficiency.py b/tests/test_token_efficiency.py index 96bcbfc..c049d1c 100644 --- a/tests/test_token_efficiency.py +++ b/tests/test_token_efficiency.py @@ -124,6 +124,10 @@ class TestPromptOptimizer: assert len(prompt) < 300 assert "005930" in prompt assert "75000" in prompt + # Keys must match parse_response expectations (#242) + assert '"action"' in prompt + assert '"confidence"' in prompt + assert '"rationale"' in prompt def test_build_compressed_prompt_no_instructions(self): """Test compressed prompt without instructions."""