handleToolUseMessage method
void
handleToolUseMessage(
- Map<String, dynamic> data
)
Implementation
void handleToolUseMessage(Map<String, dynamic> data) {
ToolUseMessage toolUseMessage = ToolUseMessage.fromJsonSSE(data);
bool isPipeline = toolUseMessage.type == ToolUseType.pipeline;
bool isRemoteCall = toolUseMessage.type == ToolUseType.remoteCall;
bool isDocument = toolUseMessage.type == ToolUseType.nativeToolsDocument;
PupauMessage message = PupauMessage(
id: toolUseMessage.id,
answer: isPipeline
? toolUseMessage.pipelineData?.message ?? ""
: isRemoteCall
? toolUseMessage.remoteCallData?.toString() ?? ""
: data.toString(),
type: null,
sourceType: SourceType.toolUse,
assistantType: toolUseMessage.chatBotId != null
? AssistantType.assistant
: AssistantType.marketplace,
isLast: true,
kbReferences: [],
urls: [],
toolUseMessage: toolUseMessage,
assistantId: '',
createdAt: DateTime.now(),
status: MessageStatus.loading,
);
updateSSEMessages(message);
if (message.answer.trim() != "") {
messageNotifier.addData(message.answer, message.id);
manageChatAutoScroll(bypassHeightCheck: true);
}
if (isDocument) {
conversation.value != null
? Get.find<AttachmentsController>().loadAttachments()
: Get.find<AttachmentsController>().clearAttachments();
}
}