-
Notifications
You must be signed in to change notification settings - Fork 763
Fix GCP SFT in UI // move GCP SFT configuration into files #5386
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This pull request adds support for GCP Vertex AI Gemini supervised fine-tuning (SFT) in the TensorZero UI. The changes enable users to fine-tune models using GCP's Vertex AI service by configuring GCP-specific parameters (project ID, region, and bucket name) through the UI.
- Integrates GCP Vertex AI Gemini SFT configuration into the UI form with validation
- Adds mock GCP SFT server implementation for E2E testing
- Updates TypeScript bindings to use optional fields instead of nullable fields for optimizer configurations
Reviewed changes
Copilot reviewed 38 out of 39 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| ui/fixtures/regenerate-model-inference-cache.sh | Adds GCP_VERTEX_BASE_URL environment variable for cache regeneration |
| ui/fixtures/docker-compose*.yml | Mounts GCP JWT key file and configures GCP credentials environment variables across test fixtures |
| ui/fixtures/.gitignore | Adds .env-gateway to gitignore to prevent accidental commit of credentials |
| ui/fixtures/.env-gateway | Empty placeholder file for gateway environment variables |
| ui/e2e_tests/optimization.supervised-fine-tuning.spec.ts | Adds E2E test for GCP Vertex Gemini SFT workflow |
| ui/app/utils/tensorzero/tensorzero.ts | Simplifies TensorZeroClient constructor parameter type (removes null union) |
| ui/app/utils/supervised_fine_tuning/native.test.ts | Removes explicitly null fields from test configuration |
| ui/app/utils/supervised_fine_tuning/client.ts | Refactors optimizer configuration to use switch statement and adds GCP Vertex Gemini case |
| ui/app/utils/postgres.server.ts | Changes null check to use double negation operator for consistency |
| ui/app/utils/env.server.ts | Adds GCP_VERTEX_BASE_URL and changes optional environment variables from null to undefined |
| ui/app/routes/optimization/supervised-fine-tuning/types.ts | Adds GCP-specific form fields with conditional validation |
| ui/app/routes/optimization/supervised-fine-tuning/route.tsx | Adds capitalize className to job status badge |
| ui/app/routes/optimization/supervised-fine-tuning/SFTForm.tsx | Adds conditional GCP Vertex AI configuration form fields and disables submit button based on form validity |
| ui/app/components/ui/GatewayRequiredState.tsx | Improves formatting and capitalization of error message text |
| tensorzero-optimizers/src/gcp_vertex_gemini_sft.rs | Updates GCP SFT implementation to use mock server when api_base is provided and generates console URLs |
| tensorzero-core/tests/mock-inference-provider/src/main.rs | Adds routes for mock GCP SFT endpoints |
| tensorzero-core/tests/mock-inference-provider/src/gcp_sft.rs | New file implementing mock GCP tuning job creation and polling |
| tensorzero-core/src/optimization/*/mod.rs | Adds optional_fields attribute to ts_rs exports for cleaner TypeScript bindings |
| internal/tensorzero-node/lib/bindings/*.ts | Updates TypeScript bindings to use optional (?) instead of nullable ( |
| .github/workflows/ui-tests-e2e.yml | Adds GCP_JWT_KEY secret handling and environment variable setup for E2E tests |
| .github/workflows/general.yml | Adds GCP_JWT_KEY secret to ui-tests-e2e job and removes extraneous empty line |
There was a problem hiding this comment.
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 54 out of 55 changed files in this pull request and generated 6 comments.
|
/merge-queue |
|
🚀 Merge queue workflow triggered! View the run: https://github.com/tensorzero/tensorzero/actions/runs/20469312523 |
There was a problem hiding this comment.
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 56 out of 57 changed files in this pull request and generated 7 comments.
Comments suppressed due to low confidence (1)
tensorzero-optimizers/tests/common/gcp_vertex_gemini_sft.rs:9
- The comment says "Currently unused in 'mock_tests.rs'" and the struct is marked with
dead_codeallow. This suggests this test case may not be properly integrated into the test suite. Consider either removing this if it's genuinely not needed, or ensuring it's properly tested as part of the GCP Vertex Gemini SFT functionality.
|
/merge-queue |
|
🚀 Merge queue workflow triggered! View the run: https://github.com/tensorzero/tensorzero/actions/runs/20470379527 |
|
/merge-queue |
|
🚀 Merge queue workflow triggered! View the run: https://github.com/tensorzero/tensorzero/actions/runs/20470876751 |
There was a problem hiding this comment.
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 60 out of 61 changed files in this pull request and generated 2 comments.
There was a problem hiding this comment.
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 61 out of 62 changed files in this pull request and generated no new comments.
|
/merge-queue |
|
🚀 Merge queue workflow triggered! View the run: https://github.com/tensorzero/tensorzero/actions/runs/20471508099 |
There was a problem hiding this comment.
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 62 out of 63 changed files in this pull request and generated 4 comments.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codex Review
Here are some automated review suggestions for this pull request.
ℹ️ 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".
shuyangli
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think putting the provider-specific config options for region, data upload, and encryption into the config is correct. I just have a question about mocking.
|
blind |
There was a problem hiding this comment.
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 62 out of 63 changed files in this pull request and generated no new comments.
Important
Move GCP SFT configuration to files and update UI and backend to support this change, including Docker setup and tests.
provider_types.gcp_vertex_gemini.sftintensorzero.tomlandtensorzero.mock_optimization.toml.SFTForm.tsxto disable submit button if form is invalid.client.ts.GatewayRequiredState.tsxfor clearer messaging.optimization.supervised-fine-tuning.spec.ts.mock_tests.rsto include GCP Vertex Gemini SFT.env.server.tsandpostgres.server.ts.tensorzero.ts.This description was created by
for 7fc3785. You can customize this summary. It will automatically update as commits are pushed.