Skip to content

Commit 23d29da

Browse files
committed
New exception OpenAIScalaTokenCountExceededException introduced - thrown for completion or chat completion when the number of tokens needed is higher than allowed
1 parent d031fa2 commit 23d29da

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

openai-client/src/main/scala/io/cequence/openaiscala/service/ws/WSRequestHelper.scala

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package io.cequence.openaiscala.service.ws
33
import com.fasterxml.jackson.core.JsonParseException
44
import com.fasterxml.jackson.databind.JsonMappingException
55
import io.cequence.openaiscala.JsonUtil.toJson
6-
import io.cequence.openaiscala.{OpenAIScalaClientException, OpenAIScalaClientTimeoutException, OpenAIScalaClientUnknownHostException}
6+
import io.cequence.openaiscala.{OpenAIScalaClientException, OpenAIScalaClientTimeoutException, OpenAIScalaClientUnknownHostException, OpenAIScalaTokenCountExceededException}
77
import play.api.libs.json.{JsObject, JsValue, Json}
88
import play.api.libs.ws.{BodyWritable, StandaloneWSRequest}
99
import play.api.libs.ws.JsonBodyWritables._
@@ -326,7 +326,14 @@ trait WSRequestHelper extends WSHelper {
326326
response match {
327327
case Left(data) => data
328328

329-
case Right((errorCode, message)) => throw new OpenAIScalaClientException(s"Code ${errorCode} : ${message}")
329+
case Right((errorCode, message)) =>
330+
val errorMessage = s"Code ${errorCode} : ${message}"
331+
if (message.contains("Please reduce your prompt; or completion length") ||
332+
message.contains("Please reduce the length of the messages")
333+
)
334+
throw new OpenAIScalaTokenCountExceededException(errorMessage)
335+
else
336+
throw new OpenAIScalaClientException(errorMessage)
330337
}
331338

332339
protected def handleNotFoundAndError[T](response: Either[T, (Int, String)]): Option[T] =

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,8 @@ class OpenAIScalaClientTimeoutException(message: String, cause: Throwable) exten
1010

1111
class OpenAIScalaClientUnknownHostException(message: String, cause: Throwable) extends OpenAIScalaClientException(message, cause) {
1212
def this(message: String) = this(message, null)
13+
}
14+
15+
class OpenAIScalaTokenCountExceededException(message: String, cause: Throwable) extends OpenAIScalaClientException(message, cause) {
16+
def this(message: String) = this(message, null)
1317
}

0 commit comments

Comments
 (0)