Skip to content

feat(ark): WithExtraFields for Responses API request JSON#810

Open
jesse-engineer wants to merge 2 commits intocloudwego:mainfrom
jesse-engineer:feat/ark-with-extra-fields
Open

feat(ark): WithExtraFields for Responses API request JSON#810
jesse-engineer wants to merge 2 commits intocloudwego:mainfrom
jesse-engineer:feat/ark-with-extra-fields

Conversation

@jesse-engineer
Copy link
Copy Markdown
Contributor

Summary

Adds ark.WithExtraFields(map[string]any) for ResponsesAPIChatModel, merging extra top-level keys into the serialized Responses API JSON after multimodal preprocessing. Same general idea as openai.WithExtraFields in eino-ext.

Implementation

  • New helpers mergeResponsesRequestExtraJSON, invokeCreateResponses, invokeCreateResponsesStream.
  • Generate, Stream, and CreatePrefixCache route through these when extraFields is non-empty.

Dependency

Uses new arkruntime APIs from volcengine-go-sdk:

Until that PR is merged and released, this PR pins the ark submodule via:

replace github.com/volcengine/volcengine-go-sdk => github.com/jesse-engineer/volcengine-go-sdk v1.2.26-0.20260428150644-cf9db789ee32

After upstream volcengine merges, this PR should drop the replace and bump require to the released version.

Tests

  • responses_merge_test.go for merge behavior and option wiring.
  • Existing ark tests: go test -gcflags="all=-N -l" ./... under components/model/ark.

Made with Cursor

- arkOptions.extraFields and WithExtraFields option
- mergeResponsesRequestExtraJSON: shallow merge into wire JSON after preprocess
- Generate/Stream/CreatePrefixCache use invokeCreateResponses* when extra set
- go.mod replace volcengine-go-sdk to fork commit until upstream merges PR

Depends-on: volcengine/volcengine-go-sdk#151
Made-with: Cursor
Remove local JSON merge; map WithExtraFields to SDK requestOption. Update replace pseudo-version for volcengine PR.

Made-with: Cursor
@jesse-engineer jesse-engineer force-pushed the feat/ark-with-extra-fields branch from c366592 to 13ba969 Compare April 28, 2026 15:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant