From a16ff2ea883b0cecd8c4ba3306b962c0ef3b8a68 Mon Sep 17 00:00:00 2001 From: Hyungi Ahn Date: Mon, 6 Apr 2026 12:52:31 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20max=5Ftokens=20=EC=B6=94=EA=B0=80=20?= =?UTF-8?q?=E2=80=94=20Gemma=2016000,=20EXAONE=204096?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 응답이 중간에 끊기는 문제 해결. ModelAdapter에 max_tokens 파라미터 추가, stream/complete 양쪽 payload에 반영. Co-Authored-By: Claude Opus 4.6 (1M context) --- nanoclaude/services/backend_registry.py | 1 + nanoclaude/services/model_adapter.py | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/nanoclaude/services/backend_registry.py b/nanoclaude/services/backend_registry.py index ac196b7..b72fcfb 100644 --- a/nanoclaude/services/backend_registry.py +++ b/nanoclaude/services/backend_registry.py @@ -58,6 +58,7 @@ class BackendRegistry: system_prompt=REASONER_PROMPT, temperature=settings.reasoning_temperature, timeout=settings.reasoning_timeout, + max_tokens=16000, ) def start_health_loop(self, interval: float = 30.0) -> None: diff --git a/nanoclaude/services/model_adapter.py b/nanoclaude/services/model_adapter.py index 5b289c2..9690709 100644 --- a/nanoclaude/services/model_adapter.py +++ b/nanoclaude/services/model_adapter.py @@ -23,6 +23,7 @@ class ModelAdapter: system_prompt: str, temperature: float = 0.7, timeout: float = 120.0, + max_tokens: int = 4096, ): self.name = name self.base_url = base_url @@ -30,6 +31,7 @@ class ModelAdapter: self.system_prompt = system_prompt self.temperature = temperature self.timeout = timeout + self.max_tokens = max_tokens async def stream_chat(self, message: str, *, messages: list[dict] | None = None) -> AsyncGenerator[str, None]: """스트리밍 호출. content chunk를 yield. messages 직접 전달 가능.""" @@ -43,6 +45,7 @@ class ModelAdapter: "messages": messages, "stream": True, "temperature": self.temperature, + "max_tokens": self.max_tokens, } async with httpx.AsyncClient(timeout=self.timeout) as client: @@ -92,6 +95,7 @@ class ModelAdapter: "messages": messages, "stream": False, "temperature": self.temperature, + "max_tokens": self.max_tokens, } async with httpx.AsyncClient(timeout=self.timeout) as client: