transformToChatPrompt method

String transformToChatPrompt({
  1. ModelType type = ModelType.general,
  2. ModelFileType fileType = ModelFileType.binary,
})

Implementation

String transformToChatPrompt(
    {ModelType type = ModelType.general,
    ModelFileType fileType = ModelFileType.binary}) {
  // DEBUG LOG
  gemmaLog(
      '[transformToChatPrompt] modelType=$type, fileType=$fileType, messageType=${this.type}, isUser=$isUser');

  switch (_chatFormatModeFor(type, fileType, this.type)) {
    case _ChatFormatMode.drop:
      return '';
    case _ChatFormatMode.raw:
      final result = _formatToolResponseContent();
      gemmaLog(
          '[transformToChatPrompt] Using _formatToolResponseContent, result length=${result.length}');
      return result;
    case _ChatFormatMode.manual:
      // .bin/.tflite files (and .litertlm on iOS) - manual formatting by model type.
      final result = switch (type) {
        ModelType.general => _transformGeneral(),
        ModelType.gemmaIt => _transformGemmaIt(),
        ModelType.gemma4 => _transformGemmaIt(),
        ModelType.deepSeek => _transformDeepSeek(),
        ModelType.qwen => _transformQwen(),
        ModelType.qwen3 => _transformQwen(),
        ModelType.llama => _transformLlama(),
        ModelType.hammer => _transformHammer(),
        ModelType.functionGemma => _transformFunctionGemma(),
        ModelType.phi => _transformGeneral(),
      };
      return result;
  }
}