From 26ccdb0f5e2b14b362c058d9a2e6824102f05232 Mon Sep 17 00:00:00 2001 From: Hyungi Ahn Date: Tue, 7 Apr 2026 08:29:05 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20Gemma=20route=20=EC=8B=9C=20=EB=8C=80?= =?UTF-8?q?=ED=99=94=20=EC=9D=B4=EB=A0=A5=20=EC=A0=84=EB=8B=AC=20=E2=80=94?= =?UTF-8?q?=20=EC=BB=A8=ED=85=8D=EC=8A=A4=ED=8A=B8=20=EB=8B=A8=EC=A0=88=20?= =?UTF-8?q?=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit reasoner_messages에 conversation_store의 최근 10개 메시지 포함. "더 자세히 설명해줘" 같은 후속 질문이 이전 컨텍스트를 잇도록. Co-Authored-By: Claude Opus 4.6 (1M context) --- nanoclaude/services/worker.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/nanoclaude/services/worker.py b/nanoclaude/services/worker.py index d694e5c..8d55679 100644 --- a/nanoclaude/services/worker.py +++ b/nanoclaude/services/worker.py @@ -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)