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