OLS-3548 Expose temperatureSupported model parameter - #1993
Conversation
Add a temperatureSupported *bool field to ModelParametersSpec so users can disable the temperature parameter for models that reject it (e.g. claude-sonnet-5), mirroring the temperature_supported option added to the service in openshift/lightspeed-service#3000. The field is a pointer with omitempty: when unset it is omitted from the generated olsconfig, letting the service apply its own default (true); an explicit false is propagated verbatim. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: ⛔ Files ignored due to path filters (3)
📒 Files selected for processing (6)
Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review. 📝 WalkthroughWalkthroughThe PR adds optional temperature-support fields to model configuration, documents them in OLM descriptors, propagates values into application-server configuration, and tests omitted and explicitly disabled settings. ChangesTemperature support configuration
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to This PR adds an optional model parameter and propagates explicit values while preserving the existing service default when unset; no actionable merge-blocking risk remains beyond normal checks and review. Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 4 files. (2 skipped: 2 unsupported.) ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
LGTM |
|
@xrajesh: all tests passed! Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
|
/lgtm |
|
/retest |
Summary
Exposes the
temperature_supportedmodel option (added to the service in openshift/lightspeed-service#3000) through theOLSConfigCR, so operator-managed clusters can disable thetemperatureparameter for models that reject it (e.g.claude-sonnet-5) and avoid HTTP 400 errors.Changes
temperatureSupported *boolfield onModelParametersSpec(api/v1alpha1/olsconfig_types.go).buildProviderConfigspasses the value through to the generatedolsconfigparametersblock (assets.go), serialized astemperature_supported.config/crd+bundle) and CSV descriptors updated with just the new property.assets_test.goasserts the key is omitted when unset (service default applies) and propagated asfalsewhen set.Design
*boolwithomitemptyis deliberate. The service default istrue, so a plainboolcould not distinguish unset from an explicitfalse. With a pointer:true). Single source of truth for the default; no risk of the operator's default drifting from the service.true/false→ propagated verbatim.This matches the existing
*boolprecedent in the CRD (logging,introspectionEnabled,auditEventsEnabled).Usage
Test plan
make testpasses (appserver package includes new coverage)make generate manifestsproduces the deepcopy/CRD changes (unrelated pre-existing TLS-profile regeneration drift excluded to keep the diff focused)Note
The operator still mirrors only a subset of the service's
ModelParameters(max_tokens_for_response,tool_budget_ratio, and nowtemperature_supported);reasoning_effort,reasoning_summary,verbosity, andtemperatureremain unexposed. A generic passthrough to close that gap systematically is worth a separate RFE.🤖 Generated with Claude Code
Summary by CodeRabbit
falsevalues while omitting the setting when unspecified.