Skip to content

feat: respnoses api error cache handler#599

Merged
zijiren233 merged 3 commits into
labring:mainfrom
zijiren233:responses-error-cache2
Jun 13, 2026
Merged

feat: respnoses api error cache handler#599
zijiren233 merged 3 commits into
labring:mainfrom
zijiren233:responses-error-cache2

Conversation

@zijiren233

Copy link
Copy Markdown
Member

No description provided.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR improves the relay’s handling of OpenAI “Responses API” (and related adapters) by (1) rewriting outbound model fields back to the client-requested/origin model, and (2) strengthening streaming error handling—especially around lifecycle events and late-arriving error events.

Changes:

  • Generalize stream scanner sizing to consider multiple model names (origin + actual), ensuring image-model streams get the larger buffer even when models are mapped.
  • Add keepalive stream event support and parse/propagate error objects on Responses API SSE events; implement buffering logic to avoid emitting lifecycle events too early when an error is imminent.
  • Rewrite top-level and nested model fields in Responses + Video outputs to return origin model names consistently; update adapter conversions and tests accordingly.

Reviewed changes

Copilot reviewed 26 out of 26 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
core/relay/utils/utils.go NewStreamScanner now accepts multiple model names; uses image buffer if any matches image models.
core/relay/utils/utils_test.go Adds coverage to ensure mapped image models get the larger scanner buffer.
core/relay/utils/reasoning.go Refactors FirstMatchingModelName to accept variadic model names and updates internal callers.
core/relay/model/response.go Adds keepalive event constant and error field to stream event model.
core/relay/adaptor/vertexai/adaptor.go Updates FirstMatchingModelName call signature usage.
core/relay/adaptor/qianfan/adaptor.go Updates FirstMatchingModelName call signature usage.
core/relay/adaptor/openai/video.go Rewrites top-level model in video JSON responses back to origin model.
core/relay/adaptor/openai/response.go Adds Responses API model rewriting + new streaming scan/buffer/error handling logic.
core/relay/adaptor/openai/response_test.go Adds/updates tests for stream buffering/error behavior and model rewriting.
core/relay/adaptor/openai/reasoning.go Updates FirstMatchingModelName call signature usage.
core/relay/adaptor/openai/image.go Ensures scanner sizing considers origin + actual model names.
core/relay/adaptor/openai/gemini.go Uses origin model name in Gemini responses; strengthens stream error handling.
core/relay/adaptor/openai/gemini_to_responses_test.go Updates expected Gemini model version to origin model.
core/relay/adaptor/openai/gemini_test.go Adds coverage for error handling before downstream writes.
core/relay/adaptor/openai/claude.go Uses origin model name in Claude responses; strengthens stream error handling.
core/relay/adaptor/openai/claude_test.go Updates expected Claude model and adds stream error test.
core/relay/adaptor/openai/chat.go Introduces responseModelName helper; improves stream error handling and output filtering.
core/relay/adaptor/openai/chat_test.go Updates/extends tests for stream done/error behavior and origin model propagation.
core/relay/adaptor/gemini/openai.go Updates FirstMatchingModelName call signature usage.
core/relay/adaptor/gemini/adaptor.go Updates FirstMatchingModelName call signature usage.
core/relay/adaptor/doubao/main.go Updates FirstMatchingModelName call signature usage.
core/relay/adaptor/doubao/chat.go Updates FirstMatchingModelName call signature usage.
core/relay/adaptor/baidu/adaptor.go Updates FirstMatchingModelName call signature usage.
core/relay/adaptor/anthropic/utils.go Updates FirstMatchingModelName call signature usage.
core/relay/adaptor/anthropic/openai.go Updates FirstMatchingModelName call signature usage.
core/relay/adaptor/ali/chat.go Updates FirstMatchingModelName call signature usage.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread core/relay/adaptor/openai/response.go
Comment thread core/relay/adaptor/openai/response_test.go
Comment thread core/relay/adaptor/openai/chat.go
Comment thread core/relay/adaptor/openai/response.go Outdated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 26 out of 26 changed files in this pull request and generated no new comments.

@zijiren233 zijiren233 merged commit 7deb018 into labring:main Jun 13, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants