Skip to content

[OPIK-5241] [BE] infra: auto-sync llm-models-default.yaml to CDN on model update#6126

Merged
obezpalko merged 5 commits intomainfrom
OPIK-5241-infra-set-up-cdn-url-for-llm-model-registry-yaml
Apr 9, 2026
Merged

[OPIK-5241] [BE] infra: auto-sync llm-models-default.yaml to CDN on model update#6126
obezpalko merged 5 commits intomainfrom
OPIK-5241-infra-set-up-cdn-url-for-llm-model-registry-yaml

Conversation

@obezpalko
Copy link
Copy Markdown
Contributor

Details

Adds two automated behaviors to the daily provider model sync workflow:

  1. YAML regenerationsync_provider_models.py now also regenerates llm-models-default.yaml (the runtime registry consumed by LlmModelRegistryService) alongside the existing Java enum and TypeScript files. This ensures the CDN-hosted YAML stays in sync with every model update. Reasoning flags are carried over from the existing file; all other properties (structuredOutput, qualifiedName for VertexAI) are derived from the same sources as the Java enums.
  2. CDN upload — after a successful sync, the updated YAML is uploaded to s3://cdn.comet.ml/opik/llm-models-default.yaml and the CloudFront distribution is invalidated so consumers pick up the new file within the configured TTL.

Change checklist

  • User facing
  • Documentation update

Issues

  • Resolves #
  • OPIK-5241

AI-WATERMARK

AI-WATERMARK: yes

  • If yes:
    • Tools: Claude Code
    • Model(s): claude-sonnet-4-6
    • Scope: New regenerate_llm_models_yaml() function in sync script + workflow S3/CloudFront steps
    • Human verification: Review YAML output format matches llm-models-default.yaml schema; verify AWS credential/role/bucket/distribution variable names match infra setup

Testing

  • python scripts/sync_provider_models.py --dry-run — passes, no errors
  • python -c "from scripts/sync_provider_models import regenerate_llm_models_yaml ..." — verified correct YAML output: structuredOutput, reasoning, and VertexAI qualifiedName fields all render correctly; empty provider sections emit [] (valid YAML, avoids null deserialization in Jackson)
  • AWS steps not run locally — depends on infra secrets/vars available only in CI

Documentation

N/A

@obezpalko obezpalko requested review from a team as code owners April 8, 2026 11:11
@github-actions github-actions bot added python Pull requests that update Python code Infrastructure labels Apr 8, 2026
@obezpalko obezpalko merged commit 8ddb185 into main Apr 9, 2026
8 checks passed
@obezpalko obezpalko deleted the OPIK-5241-infra-set-up-cdn-url-for-llm-model-registry-yaml branch April 9, 2026 16:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Infrastructure python Pull requests that update Python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants