fix(ai_news): assistant prefill + temperature=0 + system prompt to force JSON
This commit is contained in:
@@ -44,9 +44,17 @@ async def score_sentiment(
|
||||
resp = await llm.messages.create(
|
||||
model=model,
|
||||
max_tokens=200,
|
||||
messages=[{"role": "user", "content": prompt}],
|
||||
temperature=0,
|
||||
system="너는 한국 주식 뉴스 감성 분석가다. JSON 객체 하나만 반환한다.",
|
||||
messages=[
|
||||
{"role": "user", "content": prompt},
|
||||
# Assistant prefill — 첫 토큰을 강제로 '{' 로 시작해 JSON 응답을 보장
|
||||
{"role": "assistant", "content": "{"},
|
||||
],
|
||||
)
|
||||
text = resp.content[0].text if resp.content else ""
|
||||
raw = resp.content[0].text if resp.content else ""
|
||||
# prefill '{' 이 응답에 포함되지 않으므로 다시 붙임
|
||||
text = "{" + raw if not raw.lstrip().startswith("{") else raw
|
||||
in_tokens = int(getattr(resp.usage, "input_tokens", 0) or 0)
|
||||
out_tokens = int(getattr(resp.usage, "output_tokens", 0) or 0)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user