File tree Expand file tree Collapse file tree 2 files changed +63
-0
lines changed
java/src/main/java/com/genexus/util/saia Expand file tree Collapse file tree 2 files changed +63
-0
lines changed Original file line number Diff line number Diff line change
1
+ package com .genexus .util .saia ;
2
+
3
+ import com .fasterxml .jackson .core .JsonParser ;
4
+ import com .fasterxml .jackson .core .ObjectCodec ;
5
+ import com .fasterxml .jackson .databind .DeserializationContext ;
6
+ import com .fasterxml .jackson .databind .JsonDeserializer ;
7
+ import com .fasterxml .jackson .databind .JsonNode ;
8
+
9
+ import java .io .IOException ;
10
+ import java .util .ArrayList ;
11
+
12
+ class ContentDeserializer extends JsonDeserializer <OpenAIResponse .Content > {
13
+ public ContentDeserializer () {}
14
+
15
+ @ Override
16
+ public OpenAIResponse .Content deserialize (JsonParser p , DeserializationContext ct ) throws IOException {
17
+ ObjectCodec codec = p .getCodec ();
18
+ JsonNode node = codec .readTree (p );
19
+
20
+ if (node .isTextual ()) {
21
+ return new OpenAIResponse .StringContent (node .asText ());
22
+ } else if (node .isArray ()) {
23
+ ArrayList <OpenAIResponse .StructuredContentItem > items = new ArrayList <>();
24
+ for (JsonNode itemNode : node ) {
25
+ OpenAIResponse .StructuredContentItem item = codec .treeToValue (itemNode , OpenAIResponse .StructuredContentItem .class );
26
+ items .add (item );
27
+ }
28
+ return new OpenAIResponse .StructuredContent (items );
29
+ }
30
+
31
+ throw new IOException ("Invalid content format" );
32
+ }
33
+ }
Original file line number Diff line number Diff line change
1
+ package com .genexus .util .saia ;
2
+
3
+ import com .fasterxml .jackson .core .JsonGenerator ;
4
+ import com .fasterxml .jackson .databind .JsonSerializer ;
5
+ import com .fasterxml .jackson .databind .ObjectMapper ;
6
+ import com .fasterxml .jackson .databind .SerializerProvider ;
7
+
8
+ import java .io .IOException ;
9
+
10
+ class ContentSerializer extends JsonSerializer <OpenAIResponse .Content > {
11
+ public ContentSerializer () {
12
+ }
13
+
14
+ @ Override
15
+ public void serialize (OpenAIResponse .Content value , JsonGenerator gen , SerializerProvider serializers ) throws IOException {
16
+ ObjectMapper mapper = (ObjectMapper ) gen .getCodec ();
17
+
18
+ if (value instanceof OpenAIResponse .StringContent ) {
19
+ gen .writeString (((OpenAIResponse .StringContent ) value ).getValue ());
20
+ } else if (value instanceof OpenAIResponse .StructuredContent ) {
21
+ gen .writeStartArray ();
22
+ for (OpenAIResponse .StructuredContentItem item : ((OpenAIResponse .StructuredContent ) value ).getItems ()) {
23
+ mapper .writeValue (gen , item );
24
+ }
25
+ gen .writeEndArray ();
26
+ } else {
27
+ gen .writeNull ();
28
+ }
29
+ }
30
+ }
You can’t perform that action at this time.
0 commit comments