ToolUseMessage.fromJson constructor

ToolUseMessage.fromJson(
  1. 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,
  );
}