| 195 | } |
| 196 | |
| 197 | func (p *OpenAI) KeyFailoverConfig(logger slog.Logger) keypool.KeyFailoverConfig { |
| 198 | return keypool.KeyFailoverConfig{ |
| 199 | Pool: p.cfg.KeyPool, |
| 200 | ProviderName: p.Name(), |
| 201 | Logger: logger, |
| 202 | IsBYOK: func(r *http.Request) bool { |
| 203 | return r.Header.Get("Authorization") != "" |
| 204 | }, |
| 205 | InjectAuthKey: func(h *http.Header, key string) { |
| 206 | h.Set("Authorization", "Bearer "+key) |
| 207 | }, |
| 208 | BuildKeyPoolResponse: func(keyPoolErr *keypool.Error) *http.Response { |
| 209 | return intercept.ResponseErrorFromKeyPool(keyPoolErr).ToResponse() |
| 210 | }, |
| 211 | } |
| 212 | } |
| 213 | |
| 214 | func (p *OpenAI) CircuitBreakerConfig() *config.CircuitBreaker { |
| 215 | return p.circuitBreaker |