Skip to content

Commit 552b056

Browse files
committed
CreateChatCompletionWithJSON - parseJson customizable
1 parent fe468b1 commit 552b056

File tree

2 files changed

+6
-5
lines changed

2 files changed

+6
-5
lines changed

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import io.cequence.openaiscala.domain.settings.{
1212
}
1313
import io.cequence.openaiscala.domain.{BaseMessage, ChatRole, ModelId, UserMessage}
1414
import org.slf4j.{Logger, LoggerFactory}
15-
import play.api.libs.json.{Format, Json}
15+
import play.api.libs.json.{Format, JsValue, Json}
1616

1717
import scala.concurrent.{ExecutionContext, Future}
1818

@@ -61,7 +61,8 @@ object OpenAIChatCompletionExtra {
6161
failoverModels: Seq[String] = Nil,
6262
maxRetries: Option[Int] = Some(defaultMaxRetries),
6363
retryOnAnyError: Boolean = false,
64-
taskNameForLogging: Option[String] = None
64+
taskNameForLogging: Option[String] = None,
65+
parseJson: String => JsValue = defaultParseJsonOrThrow
6566
)(
6667
implicit ec: ExecutionContext,
6768
scheduler: Scheduler
@@ -93,7 +94,7 @@ object OpenAIChatCompletionExtra {
9394
val content = response.choices.head.message.content
9495
val contentTrimmed = content.stripPrefix("```json").stripSuffix("```").trim
9596
val contentJson = contentTrimmed.dropWhile(_ != '{')
96-
val json = parseJsonOrThrow(contentJson)
97+
val json = parseJson(contentJson)
9798

9899
logger.debug(
99100
s"${taskNameForLoggingFinal.capitalize} finished in " + (new java.util.Date().getTime - start.getTime) + " ms."
@@ -103,7 +104,7 @@ object OpenAIChatCompletionExtra {
103104
}
104105
}
105106

106-
private def parseJsonOrThrow(
107+
private def defaultParseJsonOrThrow(
107108
jsonString: String
108109
) = try {
109110
Json.parse(jsonString)

openai-examples/src/main/scala/io/cequence/openaiscala/examples/CreateChatCompletionVisionWithURL.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ object CreateChatCompletionVisionWithURL extends Example {
2424
.createChatCompletion(
2525
messages,
2626
settings = CreateChatCompletionSettings(
27-
model = ModelId.gpt_4_vision_preview,
27+
model = ModelId.gpt_4o,
2828
temperature = Some(0),
2929
max_tokens = Some(300)
3030
)

0 commit comments

Comments
 (0)