ccproxy.streaming.handler¶
ccproxy.streaming.handler
¶
Streaming request handler for SSE and chunked responses.
StreamingHandler
¶
Manages streaming request processing with header preservation and SSE adaptation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
hook_manager
|
HookManager | None
|
Optional hook manager for emitting stream events |
None
|
Source code in ccproxy/streaming/handler.py
should_stream_response
¶
Detect streaming intent from request headers.
- Prefer client
Accept: text/event-stream - Fallback to provider-style
Content-Type: text/event-stream(rare for requests) - Case-insensitive checks
Source code in ccproxy/streaming/handler.py
should_stream
async
¶
Check if request body has stream:true flag.
- Returns False if provider doesn't support streaming
- Parses JSON body for 'stream' field
- Handles parse errors gracefully
Source code in ccproxy/streaming/handler.py
handle_streaming_request
async
¶
handle_streaming_request(
method,
url,
headers,
body,
handler_config,
request_context,
on_headers=None,
client_config=None,
client=None,
)
Create a deferred streaming response that preserves headers.
This always returns a DeferredStreaming response which: - Defers the actual HTTP request until FastAPI sends the response - Captures all upstream headers correctly - Supports SSE processing through handler_config - Provides request tracing and metrics