[NA] [BE][FE] chore: sync provider model definitions - #7941
Conversation
⏱️ pre-commit per-hook timing
⏭️ 40 skipped (no matching files changed)
|
| - id: "stealth/ox-alpha" | ||
| label: "stealth/ox-alpha" | ||
| - id: "stepfun-ai/step3" | ||
| label: "stepfun-ai/step3" | ||
| - id: "stepfun/step-3.5-flash" |
There was a problem hiding this comment.
Structured-capable judges use wrong strategy
The newly selectable records omit structuredOutput and reasoning, so LlmModelDefinition defaults both to false, causing LlmProviderFactoryImpl.getStructuredOutputStrategy to select InstructionStrategy for supported models and isReasoningModel to misclassify Ox Alpha. Should we emit the source capability flags or exclude unsupported combinations instead?
Want Baz to fix this for you? Activate Fixer
Other fix methods
Prompt for AI Agents
Before applying, verify this suggestion against the current code. In
`apps/opik-backend/src/main/resources/llm-models-default.yaml` around lines 1536-1540,
update the newly added model definitions and adjacent Tencent entries so their
`structuredOutput` and `reasoning` flags reflect the authoritative OpenRouter
capabilities instead of relying on false-by-omission defaults. Ensure `stealth/ox-alpha`
is marked as reasoning-capable and supports the applicable structured/tool output
strategy, and mark `tencent/hy-mt2-30b-a3b` as structured-output capable; verify the
remaining new model’s capabilities as well. If a model’s supported capability
combination cannot be represented accurately, remove it rather than publishing incorrect
metadata that affects `LlmProviderFactoryImpl.getStructuredOutputStrategy` and the
frontend’s `isReasoningModel` logic.
| - id: "tencent/hy-mt2-1.8b" | ||
| label: "tencent/hy-mt2-1.8b" | ||
| - id: "tencent/hy-mt2-30b-a3b" | ||
| label: "tencent/hy-mt2-30b-a3b" |
There was a problem hiding this comment.
Tencent usage is silently free
The sync exposes both paid Tencent models as selectable OpenRouter records even though tencent/hy-mt2-1.8b and tencent/hy-mt2-30b-a3b lack entries in model_prices_and_context_window.json or model_prices_overrides.json, so CostService returns ModelPrice.empty() when its openrouter lookup and tencent prefix fallback fail, leaving spans and BudgetGuard with zero cost — should we add authoritative price rows/aliases before exposing them or reject/flag them as unpriced during sync?
Want Baz to fix this for you? Activate Fixer
Other fix methods
Prompt for AI Agents
Before applying, verify this suggestion against the current code. In
apps/opik-backend/src/main/resources/llm-models-default.yaml around lines 1550-1553,
update the model-sync configuration for `tencent/hy-mt2-1.8b` and
`tencent/hy-mt2-30b-a3b`. Ensure each model has authoritative entries or aliases in the
pricing data consumed by `CostService` before exposing it; otherwise, change the sync
validation to reject or flag these unpriced models so zero-cost usage cannot bypass
spans and `BudgetGuard` limits.
Details
Automated sync of LLM provider model definitions from source APIs and prices JSON.
Sync summary:
Change checklist
Issues
AI-WATERMARK
AI-WATERMARK: yes
sync_provider_models.yml)Testing
Documentation
N/A