fix: Gemma route 시 대화 이력 전달 — 컨텍스트 단절 해결

reasoner_messages에 conversation_store의 최근 10개 메시지 포함.
"더 자세히 설명해줘" 같은 후속 질문이 이전 컨텍스트를 잇도록.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-04-07 08:29:05 +09:00
parent 04027758ec
commit 26ccdb0f5e

View File

@@ -394,10 +394,15 @@ async def run(job: Job) -> None:
kst = timezone(timedelta(hours=9))
now_kst = datetime.now(kst).strftime("%Y년 %m월 %d%H:%M (%A) KST")
reasoner_system = f"{backend_registry.reasoner.system_prompt}\n\n현재 시간: {now_kst} (한국 표준시)"
reasoner_messages = [
{"role": "system", "content": reasoner_system},
{"role": "user", "content": rewritten_message},
]
# 대화 이력을 OpenAI messages 형식으로 변환 (현재 user 메시지 포함됨)
history_msgs = conversation_store.get(user_id)[-10:]
reasoner_messages = [{"role": "system", "content": reasoner_system}]
for m in history_msgs:
reasoner_messages.append({"role": m.role, "content": m.content})
# 현재 메시지가 history 마지막에 없으면 추가 (안전장치)
if not reasoner_messages or reasoner_messages[-1].get("content") != rewritten_message:
reasoner_messages.append({"role": "user", "content": rewritten_message})
try:
ok = await _stream_with_cancel(backend_registry.reasoner, rewritten_message, job, collected, messages=reasoner_messages)