File tree Expand file tree Collapse file tree 3 files changed +13
-6
lines changed
openai-core/src/main/scala/io/cequence/openaiscala/service/adapter Expand file tree Collapse file tree 3 files changed +13
-6
lines changed Original file line number Diff line number Diff line change @@ -7,7 +7,7 @@ val scala3 = "3.2.2"
7
7
8
8
ThisBuild / organization := " io.cequence"
9
9
ThisBuild / scalaVersion := scala212
10
- ThisBuild / version := " 1.1.1.RC.9 "
10
+ ThisBuild / version := " 1.1.1.RC.11 "
11
11
ThisBuild / isSnapshot := false
12
12
13
13
lazy val commonSettings = Seq (
Original file line number Diff line number Diff line change @@ -3,6 +3,7 @@ package io.cequence.openaiscala.service.adapter
3
3
import akka .actor .Scheduler
4
4
import akka .stream .Materializer
5
5
import io .cequence .openaiscala .RetryHelpers .RetrySettings
6
+ import io .cequence .openaiscala .Retryable
6
7
import io .cequence .openaiscala .domain .BaseMessage
7
8
import io .cequence .openaiscala .domain .settings .CreateChatCompletionSettings
8
9
import io .cequence .openaiscala .service ._
@@ -44,13 +45,17 @@ trait OpenAIServiceAdapters[S <: CloseableService] {
44
45
45
46
def retry (
46
47
underlying : S ,
47
- log : Option [String => Unit ] = None
48
+ log : Option [String => Unit ] = None ,
49
+ isRetryable : Throwable => Boolean = {
50
+ case Retryable (_) => true
51
+ case _ => false
52
+ }
48
53
)(
49
54
implicit ec : ExecutionContext ,
50
55
retrySettings : RetrySettings ,
51
56
scheduler : Scheduler
52
57
): S =
53
- wrapAndDelegate(new RetryServiceAdapter (underlying, log))
58
+ wrapAndDelegate(new RetryServiceAdapter (underlying, log, isRetryable ))
54
59
55
60
def log (
56
61
underlying : S ,
Original file line number Diff line number Diff line change 1
1
package io .cequence .openaiscala .service .adapter
2
2
3
3
import akka .actor .Scheduler
4
- import io .cequence .openaiscala .RetryHelpers
4
+ import io .cequence .openaiscala .{ RetryHelpers , Retryable }
5
5
import io .cequence .openaiscala .RetryHelpers .RetrySettings
6
6
import io .cequence .wsclient .service .CloseableService
7
7
8
8
import scala .concurrent .{ExecutionContext , Future }
9
9
10
10
private class RetryServiceAdapter [+ S <: CloseableService ](
11
11
underlying : S ,
12
- log : Option [String => Unit ] = None
12
+ log : Option [String => Unit ] = None ,
13
+ isRetryable : Throwable => Boolean
13
14
)(
14
15
implicit ec : ExecutionContext ,
15
16
retrySettings : RetrySettings ,
@@ -24,7 +25,8 @@ private class RetryServiceAdapter[+S <: CloseableService](
24
25
): Future [T ] =
25
26
fun(underlying).retryOnFailure(
26
27
Some (s " ${getFunctionName().capitalize} call failed " ),
27
- log
28
+ log,
29
+ isRetryable
28
30
)
29
31
30
32
override def close (): Unit =
You can’t perform that action at this time.
0 commit comments