@@ -555,10 +555,19 @@ func (c *Client) call(ctx context.Context, request openai.ChatCompletionRequest,
555
555
var (
556
556
headers map [string ]string
557
557
modelProviderEnv []string
558
+ retryOpts = []openai.RetryOptions {
559
+ {
560
+ Retries : 5 ,
561
+ RetryAboveCode : 499 , // 5xx errors
562
+ RetryCodes : []int {429 }, // 429 Too Many Requests (ratelimit)
563
+ },
564
+ }
558
565
)
559
566
for _ , e := range env {
560
567
if strings .HasPrefix (e , "GPTSCRIPT_MODEL_PROVIDER_" ) {
561
568
modelProviderEnv = append (modelProviderEnv , e )
569
+ } else if strings .HasPrefix (e , "GPTSCRIPT_DISABLE_RETRIES" ) {
570
+ retryOpts = nil
562
571
}
563
572
}
564
573
@@ -572,7 +581,7 @@ func (c *Client) call(ctx context.Context, request openai.ChatCompletionRequest,
572
581
573
582
if ! streamResponse {
574
583
request .StreamOptions = nil
575
- resp , err := c .c .CreateChatCompletion (ctx , request , headers )
584
+ resp , err := c .c .CreateChatCompletion (ctx , request , headers , retryOpts ... )
576
585
if err != nil {
577
586
return types.CompletionMessage {}, err
578
587
}
@@ -597,7 +606,7 @@ func (c *Client) call(ctx context.Context, request openai.ChatCompletionRequest,
597
606
}), nil
598
607
}
599
608
600
- stream , err := c .c .CreateChatCompletionStream (ctx , request , headers )
609
+ stream , err := c .c .CreateChatCompletionStream (ctx , request , headers , retryOpts ... )
601
610
if err != nil {
602
611
return types.CompletionMessage {}, err
603
612
}
0 commit comments