INNER CODE UNIT · Go
r
sozercan/kubectl-ai · cmd/cli/completion.go:71
r := retry.WithMaxRetries(maxRetries, retry.NewExponential(1*time.Second))
if err := retry.Do(ctx, r, func(ctx context.Context) error {
resp, err = client.openaiGptChatCompletion(ctx, &prompt, temp)
requestErr := &openai.APIError{}
if errors.As(err, &requestErr) {
switch requestErr.HTTPStatusCode {
case http.StatusTooManyRequests, http.StatusRequestTimeout, http.StatusInternalServerError, http.StatusBadGateway, http.StatusServiceUnavailable, http.StatusGatewayTimeout:
log.Debugf("retrying due to status code %d: %s", requestErr.HTTPStatusCode, requestErr.Message)
return retry.RetryableError(err)
}
}
return nil
}); err != nil {
return "", err
}
return resp, nil