33import com .fasterxml .jackson .core .JsonGenerator ;
44import com .fasterxml .jackson .databind .JsonNode ;
55import com .fasterxml .jackson .databind .JsonSerializer ;
6- import com .fasterxml .jackson .databind .ObjectMapper ;
76import com .fasterxml .jackson .databind .SerializerProvider ;
8- import com .kjetland .jackson .jsonSchema .JsonSchemaConfig ;
9- import com .kjetland .jackson .jsonSchema .JsonSchemaGenerator ;
7+ import com .github .victools .jsonschema .generator .SchemaGenerator ;
8+ import com .github .victools .jsonschema .generator .SchemaGeneratorConfigBuilder ;
9+ import com .github .victools .jsonschema .generator .SchemaVersion ;
10+ import com .github .victools .jsonschema .module .jackson .JacksonModule ;
11+ import com .github .victools .jsonschema .module .jackson .JacksonOption ;
1012
1113import java .io .IOException ;
1214
1315public class ChatFunctionParametersSerializer extends JsonSerializer <Class <?>> {
1416
15- private final ObjectMapper mapper = new ObjectMapper ();
16- private final JsonSchemaConfig config = JsonSchemaConfig .vanillaJsonSchemaDraft4 ();
17- private final JsonSchemaGenerator jsonSchemaGenerator = new JsonSchemaGenerator (mapper , config );
17+ private final SchemaGenerator schemaGenerator = new SchemaGenerator (
18+ new SchemaGeneratorConfigBuilder (SchemaVersion .DRAFT_7 )
19+ .with (new JacksonModule (JacksonOption .RESPECT_JSONPROPERTY_REQUIRED ))
20+ .build ()
21+ );
1822
1923 @ Override
2024 public void serialize (Class <?> value , JsonGenerator gen , SerializerProvider serializers )
@@ -23,7 +27,7 @@ public void serialize(Class<?> value, JsonGenerator gen, SerializerProvider seri
2327 gen .writeNull ();
2428 } else {
2529 try {
26- JsonNode schema = jsonSchemaGenerator . generateJsonSchema (value );
30+ JsonNode schema = schemaGenerator . generateSchema (value );
2731 gen .writeObject (schema );
2832 } catch (Exception e ) {
2933 throw new RuntimeException ("Failed to generate JSON Schema" , e );
0 commit comments