You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Phenomenon: When using DeepSeek::stream() / streaming chat/completions, the response body is buffered in its entirety on the PHP side, and while (! $response->getBody()->eof()) waits for the upstream to complete before continuing to read data; SSE cannot truly process data edge-to-edge.
Reason (brief description): Although 'stream' => true is present in the request JSON, Laravel HTTP / Guzzle does not have withOptions(['stream' => true]) set, resulting in non-streaming reading of the body.
Comparison: Providers such as OpenAI, Groq, Mistral, and Anthropic within the same warehouse have already written withOptions(['stream' => true]) before post, whereas DeepSeek (and optionally Perplexity HandlesHttpRequests) is inconsistent.
Suggested modification: In the sendRequest() method of src/Providers/DeepSeek/Handlers/Stream.php, add ->withOptions(['stream' => true]) to $this->client in a chained manner (consistent with Groq/Mistral, etc.).
Environment: prism-php/prism version number (e.g. v0.99.22), PHP version, Laravel version (optional).
Reproduction: The minimal reproduction can be described as "issuing a stream request with 'stream: true' to DeepSeek, and observing in the server logs or breakpoints whether 'read()' returns successively during the connection's lifetime" — or explaining that "in the Network, the upstream is chunked, but the PHP side fetches the complete body at once".
Phenomenon: When using DeepSeek::stream() / streaming chat/completions, the response body is buffered in its entirety on the PHP side, and while (! $response->getBody()->eof()) waits for the upstream to complete before continuing to read data; SSE cannot truly process data edge-to-edge.
Reason (brief description): Although 'stream' => true is present in the request JSON, Laravel HTTP / Guzzle does not have withOptions(['stream' => true]) set, resulting in non-streaming reading of the body.
Comparison: Providers such as OpenAI, Groq, Mistral, and Anthropic within the same warehouse have already written withOptions(['stream' => true]) before post, whereas DeepSeek (and optionally Perplexity HandlesHttpRequests) is inconsistent.
Suggested modification: In the sendRequest() method of src/Providers/DeepSeek/Handlers/Stream.php, add ->withOptions(['stream' => true]) to $this->client in a chained manner (consistent with Groq/Mistral, etc.).
Environment: prism-php/prism version number (e.g. v0.99.22), PHP version, Laravel version (optional).
Reproduction: The minimal reproduction can be described as "issuing a stream request with 'stream: true' to DeepSeek, and observing in the server logs or breakpoints whether 'read()' returns successively during the connection's lifetime" — or explaining that "in the Network, the upstream is chunked, but the PHP side fetches the complete body at once".