Skip to content

Commit bd70dc0

Browse files
committed
Core adapter relocated to ws-client-core
1 parent f959124 commit bd70dc0

16 files changed

+52
-304
lines changed

openai-client-stream/src/main/scala/io/cequence/openaiscala/service/OpenAIStreamedServiceImplicits.scala

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,14 @@ import akka.NotUsed
44
import akka.stream.Materializer
55
import akka.stream.scaladsl.Source
66
import io.cequence.openaiscala.domain.BaseMessage
7-
import io.cequence.openaiscala.domain.response.{
8-
ChatCompletionChunkResponse,
9-
TextCompletionResponse
10-
}
11-
import io.cequence.openaiscala.domain.settings.{
12-
CreateChatCompletionSettings,
13-
CreateCompletionSettings
14-
}
7+
import io.cequence.openaiscala.domain.response.{ChatCompletionChunkResponse, TextCompletionResponse}
8+
import io.cequence.openaiscala.domain.settings.{CreateChatCompletionSettings, CreateCompletionSettings}
159
import io.cequence.openaiscala.service.StreamedServiceTypes.OpenAIStreamedService
16-
import io.cequence.openaiscala.service.adapter.ServiceWrapperTypes.CloseableServiceWrapper
17-
import io.cequence.openaiscala.service.adapter.{
18-
OpenAIChatCompletionServiceWrapper,
19-
OpenAICoreServiceWrapper,
20-
OpenAIServiceWrapper,
21-
SimpleServiceWrapper
22-
}
10+
import io.cequence.openaiscala.service.adapter.{OpenAIChatCompletionServiceWrapper, OpenAICoreServiceWrapper, OpenAIServiceWrapper}
2311
import io.cequence.wsclient.domain.WsRequestContext
2412
import io.cequence.wsclient.service.CloseableService
13+
import io.cequence.wsclient.service.adapter.ServiceWrapperTypes.CloseableServiceWrapper
14+
import io.cequence.wsclient.service.adapter.SimpleServiceWrapper
2515

2616
import scala.concurrent.ExecutionContext
2717

openai-core/src/main/scala/io/cequence/openaiscala/RetryHelpers.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ trait RetryHelpers {
8585

8686
private val logger = LoggerFactory.getLogger(this.getClass)
8787

88+
// TODO: would be better to reevaluate the future otherwise we handle give a chance only to "external" exceptions
8889
implicit class FutureWithRetry[T](f: Future[T]) {
8990

9091
def retryOnFailure(

openai-core/src/main/scala/io/cequence/openaiscala/StackWalkerUtil.java

Lines changed: 0 additions & 22 deletions
This file was deleted.

openai-core/src/main/scala/io/cequence/openaiscala/service/adapter/ChatCompletionInputAdapter.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import io.cequence.openaiscala.domain.response.ChatCompletionResponse
55
import io.cequence.openaiscala.domain.settings.CreateChatCompletionSettings
66
import io.cequence.openaiscala.service.OpenAIChatCompletionService
77
import io.cequence.wsclient.service.CloseableService
8+
import io.cequence.wsclient.service.adapter.ServiceWrapper
89

910
import scala.concurrent.Future
1011

@@ -18,7 +19,7 @@ private class ChatCompletionInputAdapter[S <: OpenAIChatCompletionService](
1819
with OpenAIChatCompletionService {
1920

2021
// we just delegate all the calls to the underlying service
21-
override protected[adapter] def wrap[T](
22+
override def wrap[T](
2223
fun: S => Future[T]
2324
): Future[T] = fun(underlying)
2425

openai-core/src/main/scala/io/cequence/openaiscala/service/adapter/ChatCompletionServiceAdapter.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import io.cequence.wsclient.service.CloseableService
77

88
import scala.concurrent.Future
99
import io.cequence.openaiscala.domain.response.ChatCompletionResponse
10+
import io.cequence.wsclient.service.adapter.ServiceWrapper
1011

1112
private class ChatCompletionServiceAdapter[S <: CloseableService](
1213
chatCompletionService: OpenAIChatCompletionService,
@@ -16,7 +17,7 @@ private class ChatCompletionServiceAdapter[S <: CloseableService](
1617
with OpenAIChatCompletionService {
1718

1819
// we just delegate all the calls to the underlying service
19-
override protected[adapter] def wrap[T](
20+
override def wrap[T](
2021
fun: S => Future[T]
2122
): Future[T] = fun(underlying)
2223

openai-core/src/main/scala/io/cequence/openaiscala/service/adapter/ChatToCompletionAdapter.scala

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,12 @@
11
package io.cequence.openaiscala.service.adapter
22

33
import io.cequence.openaiscala.OpenAIScalaClientException
4-
import io.cequence.openaiscala.domain.{
5-
AssistantMessage,
6-
BaseMessage,
7-
SystemMessage,
8-
UserMessage
9-
}
10-
import io.cequence.openaiscala.domain.response.{
11-
ChatCompletionChoiceInfo,
12-
ChatCompletionResponse,
13-
TextCompletionResponse
14-
}
15-
import io.cequence.openaiscala.domain.settings.{
16-
CreateChatCompletionSettings,
17-
CreateCompletionSettings
18-
}
4+
import io.cequence.openaiscala.domain.{AssistantMessage, BaseMessage, SystemMessage, UserMessage}
5+
import io.cequence.openaiscala.domain.response.{ChatCompletionChoiceInfo, ChatCompletionResponse, TextCompletionResponse}
6+
import io.cequence.openaiscala.domain.settings.{CreateChatCompletionSettings, CreateCompletionSettings}
197
import io.cequence.openaiscala.service.{OpenAIChatCompletionService, OpenAICompletionService}
208
import io.cequence.wsclient.service.CloseableService
9+
import io.cequence.wsclient.service.adapter.ServiceWrapper
2110

2211
import scala.concurrent.{ExecutionContext, Future}
2312

@@ -32,7 +21,7 @@ private class ChatToCompletionAdapter[
3221
with OpenAIChatCompletionService {
3322

3423
// we just delegate all the calls to the underlying service
35-
override protected[adapter] def wrap[T](
24+
override def wrap[T](
3625
fun: S => Future[T]
3726
): Future[T] = fun(underlying)
3827

openai-core/src/main/scala/io/cequence/openaiscala/service/adapter/LogServiceAdapter.scala

Lines changed: 0 additions & 40 deletions
This file was deleted.

openai-core/src/main/scala/io/cequence/openaiscala/service/adapter/MultiServiceAdapter.scala

Lines changed: 0 additions & 39 deletions
This file was deleted.

openai-core/src/main/scala/io/cequence/openaiscala/service/adapter/OpenAIServiceAdapters.scala

Lines changed: 3 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
11
package io.cequence.openaiscala.service.adapter
22

3-
import akka.actor.Scheduler
4-
import akka.stream.Materializer
5-
import io.cequence.openaiscala.RetryHelpers.RetrySettings
6-
import io.cequence.openaiscala.Retryable
73
import io.cequence.openaiscala.domain.BaseMessage
84
import io.cequence.openaiscala.domain.settings.CreateChatCompletionSettings
95
import io.cequence.openaiscala.service._
106
import io.cequence.openaiscala.service.adapter.ServiceWrapperTypes._
117
import io.cequence.wsclient.service.CloseableService
8+
import io.cequence.wsclient.service.adapter.ServiceWrapperTypes.CloseableServiceWrapper
129

13-
import scala.concurrent.{ExecutionContext, Future}
10+
import scala.concurrent.ExecutionContext
1411

1512
object OpenAIServiceAdapters {
1613

@@ -24,53 +21,7 @@ object OpenAIServiceAdapters {
2421
new OpenAIServiceAdaptersImpl()
2522
}
2623

27-
trait OpenAIServiceAdapters[S <: CloseableService] {
28-
29-
def roundRobin(
30-
underlyings: S*
31-
): S =
32-
wrapAndDelegate(new RoundRobinAdapter(underlyings))
33-
34-
def randomOrder(
35-
underlyings: S*
36-
): S =
37-
wrapAndDelegate(new RandomOrderAdapter(underlyings))
38-
39-
def parallelTakeFirst(
40-
underlyings: S*
41-
)(
42-
implicit materializer: Materializer
43-
): S =
44-
wrapAndDelegate(new ParallelTakeFirstAdapter(underlyings))
45-
46-
def retry(
47-
underlying: S,
48-
log: Option[String => Unit] = None,
49-
isRetryable: Throwable => Boolean = {
50-
case Retryable(_) => true
51-
case _ => false
52-
}
53-
)(
54-
implicit ec: ExecutionContext,
55-
retrySettings: RetrySettings,
56-
scheduler: Scheduler
57-
): S =
58-
wrapAndDelegate(new RetryServiceAdapter(underlying, log, isRetryable))
59-
60-
def log(
61-
underlying: S,
62-
serviceName: String,
63-
log: String => Unit
64-
): S =
65-
wrapAndDelegate(new LogServiceAdapter(underlying, serviceName, log))
66-
67-
def preAction(
68-
underlying: S,
69-
action: () => Future[Unit]
70-
)(
71-
implicit ec: ExecutionContext
72-
): S =
73-
wrapAndDelegate(new PreServiceAdapter(underlying, action))
24+
trait OpenAIServiceAdapters[S <: CloseableService] extends ServiceAdapters[S] {
7425

7526
def chatCompletion(
7627
chatCompletionService: OpenAIChatCompletionService,
@@ -119,10 +70,6 @@ trait OpenAIServiceAdapters[S <: CloseableService] {
11970
): S =
12071
wrapAndDelegateChatCompletion(new ChatToCompletionAdapter(service))
12172

122-
protected def wrapAndDelegate(
123-
delegate: CloseableServiceWrapper[S]
124-
): S
125-
12673
protected def wrapAndDelegateChatCompletion(
12774
delegate: ChatCompletionCloseableServiceWrapper[S]
12875
): S

openai-core/src/main/scala/io/cequence/openaiscala/service/adapter/OpenAIServiceWrapper.scala

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,9 @@ import io.cequence.openaiscala.domain._
77
import io.cequence.openaiscala.domain.response._
88
import io.cequence.openaiscala.domain.settings._
99
import io.cequence.openaiscala.service.adapter.ServiceWrapperTypes._
10-
import io.cequence.openaiscala.service.{
11-
OpenAIChatCompletionService,
12-
OpenAICoreService,
13-
OpenAIService
14-
}
10+
import io.cequence.openaiscala.service.{OpenAIChatCompletionService, OpenAICoreService, OpenAIService}
11+
import io.cequence.wsclient.service.adapter.DelegatedCloseableServiceWrapper
12+
import io.cequence.wsclient.service.adapter.ServiceWrapperTypes.CloseableServiceWrapper
1513

1614
import java.io.File
1715
import scala.concurrent.Future

openai-core/src/main/scala/io/cequence/openaiscala/service/adapter/ParallelTakeFirstAdapter.scala

Lines changed: 0 additions & 33 deletions
This file was deleted.

openai-core/src/main/scala/io/cequence/openaiscala/service/adapter/PreServiceAdapter.scala

Lines changed: 0 additions & 23 deletions
This file was deleted.

openai-core/src/main/scala/io/cequence/openaiscala/service/adapter/RetryServiceAdapter.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import akka.actor.Scheduler
44
import io.cequence.openaiscala.RetryHelpers
55
import io.cequence.openaiscala.RetryHelpers.RetrySettings
66
import io.cequence.wsclient.service.CloseableService
7+
import io.cequence.wsclient.service.adapter.{FunctionNameHelper, ServiceWrapper}
78

89
import scala.concurrent.{ExecutionContext, Future}
910

@@ -20,7 +21,7 @@ private class RetryServiceAdapter[+S <: CloseableService](
2021
with FunctionNameHelper
2122
with RetryHelpers {
2223

23-
override protected[adapter] def wrap[T](
24+
override def wrap[T](
2425
fun: S => Future[T]
2526
): Future[T] =
2627
fun(underlying).retryOnFailure(

0 commit comments

Comments
 (0)