transformToChatPrompt method
String
transformToChatPrompt({
- ModelType type = ModelType.general,
- ModelFileType fileType = ModelFileType.binary,
Implementation
String transformToChatPrompt(
{ModelType type = ModelType.general, ModelFileType fileType = ModelFileType.binary}) {
// DEBUG LOG
debugPrint('[transformToChatPrompt] modelType=$type, fileType=$fileType, messageType=${this.type}, isUser=$isUser');
// System messages should not be sent to the model
if (this.type == MessageType.systemInfo) {
return '';
}
// .task files - MediaPipe handles templates, return raw content
// EXCEPT FunctionGemma which needs manual formatting (no prefix/suffix in .task)
if (fileType == ModelFileType.task && type != ModelType.functionGemma) {
final result = _formatToolResponseContent();
debugPrint('[transformToChatPrompt] Using _formatToolResponseContent, result length=${result.length}');
return result;
}
// .bin/.tflite files - apply manual formatting based on model type
final result = switch (type) {
ModelType.general => _transformGeneral(),
ModelType.gemmaIt => _transformGemmaIt(),
ModelType.deepSeek => _transformDeepSeek(),
ModelType.qwen => _transformQwen(),
ModelType.llama => _transformLlama(),
ModelType.hammer => _transformHammer(),
ModelType.functionGemma => _transformFunctionGemma(),
};
return result;
}