ToolUseMessage.fromJson constructor
ToolUseMessage.fromJson(
- Map<String, dynamic> json
)
Implementation
factory ToolUseMessage.fromJson(Map<String, dynamic> json) {
ToolUseType type = ToolUseService.getToolUseTypeEnum(
json["extraInfo"]?["typeDetails"]?["toolType"] ?? "",
nativeToolType: json["extraInfo"]?["typeDetails"]?["nativeTool"]?["id"],
);
bool isPipeline = type == ToolUseType.pipeline;
bool isRemoteCall = type == ToolUseType.remoteCall;
bool isThinking = type == ToolUseType.nativeToolsThinking;
bool isTodoList = type == ToolUseType.nativeToolsToDoList;
bool isWebSearch = type == ToolUseType.nativeToolsWebSearch;
bool isKnowledgeBase = type == ToolUseType.nativeToolsKnowledgeBase;
bool isDocument = type == ToolUseType.nativeToolsDocument;
bool isSMTP = type == ToolUseType.nativeToolsSMTP;
bool isImageGeneration = type == ToolUseType.nativeToolsImageGeneration;
bool isBrowserUse = type == ToolUseType.nativeToolsBrowserUse;
bool isAskUser = type == ToolUseType.nativeToolsAskUser;
bool isWebReader = type == ToolUseType.nativeToolsWebReader;
bool isTaskTool = type == ToolUseType.nativeToolsTaskTool;
Map<String, dynamic> answer = getMessage(json, false);
return ToolUseMessage(
id: getString(json["id"]),
assistantName: json["assistantName"] ?? "",
imageUuid: json["imageUuid"],
chatBotId: getString(json["chatBotId"]),
marketPlaceId: getString(json["marketPlaceId"]),
type: type,
toolName: json["extraInfo"]?["typeDetails"]?["toolName"] ?? "tool",
queryGroupId: getString(json["queryGroupId"]),
showTool: json["extraInfo"]?["typeDetails"]?["showTool"] ?? true,
toolMessage: json["extraInfo"]?["typeDetails"]?["toolMessage"] ?? "",
nativeToolData: ToolUseService.isNativeTool(type)
? getNativeToolData(json, false)
: null,
pipelineData: isPipeline ? ToolUsePipelineData.fromJson(answer) : null,
remoteCallData: isRemoteCall ? answer : null,
thinkingData: isThinking
? ToolUseThinkingData.fromJson(json["extraInfo"]?["typeDetails"])
: null,
toDoListData: isTodoList
? ToolUseToDoListData.fromJson(
answer,
json["extraInfo"]?["typeDetails"],
)
: null,
webSearchData: isWebSearch ? ToolUseWebSearchData.fromJson(answer) : null,
knowledgeBaseData: isKnowledgeBase
? ToolUseKnowledgeBaseData.fromJson(answer)
: null,
documentData: isDocument
? ToolUseDocumentData.fromJson(
answer,
json["extraInfo"]?["typeDetails"],
)
: null,
smtpData: isSMTP ? ToolUseSMTPData.fromJson(answer) : null,
imageGenerationData: isImageGeneration
? ToolUseImageGenerationData.fromJson(answer)
: null,
browserUseData: isBrowserUse
? ToolUseBrowserUseData.fromJson(
answer,
json["extraInfo"]?["typeDetails"],
)
: null,
askUserData: isAskUser
? ToolUseAskUserData.fromJson(json["extraInfo"]?["typeDetails"])
: null,
webReaderData: isWebReader ? ToolUseWebReaderData.fromJson(answer) : null,
taskToolData: isTaskTool
? ToolUseTaskData.fromJson(
_taskToolDataWithSubTool(
ToolUseMessage.getNativeToolData(json, false),
json,
false,
),
)
: null,
);
}