APIKey returns the effective API key for a provider.
(provider string)
| 146 | |
| 147 | // APIKey returns the effective API key for a provider. |
| 148 | func (k ProviderAPIKeys) APIKey(provider string) string { |
| 149 | normalized := NormalizeProvider(provider) |
| 150 | if normalized == "" { |
| 151 | return "" |
| 152 | } |
| 153 | |
| 154 | if k.ByProvider != nil { |
| 155 | if key := strings.TrimSpace(k.ByProvider[normalized]); key != "" { |
| 156 | return key |
| 157 | } |
| 158 | } |
| 159 | |
| 160 | switch normalized { |
| 161 | case fantasyopenai.Name: |
| 162 | return strings.TrimSpace(k.OpenAI) |
| 163 | case fantasyanthropic.Name: |
| 164 | return strings.TrimSpace(k.Anthropic) |
| 165 | default: |
| 166 | return "" |
| 167 | } |
| 168 | } |
| 169 | |
| 170 | // HasProvider reports whether a provider has an explicit resolved entry |
| 171 | // in the provider key map, even when the resolved key is empty. |