Compare commits

...

2 Commits

Author SHA1 Message Date
Corey52HZ 620ba04c25
Merge 59658fb60c into cdf0a93e02 2026-09-14 23:34:53 +08:00
Lingxu 59658fb60c fix(server): default `stream` to False to comply with OpenAI spec
The OpenAI Chat Completions API defaults `stream` to false, but ChatRequest.stream
was defaulting to True. As a result, any standard OpenAI-compatible client that
omits the `stream` field receives a `text/event-stream` response where it expects
plain JSON, and fails with:

    AttributeError: 'str' object has no attribute 'choices'

Reproduce (openai==1.59.6):

    from openai import OpenAI
    c = OpenAI(base_url='http://localhost:8998/v1', api_key='none')
    c.chat.completions.create(model='minimind', messages=[{'role':'user','content':'hi'}])

curl with an explicit "stream": false returns correct JSON, confirming the handler
logic is fine and only the default value is at fault.

Explicit `stream=True` requests are unaffected.
2026-09-09 21:27:48 +08:00
1 changed files with 1 additions and 1 deletions

View File

@ -53,7 +53,7 @@ class ChatRequest(BaseModel):
temperature: float = 0.7
top_p: float = 0.92
max_tokens: int = 8192
stream: bool = True
stream: bool = False # 对齐 OpenAI 规范:默认非流式,避免标准客户端不传 stream 时误收 SSE
tools: list = Field(default_factory=list)
open_thinking: bool = False
chat_template_kwargs: dict = None