| 61 | std::unique_ptr<tiktoken::CoreBPE> bpe; |
| 62 | |
| 63 | std::vector<int> encode(const std::string& prompt) const { |
| 64 | std::vector<int> tokens = {MistralSpecialTokens::BOS, MistralSpecialTokens::BEGIN_INST}; |
| 65 | if (bpe) { |
| 66 | auto result = bpe->encode_ordinary(prompt); |
| 67 | for (int token : result) { |
| 68 | tokens.push_back(token + config.default_num_special_tokens); |
| 69 | } |
| 70 | } |
| 71 | tokens.push_back(MistralSpecialTokens::END_INST); |
| 72 | return tokens; |
| 73 | } |
| 74 | }; |
| 75 | |
| 76 | NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(TokenizerConfig, pattern, num_vocab_tokens, default_vocab_size, default_num_special_tokens, version); |
no test coverage detected