110 lines
3.3 KiB
Java
110 lines
3.3 KiB
Java
/*
|
|
* Copyright 2025 Google. This software is provided as-is, without warranty or representation for any use or purpose.
|
|
* Your use of it is subject to your agreement with Google.
|
|
*/
|
|
|
|
package com.example.dto.dialogflow.conversation;
|
|
|
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
|
import java.time.Instant;
|
|
import java.util.Map;
|
|
|
|
@JsonInclude(JsonInclude.Include.NON_NULL)
|
|
public record ConversationEntryDTO(
|
|
ConversationEntryEntity entity,
|
|
ConversationEntryType type,
|
|
Instant timestamp,
|
|
String text,
|
|
Map<String, Object> parameters,
|
|
String canal
|
|
) {
|
|
public static ConversationEntryDTO forUser(String text) {
|
|
return new ConversationEntryDTO(
|
|
ConversationEntryEntity.USUARIO,
|
|
ConversationEntryType.CONVERSACION,
|
|
Instant.now(),
|
|
text,
|
|
null,
|
|
null);
|
|
}
|
|
|
|
public static ConversationEntryDTO forUser(String text, Map<String, Object> parameters) {
|
|
return new ConversationEntryDTO(
|
|
ConversationEntryEntity.USUARIO,
|
|
ConversationEntryType.CONVERSACION,
|
|
Instant.now(),
|
|
text,
|
|
parameters,
|
|
null);
|
|
}
|
|
|
|
public static ConversationEntryDTO forAgent(QueryResultDTO agentQueryResult) {
|
|
String fulfillmentText = (agentQueryResult != null && agentQueryResult.responseText() != null) ? agentQueryResult.responseText() : "";
|
|
Map<String, Object> parameters = (agentQueryResult != null) ? agentQueryResult.parameters() : null;
|
|
|
|
return new ConversationEntryDTO(
|
|
ConversationEntryEntity.AGENTE,
|
|
ConversationEntryType.CONVERSACION,
|
|
Instant.now(),
|
|
fulfillmentText,
|
|
parameters,
|
|
null
|
|
);
|
|
}
|
|
|
|
public static ConversationEntryDTO forAgentWithMessage(String text) {
|
|
return new ConversationEntryDTO(
|
|
ConversationEntryEntity.AGENTE,
|
|
ConversationEntryType.CONVERSACION,
|
|
Instant.now(),
|
|
text,
|
|
null,
|
|
null
|
|
);
|
|
}
|
|
public static ConversationEntryDTO forSystem(String text) {
|
|
return new ConversationEntryDTO(
|
|
ConversationEntryEntity.SISTEMA,
|
|
ConversationEntryType.CONVERSACION,
|
|
Instant.now(),
|
|
text,
|
|
null,
|
|
null
|
|
);
|
|
}
|
|
|
|
|
|
|
|
public static ConversationEntryDTO forSystem(String text, Map<String, Object> parameters) {
|
|
return new ConversationEntryDTO(
|
|
ConversationEntryEntity.SISTEMA,
|
|
ConversationEntryType.CONVERSACION,
|
|
Instant.now(),
|
|
text,
|
|
parameters,
|
|
null
|
|
);
|
|
}
|
|
|
|
public static ConversationEntryDTO forLlmConversation(String text) {
|
|
return new ConversationEntryDTO(
|
|
ConversationEntryEntity.LLM,
|
|
ConversationEntryType.CONVERSACION,
|
|
Instant.now(),
|
|
text,
|
|
null,
|
|
null
|
|
);
|
|
}
|
|
|
|
public static ConversationEntryDTO forLlmConversation(String text, Map<String, Object> parameters) {
|
|
return new ConversationEntryDTO(
|
|
ConversationEntryEntity.LLM,
|
|
ConversationEntryType.CONVERSACION,
|
|
Instant.now(),
|
|
text,
|
|
parameters,
|
|
null
|
|
);
|
|
}
|
|
} |