feat(server-ai): stamp modelKey and modelVersion on AI usage events (AIC-2857)#36
Open
atornsii wants to merge 3 commits into
Open
feat(server-ai): stamp modelKey and modelVersion on AI usage events (AIC-2857)#36atornsii wants to merge 3 commits into
atornsii wants to merge 3 commits into
Conversation
…AIC-2857) Read modelKey and modelVersion from the AI Config variation payload and expose them on ModelConfig. Stamp both fields on all AIConfigTracker metric event payloads alongside existing modelName/providerName fields. Default modelVersion to 1 when absent. Exclude both fields from the resumption token. Additive and backward compatible with older payloads. Co-authored-by: Anthony Torns II <atornsii@users.noreply.github.com>
Contributor
|
Holding based on our conversation today and we will follow up on slack before reviewing. |
atornsii
marked this pull request as ready for review
July 9, 2026 20:31
atornsii
marked this pull request as draft
July 15, 2026 21:36
Gonfalon moved these two fields from the payload's model object to _ldMeta (launchdarkly/gonfalon#67230) to avoid modelVersion reading as the underlying LLM's own version. Field names are unchanged; only the JSON location moves. ModelConfig's public accessors and the tracker's stamped event fields are untouched. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
model_key/model_version should only be visible via the tracker's stamped event data, mirroring how variation_key/version are treated. They now flow from the already-parsed _ldMeta fields straight into the tracker factory instead of being attached to ModelConfig. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
atornsii
marked this pull request as ready for review
July 20, 2026 17:36
jsonbailey
approved these changes
Jul 20, 2026
jsonbailey
left a comment
Contributor
There was a problem hiding this comment.
Approved with a non blocking nit.
| provider_config = ProviderConfig.new(provider_config.fetch(:name, '')) | ||
| end | ||
|
|
||
| tracked_model_version = (variation.dig(:_ldMeta, :modelVersion) || 1).to_i |
Contributor
There was a problem hiding this comment.
nit: I would just call this model_version and move it down where we set the model_key value below.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
modelKeyandmodelVersionfrom the AI Config variation payload (variation['model']) and expose them onModelConfigmodelKey(when present) andmodelVersionon allAIConfigTrackermetric event payloads, alongside existingmodelName/providerNamefieldsmodelVersionto1when absent, matching variation version handling; exclude both fields from the resumption tokenPart of AIC-2857 / AIC-2849. Mirrors the Python SDK implementation in python-server-sdk-ai#208. Depends on backend payload work (AIC-2876) shipping
modelKey/modelVersionon variations.Test plan
bundle exec rspec(72 passed)bundle exec rubocopon changed files (no offenses)