Repository navigation
Omit zero cost_details on generations - #54
Merged
Merged
Conversation
Member
|
Hi @aizerin, thanks for your contribution! |
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
When OpenCode uses a custom or proxy provider (such as LiteLLM) without per-model cost configuration in
opencode.json, OpenCode reportscost: 0on completed assistant messages / generation steps.Currently,
traceGeneration()unconditionally sets:which exports
{"total": 0}asprovided_cost_detailson theopencode.generationspan.In Langfuse's ingestion pipeline (
IngestionService.calculateUsageCosts), any non-emptyprovided_cost_detailstakes precedence over model-based price calculation (if (providedCostKeys.length) return ...), causingtotal_costto remain0even when a matching model definition with pricing tiers exists in Langfuse.This change only sets
langfuse.observation.cost_detailswheninput.cost > 0, allowing Langfuse to compute generation costs from its configured model prices when OpenCode reports0.Verification
test/integration/v1.test.tscovering both step-started and fallback generation spans withcost: 0pnpm run format,pnpm run build,pnpm run lint,pnpm run knip, andpnpm run test:integration