Skip to content

Commit 82cf367

Browse files
authored
Merge pull request #192 from quarkiverse/#191
2 parents 6a36ca9 + 68f91b9 commit 82cf367

File tree

5 files changed

+83
-0
lines changed

5 files changed

+83
-0
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package io.quarkiverse.langchain4j.openai.runtime.jackson;
2+
3+
import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder;
4+
5+
import dev.ai4j.openai4j.chat.ToolCall;
6+
import io.quarkus.jackson.JacksonMixin;
7+
8+
@JacksonMixin(ToolCall.Builder.class)
9+
@JsonPOJOBuilder(withPrefix = "")
10+
public abstract class ToolCallBuilderMixin {
11+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package io.quarkiverse.langchain4j.openai.runtime.jackson;
2+
3+
import com.fasterxml.jackson.annotation.JsonAutoDetect;
4+
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
5+
6+
import dev.ai4j.openai4j.chat.ToolCall;
7+
import io.quarkus.jackson.JacksonMixin;
8+
9+
@JacksonMixin(ToolCall.class)
10+
@JsonDeserialize(builder = ToolCall.Builder.class)
11+
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE)
12+
public abstract class ToolCallMixin {
13+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package io.quarkiverse.langchain4j.openai.runtime.jackson;
2+
3+
import java.io.IOException;
4+
import java.util.Locale;
5+
6+
import com.fasterxml.jackson.core.JacksonException;
7+
import com.fasterxml.jackson.core.JsonParser;
8+
import com.fasterxml.jackson.databind.DeserializationContext;
9+
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
10+
11+
import dev.ai4j.openai4j.chat.ToolType;
12+
13+
public class ToolTypeDeserializer extends StdDeserializer<ToolType> {
14+
public ToolTypeDeserializer() {
15+
super(ToolType.class);
16+
}
17+
18+
@Override
19+
public ToolType deserialize(JsonParser jp, DeserializationContext deserializationContext)
20+
throws IOException, JacksonException {
21+
return ToolType.valueOf(jp.getValueAsString().toUpperCase(Locale.ROOT));
22+
}
23+
24+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package io.quarkiverse.langchain4j.openai.runtime.jackson;
2+
3+
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
4+
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
5+
6+
import dev.ai4j.openai4j.chat.ToolType;
7+
import io.quarkus.jackson.JacksonMixin;
8+
9+
@JacksonMixin(ToolType.class)
10+
@JsonSerialize(using = ToolTypeSerializer.class)
11+
@JsonDeserialize(using = ToolTypeDeserializer.class)
12+
public abstract class ToolTypeMixin {
13+
14+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package io.quarkiverse.langchain4j.openai.runtime.jackson;
2+
3+
import java.io.IOException;
4+
import java.util.Locale;
5+
6+
import com.fasterxml.jackson.core.JsonGenerator;
7+
import com.fasterxml.jackson.databind.SerializerProvider;
8+
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
9+
10+
import dev.ai4j.openai4j.chat.ToolType;
11+
12+
public class ToolTypeSerializer extends StdSerializer<ToolType> {
13+
public ToolTypeSerializer() {
14+
super(ToolType.class);
15+
}
16+
17+
@Override
18+
public void serialize(ToolType value, JsonGenerator gen, SerializerProvider provider) throws IOException {
19+
gen.writeString(value.toString().toLowerCase(Locale.ROOT));
20+
}
21+
}

0 commit comments

Comments
 (0)