Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type RestoringReader ¶
type RestoringReader struct {
// contains filtered or unexported fields
}
RestoringReader restores placeholders for arbitrary "continuous byte streams" (supports across chunk boundaries).
Use cases:
- Upstream returns application/json but streams via chunked/long connections (non-standard SSE). Reading all before restoring can cause long periods of no downstream output (appears "stuck").
Note: this Reader does not attempt to understand JSON structure; it only does byte-level placeholder matching/restoring.
func NewRestoringReader ¶
func NewRestoringReader(upstream io.ReadCloser, restorer *restore.Engine) *RestoringReader
func (*RestoringReader) Close ¶
func (r *RestoringReader) Close() error
type SSERestoringReader ¶
type SSERestoringReader struct {
// contains filtered or unexported fields
}
SSERestoringReader wraps an io.ReadCloser and restores placeholders in SSE events.
Key point: SSE streaming outputs from OpenAI-compatible APIs often deliver text as incremental "delta" fragments. Placeholders may be split across multiple SSE events, so "replace per event" can fail. This reader restores placeholders across delta events, while still keeping a whole-event fallback.
func NewSSERestoringReader ¶
func NewSSERestoringReader(upstream io.ReadCloser, restorer *restore.Engine) *SSERestoringReader
NewSSERestoringReader creates a new SSE restoring reader
func (*SSERestoringReader) Close ¶
func (r *SSERestoringReader) Close() error
Close implements io.Closer