@@ -756,10 +756,13 @@ async def generation(
756756 except Exception as e :
757757 raise HTTPException (status_code = 400 , detail = f"Invalid JSON: { e } " )
758758
759- # --- [Auto-enable stream mode based on header] ---
759+ # --- [Auto-enable stream mode based on headers] ---
760+ # 检查传统的 Accept Header 或者 DashScope 特有的 X-DashScope-SSE Header
760761 accept_header = request .headers .get ("accept" , "" )
761- if "text/event-stream" in accept_header and body .parameters :
762- logger .info ("SSE client detected, forcing incremental_output=True" )
762+ dashscope_sse = request .headers .get ("x-dashscope-sse" , "" ).lower ()
763+
764+ if ("text/event-stream" in accept_header or dashscope_sse == "enable" ) and body .parameters :
765+ logger .debug (f"SSE detected (Accept: { accept_header } , X-DashScope-SSE: { dashscope_sse } ), enabling stream" )
763766 body .parameters .incremental_output = True
764767
765768 # --- [Mock Handling] ---
@@ -810,7 +813,12 @@ async def dynamic_path_generation(
810813 raise HTTPException (status_code = 400 , detail = f"Invalid Request: { e } " )
811814
812815 # 3. Handle SSE
813- if "text/event-stream" in request .headers .get ("accept" , "" ) and body .parameters :
816+ # 检查传统的 Accept Header 或者 DashScope 特有的 X-DashScope-SSE Header
817+ accept_header = request .headers .get ("accept" , "" )
818+ dashscope_sse = request .headers .get ("x-dashscope-sse" , "" ).lower ()
819+
820+ if ("text/event-stream" in accept_header or dashscope_sse == "enable" ) and body .parameters :
821+ logger .debug (f"SSE detected (Accept: { accept_header } , X-DashScope-SSE: { dashscope_sse } ), enabling stream" )
814822 body .parameters .incremental_output = True
815823
816824 # 4. Generate
0 commit comments