AIChatMessage.fromMap constructor

AIChatMessage.fromMap(
  1. Map<String, dynamic> map
)

Converts a map to a AIChatMessage.

Implementation

factory AIChatMessage.fromMap(Map<String, dynamic> map) {
  final content = map['content'];
  if (content is List) {
    return AIChatMessage(
      content: content
          .map((item) => (item as Map).cast<String, dynamic>())
          .map(AIChatMessageContentBlock.fromMap)
          .toList(growable: false),
    );
  }
  final transitionalBlocks = map['contentBlocks'] as List<dynamic>?;
  if (transitionalBlocks != null) {
    return AIChatMessage(
      content: transitionalBlocks
          .map((item) => (item as Map).cast<String, dynamic>())
          .map(AIChatMessageContentBlock.fromMap)
          .toList(growable: false),
    );
  }
  final legacyContent = content as String? ?? '';
  return AIChatMessage(
    content: [
      if (legacyContent.isNotEmpty)
        AIChatMessageTextBlock(text: legacyContent),
      ...(map['toolCalls'] as List<dynamic>? ?? const [])
          .map((item) => (item as Map).cast<String, dynamic>())
          .map(AIChatMessageToolCall.fromMap),
    ],
  );
}