ReasoningEffortFromChat normalizes chat-config reasoning effort values for a provider and returns the canonical provider effort value.
(provider string, value *string)
| 723 | // ReasoningEffortFromChat normalizes chat-config reasoning effort values for a |
| 724 | // provider and returns the canonical provider effort value. |
| 725 | func ReasoningEffortFromChat(provider string, value *string) *string { |
| 726 | if value == nil { |
| 727 | return nil |
| 728 | } |
| 729 | |
| 730 | normalized := strings.ToLower(strings.TrimSpace(*value)) |
| 731 | if normalized == "" { |
| 732 | return nil |
| 733 | } |
| 734 | |
| 735 | switch NormalizeProvider(provider) { |
| 736 | case fantasyopenai.Name: |
| 737 | effort := chatopenai.ReasoningEffortFromChat(value) |
| 738 | if effort == nil { |
| 739 | return nil |
| 740 | } |
| 741 | valueCopy := string(*effort) |
| 742 | return &valueCopy |
| 743 | case fantasyanthropic.Name: |
| 744 | return chatutil.NormalizedEnumValue( |
| 745 | normalized, |
| 746 | string(fantasyanthropic.EffortLow), |
| 747 | string(fantasyanthropic.EffortMedium), |
| 748 | string(fantasyanthropic.EffortHigh), |
| 749 | string(fantasyanthropic.EffortXHigh), |
| 750 | string(fantasyanthropic.EffortMax), |
| 751 | ) |
| 752 | case fantasyopenrouter.Name: |
| 753 | return chatutil.NormalizedEnumValue( |
| 754 | normalized, |
| 755 | string(fantasyopenrouter.ReasoningEffortLow), |
| 756 | string(fantasyopenrouter.ReasoningEffortMedium), |
| 757 | string(fantasyopenrouter.ReasoningEffortHigh), |
| 758 | ) |
| 759 | case fantasyvercel.Name: |
| 760 | return chatutil.NormalizedEnumValue( |
| 761 | normalized, |
| 762 | string(fantasyvercel.ReasoningEffortNone), |
| 763 | string(fantasyvercel.ReasoningEffortMinimal), |
| 764 | string(fantasyvercel.ReasoningEffortLow), |
| 765 | string(fantasyvercel.ReasoningEffortMedium), |
| 766 | string(fantasyvercel.ReasoningEffortHigh), |
| 767 | string(fantasyvercel.ReasoningEffortXHigh), |
| 768 | ) |
| 769 | default: |
| 770 | return nil |
| 771 | } |
| 772 | } |
| 773 | |
| 774 | // MergeMissingModelCostConfig fills unset pricing metadata from defaults. |
| 775 | func MergeMissingModelCostConfig( |