fetch method

  1. @override
Future<Message> fetch({
  1. List<Message>? previousMessages,
})
override

Implementation

@override
Future<Message> fetch({
  List<Message>? previousMessages,
}) async {
  var response = await dio.post(
    url,
    data: {
      'model': model.toString(),
      'messages': _getMessages(previousMessages),
    },
  );
  Map<String, dynamic> data = response.data;
  int created = data['created'];
  List choices = data['choices'];
  if (choices.length > 1) {
    throw Exception('Multiple choices');
  }
  Map<String, dynamic> choice = choices.first;
  return Message(
    id: data['id'],
    date: DateTime.fromMillisecondsSinceEpoch(created),
    text: choice['message']['content'],
    role: Role.assistant,
  );
}