Skip to content

Commit f18213d

Browse files
committed
workaround for #150 -- important as this model is out new default
1 parent c6a10f8 commit f18213d

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

Libraries/MLXLLM/LLMModelFactory.swift

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -221,9 +221,20 @@ private struct LLMUserInputProcessor: UserInputProcessor {
221221
}
222222

223223
func prepare(input: UserInput) throws -> LMInput {
224-
let messages = input.prompt.asMessages()
225-
let promptTokens = try tokenizer.applyChatTemplate(messages: messages)
226-
return LMInput(tokens: MLXArray(promptTokens))
224+
do {
225+
let messages = input.prompt.asMessages()
226+
let promptTokens = try tokenizer.applyChatTemplate(messages: messages)
227+
return LMInput(tokens: MLXArray(promptTokens))
228+
} catch {
229+
// #150 -- it might be a TokenizerError.chatTemplate("No chat template was specified")
230+
// but that is not public so just fall back to text
231+
let prompt = input.prompt
232+
.asMessages()
233+
.compactMap { $0["content"] }
234+
.joined(separator: ". ")
235+
let promptTokens = tokenizer.encode(text: prompt)
236+
return LMInput(tokens: MLXArray(promptTokens))
237+
}
227238
}
228239
}
229240

0 commit comments

Comments
 (0)