AIChatMessage.fromMap constructor
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),
],
);
}