feat(ai_news): include summary + pub_date in LLM prompt
This commit is contained in:
@@ -17,7 +17,10 @@ def _mk_llm(content_text: str, in_tokens: int = 100, out_tokens: int = 20):
|
||||
return llm
|
||||
|
||||
|
||||
NEWS = [{"title": "삼성전자, HBM 양산"}, {"title": "메모리 가격 반등"}]
|
||||
NEWS = [
|
||||
{"title": "삼성전자, HBM 양산", "summary": "1분기 영업이익 사상 최대", "pub_date": "2026-05-14"},
|
||||
{"title": "메모리 가격 반등", "summary": "", "pub_date": "2026-05-14"},
|
||||
]
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@@ -53,3 +56,15 @@ async def test_score_sentiment_clamps_negative_out_of_range():
|
||||
llm = _mk_llm(json.dumps({"score": -42.0, "reason": "초악재"}))
|
||||
out = await analyzer.score_sentiment(llm, "005930", NEWS)
|
||||
assert out["score_raw"] == -10.0
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_score_sentiment_includes_summary_in_prompt():
|
||||
"""summary 가 있으면 prompt 에 포함, 없으면 title 만."""
|
||||
llm = _mk_llm(json.dumps({"score": 5.0, "reason": "ok"}))
|
||||
await analyzer.score_sentiment(llm, "005930", NEWS, name="삼성전자")
|
||||
call = llm.messages.create.call_args
|
||||
user_msg = call.kwargs["messages"][0]["content"]
|
||||
assert "1분기 영업이익 사상 최대" in user_msg # summary 포함
|
||||
assert "삼성전자, HBM 양산" in user_msg # title 포함
|
||||
assert "2026-05-14" in user_msg # pub_date 포함
|
||||
|
||||
Reference in New Issue
Block a user