Skip to content

Commit 3b48c22

Browse files
committed
JsonSchema object - switching properties to Seq instead of Map to have deterministic serialization
1 parent 7e5d455 commit 3b48c22

File tree

3 files changed

+9
-4
lines changed

3 files changed

+9
-4
lines changed

openai-core/src/main/scala/io/cequence/openaiscala/domain/JsonSchema.scala

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,17 @@ object JsonSchema {
1212
import java.lang.{String => JString}
1313

1414
case class Object(
15-
properties: Map[JString, JsonSchema],
15+
properties: Seq[(JString, JsonSchema)],
1616
required: Seq[JString] = Nil
1717
) extends JsonSchema {
1818
override val `type` = JsonType.Object
1919
}
2020

21+
def Object(
22+
properties: Map[JString, JsonSchema],
23+
required: Seq[JString] = Nil
24+
): Object = Object(properties.toSeq, required)
25+
2126
case class String(
2227
description: Option[JString] = None,
2328
`enum`: Seq[JString] = Nil

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import io.cequence.openaiscala.service.OpenAIChatCompletionService
77
import io.cequence.openaiscala.service.adapter.ServiceWrapperTypes._
88
import io.cequence.wsclient.service.CloseableService
99
import io.cequence.wsclient.service.adapter.ServiceWrapperTypes.CloseableServiceWrapper
10-
import io.cequence.wsclient.service.adapter.{DelegatedCloseableServiceWrapper, ServiceWrapper}
10+
import io.cequence.wsclient.service.adapter.DelegatedCloseableServiceWrapper
1111

1212
import scala.concurrent.Future
1313

openai-examples/src/main/scala/io/cequence/openaiscala/examples/nonopenai/AnthropicCreateSystemMessage.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package io.cequence.openaiscala.examples.nonopenai
22

33
import io.cequence.openaiscala.anthropic.domain.Content.ContentBlock.TextBlock
4-
import io.cequence.openaiscala.anthropic.domain.Content.{ContentBlockBase, SingleString}
5-
import io.cequence.openaiscala.anthropic.domain.{Content, Message}
4+
import io.cequence.openaiscala.anthropic.domain.Content.ContentBlockBase
5+
import io.cequence.openaiscala.anthropic.domain.Message
66
import io.cequence.openaiscala.anthropic.domain.Message.{SystemMessage, UserMessage}
77
import io.cequence.openaiscala.anthropic.domain.response.CreateMessageResponse
88
import io.cequence.openaiscala.anthropic.domain.settings.AnthropicCreateMessageSettings

0 commit comments

Comments
 (0)