From 1ba999bf4f219fd0a520fecda731649efcb03631 Mon Sep 17 00:00:00 2001 From: Wang Defa Date: Tue, 9 Dec 2025 19:08:56 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=B5=81=E5=BC=8F=E5=93=8D?= =?UTF-8?q?=E5=BA=94=E9=BB=98=E8=AE=A4=E8=AE=BE=E7=BD=AE=E4=B8=BA=E9=9D=9E?= =?UTF-8?q?=E6=B5=81=E5=BC=8F=EF=BC=8C=E7=A1=AE=E4=BF=9D=E4=B8=8E=20OpenAI?= =?UTF-8?q?=20=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/routers/chat.py | 13 ++++++++----- src/api/schemas.py | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/api/routers/chat.py b/src/api/routers/chat.py index 5ad9a63..dbcb7ac 100644 --- a/src/api/routers/chat.py +++ b/src/api/routers/chat.py @@ -207,12 +207,15 @@ async def create_chat_completion(request: ChatCompletionRequest): # Extract parameters params = extract_chat_params(request) - # Check global streaming setting - # If streaming is globally disabled, override client request - enable_stream = request.stream and settings.enable_streaming + # Determine streaming mode + # Priority: request.stream (client) > settings.enable_streaming (global) + # Only enable streaming if BOTH conditions are met: + # 1. Client explicitly requests stream=true (default is false per OpenAI standard) + # 2. Global streaming is enabled via ENABLE_STREAMING + enable_stream = request.stream is True and settings.enable_streaming - if not settings.enable_streaming and request.stream: - logger.info("Streaming requested but globally disabled via ENABLE_STREAMING=false") + if request.stream is True and not settings.enable_streaming: + logger.info("Streaming requested by client but globally disabled via ENABLE_STREAMING=false") # Handle streaming if enable_stream: diff --git a/src/api/schemas.py b/src/api/schemas.py index 1e9dd19..fd9c56c 100644 --- a/src/api/schemas.py +++ b/src/api/schemas.py @@ -23,7 +23,7 @@ class ChatCompletionRequest(BaseModel): temperature: Optional[float] = 0.7 top_p: Optional[float] = 1.0 n: Optional[int] = 1 - stream: Optional[bool] = True # Default to streaming + stream: Optional[bool] = False # Default to non-streaming (OpenAI compatible) stop: Optional[Union[str, List[str]]] = None max_tokens: Optional[int] = None presence_penalty: Optional[float] = 0.0