pub struct ProxyContext {Show 19 fields
pub start_time: Instant,
pub request_body: Vec<u8>,
pub model: Option<String>,
pub selected_backend: Option<BackendInfo>,
pub provider_name: Option<String>,
pub stream_state: Option<StreamState>,
pub response_body: Vec<u8>,
pub is_streaming: bool,
pub rewritten_path: Option<String>,
pub is_stream_response: bool,
pub is_conversion_request: bool,
pub stream_body_parsed_offset: usize,
pub normalized_path: Option<String>,
pub should_convert_stream_response: bool,
pub upstream_status: Option<u16>,
pub upstream_content_type: Option<String>,
pub stream_chunks_parsed: usize,
pub pending_conversation_messages: Option<Vec<ChatMessage>>,
pub pending_instructions: Option<String>,
}Expand description
Proxy context attached to each request session.
Fields§
§start_time: InstantRequest start time for duration tracking.
request_body: Vec<u8>Collected request body bytes.
model: Option<String>Model name parsed from request.
selected_backend: Option<BackendInfo>Selected backend for this request.
provider_name: Option<String>Provider name.
stream_state: Option<StreamState>Stream state for SSE conversion (also used for non-streaming conversion context).
response_body: Vec<u8>Response body collected for conversion.
is_streaming: boolWhether streaming is enabled.
rewritten_path: Option<String>Rewritten upstream path.
is_stream_response: boolWhether this is a streaming response (for conversion tracking).
is_conversion_request: boolWhether this is a conversion request (Responses API -> Chat API).
stream_body_parsed_offset: usizeOffset in response_body that has been parsed (to avoid re-parsing events).
normalized_path: Option<String>Request path after optional routing prefix stripping.
should_convert_stream_response: boolWhether current upstream response should be converted as SSE stream.
upstream_status: Option<u16>Upstream status code captured in response_filter for diagnostics.
upstream_content_type: Option<String>Upstream content-type captured in response_filter for diagnostics.
stream_chunks_parsed: usizeNumber of valid upstream chat stream chunks parsed.
pending_conversation_messages: Option<Vec<ChatMessage>>Conversation messages before upstream response (for follow-up turn storage).
pending_instructions: Option<String>Effective instructions used for this request after previous_response expansion.
Implementations§
Source§impl ProxyContext
impl ProxyContext
Sourcepub fn init_from_request_body(&mut self)
pub fn init_from_request_body(&mut self)
Parse model name and stream flag from request body. Initializes StreamState for ALL conversion requests (both streaming and non-streaming). StreamState holds ResponseRequestContext for protocol-aligned response generation.
Sourcepub fn set_response_request_context(&mut self, context: ResponseRequestContext)
pub fn set_response_request_context(&mut self, context: ResponseRequestContext)
Set the response request context from a parsed ResponseRequest. This should be called during request_body_filter processing.