addQueryChunk method

  1. @override
Future<void> addQueryChunk(
  1. Message message
)
override

Implementation

@override
Future<void> addQueryChunk(Message message) async {
  var messageToSend = message;
  if (message.isUser &&
      !_systemInstructionSent &&
      systemInstruction != null &&
      systemInstruction!.isNotEmpty &&
      !_isNativeSystemInstruction) {
    _systemInstructionSent = true;
    messageToSend = message.copyWith(
      text: '[System: ${systemInstruction!}]\n\n${message.text}',
    );
  }
  debugPrint(
      '[MobileSession.addQueryChunk] modelType=$modelType, fileType=$fileType, msgType=${message.type}');
  final finalPrompt = messageToSend.transformToChatPrompt(
      type: modelType, fileType: fileType);
  debugPrint(
      '[MobileSession.addQueryChunk] finalPrompt length=${finalPrompt.length}');
  if (message.hasImage && supportImage) {
    final images = message.images.isNotEmpty
        ? message.images
        : (message.imageBytes != null ? [message.imageBytes!] : const <Uint8List>[]);
    for (final image in images) {
      await _addImage(image);
    }
  }
  if (message.hasAudio && message.audioBytes != null && supportAudio) {
    await _addAudio(message.audioBytes!);
  }
  await _platformService.addQueryChunk(finalPrompt);
}