Commit a103ae1
fix(closes OPEN-11695): strip Gemini models/ prefix and emit priced usageDetails so LangChain cost estimation stops returning $0
Builds on the v1 callback modernization (OPEN-11315), which resolves the
provider from `metadata["ls_provider"]` (ChatGoogleGenerativeAI -> "Google").
Remaining gaps that still produced $0 / empty cost fields:
- Provider anchor: also map the `chat-google-generative-ai` _type to "Google"
in the legacy _type map, so the exact reported string still resolves when
`metadata["ls_provider"]` is absent (older langchain-google-genai, or callers
that don't forward it) -- not just via the ls_provider path.
- Model: strip the Gemini Developer API "models/" prefix (e.g.
"models/gemini-3.5-flash" -> "gemini-3.5-flash"), which the cost table (bare
names) otherwise misses -> $0. Runs before the LiteLLM prefix handling
("models" is never a provider, so it's safe).
- costDetails/usageDetails: the handler surfaced granular token_details only as
informational step metadata, never as a priced column. Emit a per-category
`usageDetails` map so the backend prices it into `costDetails`. LangChain
reports cache/audio categories as overlapping subsets of the input/output
totals, so they are re-partitioned to be non-overlapping and mapped to the
cost table's keys (cache_read -> cached_tokens, cache_creation ->
cache_creation_tokens, audio -> audio_input_tokens/audio_output_tokens);
reasoning stays folded into output_tokens. ChatCompletionStep gains an
optional usage_details field, serialized only when set.
Verified end-to-end against the live pipeline with the customer's inputs
(27131 prompt / 17739 completion): provider=Google, model=gemini-3.5-flash,
cost=0.2003475, costDetails populated; and with 10000 cached input tokens the
partition prices cached tokens at the cheaper rate (cost=0.1868475). Cross-
provider audit confirms the cost table uses these category keys uniformly.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018t3JHc1kK6pPMdVBVwMbTs1 parent 76a798f commit a103ae1
3 files changed
Lines changed: 219 additions & 2 deletions
File tree
- src/openlayer/lib
- integrations
- tracing
- tests/lib/integrations
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
33 | 38 | | |
34 | 39 | | |
35 | 40 | | |
| |||
492 | 497 | | |
493 | 498 | | |
494 | 499 | | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
495 | 508 | | |
496 | 509 | | |
497 | 510 | | |
| |||
581 | 594 | | |
582 | 595 | | |
583 | 596 | | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
584 | 650 | | |
585 | 651 | | |
586 | 652 | | |
| |||
722 | 788 | | |
723 | 789 | | |
724 | 790 | | |
| 791 | + | |
| 792 | + | |
| 793 | + | |
| 794 | + | |
| 795 | + | |
| 796 | + | |
| 797 | + | |
| 798 | + | |
| 799 | + | |
| 800 | + | |
| 801 | + | |
| 802 | + | |
725 | 803 | | |
726 | 804 | | |
727 | 805 | | |
| |||
1104 | 1182 | | |
1105 | 1183 | | |
1106 | 1184 | | |
| 1185 | + | |
| 1186 | + | |
1107 | 1187 | | |
1108 | | - | |
1109 | | - | |
| 1188 | + | |
| 1189 | + | |
1110 | 1190 | | |
1111 | 1191 | | |
| 1192 | + | |
| 1193 | + | |
| 1194 | + | |
| 1195 | + | |
| 1196 | + | |
| 1197 | + | |
| 1198 | + | |
| 1199 | + | |
1112 | 1200 | | |
1113 | 1201 | | |
1114 | 1202 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
187 | 187 | | |
188 | 188 | | |
189 | 189 | | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
190 | 195 | | |
191 | 196 | | |
192 | 197 | | |
| |||
203 | 208 | | |
204 | 209 | | |
205 | 210 | | |
| 211 | + | |
| 212 | + | |
206 | 213 | | |
207 | 214 | | |
208 | 215 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
583 | 583 | | |
584 | 584 | | |
585 | 585 | | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
0 commit comments