Assistant.fromMap constructor

Assistant.fromMap(
  1. Map<String, dynamic> json
)

Implementation

factory Assistant.fromMap(Map<String, dynamic> json) {
  AssistantType type = json["type"] != null || json["assistantType"] != null
      ? AssistantService.getAssistantTypeEnum(
          json["type"] ?? json["assistantType"],
        )
      : json["using"] != null
      ? AssistantType.marketplace
      : AssistantType.assistant;
  return Assistant(
    id: getString(json["id"]),
    name: getString(json["name"]),
    description: getString(json["description"]),
    imageUuid: getString(json["imageUuid"]),
    welcomeMessage: type == AssistantType.assistant
        ? getString(json["welcomeMessage"])
        : getString(json["storeCard"]?["welcomeMessage"]),
    usageSettings: json["assistantSettings"]?["settings"] != null
        ? UsageSettings.fromMap(
            json["assistantSettings"]?["settings"] is Map<String, dynamic>
                ? Map<String, dynamic>.from(
                    json["assistantSettings"]?["settings"] as Map,
                  )
                : json["assistantSettings"]?["settings"]
                      as Map<String, dynamic>,
            conversationActions: json["assistantSettings"]
                    ?["conversationActions"] is List
                ? List<dynamic>.from(
                    json["assistantSettings"]?["conversationActions"] as List,
                  )
                : null,
          )
        : null,
    kbSettings: json["assistantSettings"]?["kbSettings"] != null
        ? KBSettings.fromMap(
            json["assistantSettings"]?["kbSettings"] is Map<String, dynamic>
                ? Map<String, dynamic>.from(
                    json["assistantSettings"]?["kbSettings"] as Map,
                  )
                : json["assistantSettings"]?["kbSettings"]
                      as Map<String, dynamic>,
          )
        : null,
    customActions: json["assistantSettings"]?["customActions"] != null
        ? (json["assistantSettings"]?["customActions"] as List<dynamic>)
              .map((e) => CustomAction.fromJson(e))
              .toList()
        : [],
    type: type,
    replyMode: AssistantService.getReplyModeEnum(json["replyMode"] ?? "open"),
    model: json["aiModel"] != null ? AiModel.fromJson(json["aiModel"]) : null,
    costMessage: json["costMessage"] ?? json["cost"]?["message"] ?? "",
    capabilities: json["capabilities"] != null
        ? (json["capabilities"] as List<dynamic>)
              .map((e) => e.toString())
              .toList()
        : [],
    apiKeyConfig: json["apiKeyConfiguration"] != null
        ? AssistantApiKeyConfig.fromJson(json["apiKeyConfiguration"])
        : null,
    supportsThinking: json["supportsThinking"] ?? false,
    supportedThinkingEfforts: json["supportedThinkingEfforts"] is List
        ? List<String>.from(
            (json["supportedThinkingEfforts"] as List)
                .where((x) => x != null)
                .map((x) => x.toString()),
          )
        : null,
    voiceEnabled: json["voiceEnabled"] ?? false,
    liveVoiceEnabled: json["liveVoiceEnabled"] ?? false,
    avatarEnabled: json["avatarEnabled"] ?? false,
    sttAvailable: json["sttAvailable"] ?? false,
    ttsAvailable: json["ttsAvailable"] ?? false,
    availableVoices: json["availableVoices"] is List
        ? (json["availableVoices"] as List)
              .map((e) => VoiceOption.fromJson(e as Map<String, dynamic>))
              .toList()
        : const [],
    voiceSupportedLanguages: json["voiceSupportedLanguages"] is List
        ? List<String>.from(json["voiceSupportedLanguages"] as List)
        : const [],
  );
}