You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
615 B
29 lines
615 B
class Message {
|
|
final String role;
|
|
final String content;
|
|
final DateTime timestamp;
|
|
|
|
Message({
|
|
required this.role,
|
|
required this.content,
|
|
required this.timestamp,
|
|
});
|
|
|
|
// 从JSON构造函数
|
|
factory Message.fromJson(Map<String, dynamic> json) {
|
|
return Message(
|
|
role: json['role'] as String,
|
|
content: json['content'] as String,
|
|
timestamp: DateTime.parse(json['timestamp'] as String),
|
|
);
|
|
}
|
|
|
|
// 转换为JSON
|
|
Map<String, dynamic> toJson() {
|
|
return {
|
|
'role': role,
|
|
'content': content,
|
|
'timestamp': timestamp.toIso8601String(),
|
|
};
|
|
}
|
|
}
|