From 8f7a940023adf7670656c794a42f1c2be22396ea Mon Sep 17 00:00:00 2001 From: dhunganapramod9 Date: Sat, 28 Feb 2026 01:07:26 -0500 Subject: [PATCH 1/2] fix(chat_web): add argparse choices for --source to avoid KeyError on invalid value --- scripts/chat_web.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/chat_web.py b/scripts/chat_web.py index 66d7806..4d4eacf 100644 --- a/scripts/chat_web.py +++ b/scripts/chat_web.py @@ -62,7 +62,7 @@ MAX_MAX_TOKENS = 4096 parser = argparse.ArgumentParser(description='NanoChat Web Server') parser.add_argument('-n', '--num-gpus', type=int, default=1, help='Number of GPUs to use (default: 1)') -parser.add_argument('-i', '--source', type=str, default="sft", help="Source of the model: sft|rl") +parser.add_argument('-i', '--source', type=str, default="sft", choices=["sft", "rl"], help="Source of the model: sft|rl") parser.add_argument('-t', '--temperature', type=float, default=0.8, help='Default temperature for generation') parser.add_argument('-k', '--top-k', type=int, default=50, help='Default top-k sampling parameter') parser.add_argument('-m', '--max-tokens', type=int, default=512, help='Default max tokens for generation') From 20c385e8f7a53475b7894e4168e044121a8cb419 Mon Sep 17 00:00:00 2001 From: dhunganapramod9 Date: Sat, 28 Feb 2026 01:07:55 -0500 Subject: [PATCH 2/2] fix(chat_web): use removeprefix for SSE chunk to avoid corrupting payload when token contains 'data: ' --- scripts/chat_web.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/chat_web.py b/scripts/chat_web.py index 4d4eacf..c0f9477 100644 --- a/scripts/chat_web.py +++ b/scripts/chat_web.py @@ -360,7 +360,7 @@ async def chat_completions(request: ChatRequest): top_k=request.top_k ): # Accumulate response for logging - chunk_data = json.loads(chunk.replace("data: ", "").strip()) + chunk_data = json.loads(chunk.removeprefix("data: ").strip()) if "token" in chunk_data: response_tokens.append(chunk_data["token"]) yield chunk