#pragma once #include "engine/models/midashenglm_gen/assets.h" #include #include #include #include namespace engine::models::midashenglm_gen { struct MiDashengLmGenPromptBatch { std::vector prompts; std::vector token_ids; std::vector attention_mask; int64_t batch = 0; int64_t tokens = 0; }; class MiDashengLmGenTextTokenizer { public: explicit MiDashengLmGenTextTokenizer(std::shared_ptr assets); ~MiDashengLmGenTextTokenizer(); MiDashengLmGenTextTokenizer(const MiDashengLmGenTextTokenizer &) = delete; MiDashengLmGenTextTokenizer & operator=(const MiDashengLmGenTextTokenizer &) = delete; std::string build_prompt(std::string_view text) const; MiDashengLmGenPromptBatch encode_batch(const std::vector & texts) const; private: class Impl; std::shared_ptr impl_; }; } // namespace engine::models::midashenglm_gen