io.quarkiverse.langchain4j.runtime.jackson.ChatMessageMixin Maven / Gradle / Ivy
package io.quarkiverse.langchain4j.runtime.jackson;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import dev.langchain4j.data.message.AiMessage;
import dev.langchain4j.data.message.ChatMessage;
import dev.langchain4j.data.message.ChatMessageType;
import dev.langchain4j.data.message.SystemMessage;
import dev.langchain4j.data.message.ToolExecutionResultMessage;
import dev.langchain4j.data.message.UserMessage;
import io.quarkus.jackson.JacksonMixin;
@JacksonMixin(ChatMessage.class)
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "type")
@JsonSubTypes({
@JsonSubTypes.Type(value = SystemMessage.class, name = "SYSTEM"),
@JsonSubTypes.Type(value = UserMessage.class, name = "USER"),
@JsonSubTypes.Type(value = AiMessage.class, name = "AI"),
@JsonSubTypes.Type(value = ToolExecutionResultMessage.class, name = "TOOL_EXECUTION_RESULT"),
})
public abstract class ChatMessageMixin {
@JsonProperty
public abstract ChatMessageType type();
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy