Skip to content

Commit 940a4fa

Browse files
Add missingChatTemplate error (#199)
1 parent ebee621 commit 940a4fa

File tree

2 files changed

+14
-9
lines changed

2 files changed

+14
-9
lines changed

Sources/Tokenizers/Tokenizer.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public enum TokenizerError: LocalizedError {
1919
case missingVocab
2020
case malformedVocab
2121
case chatTemplate(String)
22+
case missingChatTemplate
2223
case tooLong(String)
2324
case mismatchedConfig(String)
2425

@@ -36,6 +37,8 @@ public enum TokenizerError: LocalizedError {
3637
String(localized: "The vocabulary file is malformed or corrupted.", comment: "Error when vocab file is malformed")
3738
case let .chatTemplate(message):
3839
String(localized: "Chat template error: \(message)", comment: "Error with chat template")
40+
case .missingChatTemplate:
41+
String(localized: "This tokenizer does not have a chat template, and no template was passed.")
3942
case let .tooLong(message):
4043
String(localized: "Input is too long: \(message)", comment: "Error when input exceeds maximum length")
4144
case let .mismatchedConfig(message):
@@ -514,7 +517,7 @@ public class PreTrainedTokenizer: Tokenizer {
514517
}
515518

516519
guard let selectedChatTemplate else {
517-
throw TokenizerError.chatTemplate("This tokenizer does not have a chat template, and no template was passed.")
520+
throw TokenizerError.missingChatTemplate
518521
}
519522

520523
let template = try Template(selectedChatTemplate)

Tests/TokenizersTests/ChatTemplateTests.swift

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -220,14 +220,16 @@ class ChatTemplateTests: XCTestCase {
220220
func testApplyTemplateError() async throws {
221221
let tokenizer = try await AutoTokenizer.from(pretrained: "google-bert/bert-base-uncased")
222222
XCTAssertFalse(tokenizer.hasChatTemplate)
223-
XCTAssertThrowsError(try tokenizer.applyChatTemplate(messages: []))
224-
do {
225-
_ = try tokenizer.applyChatTemplate(messages: [])
226-
XCTFail()
227-
} catch let TokenizerError.chatTemplate(message) {
228-
XCTAssertEqual(message, "This tokenizer does not have a chat template, and no template was passed.")
229-
} catch {
230-
XCTFail()
223+
XCTAssertThrowsError(try tokenizer.applyChatTemplate(messages: [])) { error in
224+
guard let tokenizerError = error as? TokenizerError else {
225+
XCTFail("Expected error of type TokenizerError, but got \(type(of: error))")
226+
return
227+
}
228+
if case .missingChatTemplate = tokenizerError {
229+
// Correct error caught, test passes
230+
} else {
231+
XCTFail("Expected .missingChatTemplate, but got \(tokenizerError)")
232+
}
231233
}
232234
}
233235
}

0 commit comments

Comments
 (0)