Repository navigation
feat: add Vertex AI support for the Responses API - #4139
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Castiron custom codeEvaluated main: Trusted main policy: ✅ No new custom-code files detected. 42 mixed files remain; 0 existing customizations changed. Compared 42 existing customizations unchanged
2 more in the full report. A changed generated baseline means this report cannot reliably identify which handwritten lines changed. Inspect the custom-code diffDownload the exact patch produced by this run (requires repository access): gh run download 39603644511 --repo openai/openai-python \
--name castiron-custom-code-39603644511-1 --dir /tmp/castiron-custom-code-39603644511-1
git apply --stat /tmp/castiron-custom-code-39603644511-1/custom-code.patch
cat /tmp/castiron-custom-code-39603644511-1/custom-code.patchOr reproduce it from an SDK checkout containing the vendored reporter: git fetch --no-tags origin ca541462ba20dadb66eea6c67775f186dfb17e33 d85e8aa399cd6c0a4b6342dbbee720a0897b2af6
python3 scripts/castiron/custom_code_report.py report \
--base ca541462ba20dadb66eea6c67775f186dfb17e33 \
--head d85e8aa399cd6c0a4b6342dbbee720a0897b2af6 --target-branch main --fetch --require-head-hash --public \
--out /tmp/castiron-custom-code-d85e8aa399cd
cat /tmp/castiron-custom-code-d85e8aa399cd/custom-code.patchThis is the current full custom patch for mixed files, not an attribution of only the handwritten lines changed by this PR. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: dc754160d8
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
jbeckwith-oai
left a comment
There was a problem hiding this comment.
Approved after comprehensive static review of all nine changed files, supporting provider/request pipeline, and existing feedback, with an independent runtime review. No actionable findings. Verified lazy optional Google authentication, explicit credential scoping, per-phase timeouts and cancellation behavior, origin/redirect/header boundaries, escaped lifecycle routes, per-attempt tokens, and installed-wheel isolation. The four prior substantive findings are addressed. Hosted checks pass/skip, including build, lint, Python 3.10/3.14, HTTPX2, CodeQL and OkTest. No candidate code or tests ran locally. Live Vertex acceptance remains unverified.
Automated Release PR --- ## [3.36.0](v3.35.1...v3.36.0) (2026-10-21) ### Features * add Vertex AI support for the Responses API ([#4139](#4139)) ([3e63d33](3e63d33)) * **api:** add 30-minute cache-write usage counts ([#4111](#4111)) ([5589146](5589146)) * **api:** add compaction trigger IDs ([#4122](#4122)) ([0e5794d](0e5794d)) * **api:** add custom voice consent management ([#4135](#4135)) ([de6d70d](de6d70d)) * **types:** prepare native synchronous WebSocket option type ([#4118](#4118)) ([90c0bac](90c0bac)) ### Bug Fixes * **api:** accept canonical batch responses in strict mode ([#4106](#4106)) ([6eaa90e](6eaa90e)) * clean up failed WebSocket setup and honor native options ([#4121](#4121)) ([b1a1a10](b1a1a10)) * end sync WebSocket recovery when an attempt is interrupted ([#4129](#4129)) ([337769b](337769b)) * honor timed Translation receives during terminal cleanup ([#4132](#4132)) ([ca54146](ca54146)) * preserve client headers in legacy Beta Realtime connections ([#4130](#4130)) ([8a2a2e0](8a2a2e0)) * preserve declared aliases during Pydantic v1 validation ([#4119](#4119)) ([8b1cac9](8b1cac9)) * preserve Vertex API root for response lifecycle ([#4140](#4140)) ([c2b14f5](c2b14f5)) * preserve WebSocket close across recovery and cancellation ([#4117](#4117)) ([4590ff1](4590ff1)) * **realtime:** honor native options for legacy beta sockets ([#4120](#4120)) ([8968560](8968560)) ### Chores * **api:** clarify cache-write token totals ([#4136](#4136)) ([55b8b8a](55b8b8a)) * **api:** clarify project API key update requirements ([#4131](#4131)) ([0e6be9f](0e6be9f)) * **api:** maintain voice consent compatibility ([#4137](#4137)) ([07abe06](07abe06)) * **api:** use neutral moderation examples ([#4104](#4104)) ([553703e](553703e)) * restore generated Castiron reporting scripts ([#4113](#4113)) ([9d12b56](9d12b56)) * support next checkpoints in the trusted reporter ([#4128](#4128)) ([ae2a6c2](ae2a6c2)) ### Documentation * plan the Python generated-code transition ([#4114](#4114)) ([6a52987](6a52987)) * record Python transition progress and batch follow-up work ([#4116](#4116)) ([46e3680](46e3680)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: openai-sdks[bot] <284451331+openai-sdks[bot]@users.noreply.github.com>
Changes being requested
Add
vertex(...)so the standardOpenAIandAsyncOpenAIclients can send Responses API requests through Google Cloud Vertex AI. Configure a project and location or an explicit API root. Google Application Default Credentials and explicit Google credentials use the optionalopenai[vertex]extra; application-managed token callbacks work with the base package. Credentials are bound to the configured origin, redirects are disabled, and stored-response routes preserve escaped path segments.Additional context & links
Validated with 36 focused provider tests, Ruff, targeted mypy, and the CI wheel check with and without the Vertex extra. The opt-in live Vertex acceptance test was not run.