#pragma once // TODO: Change to C-style API and move to ./examples for easy reuse. #include #include #include struct gpt_vocab { using id = int32_t; using token = std::string; std::map token_to_id; std::map id_to_token; }; struct gpt2_context; struct gpt2_context * gpt2_init(const char * path_model); void gpt2_free(struct gpt2_context * ctx); const char * gpt2_get_prompt(struct gpt2_context * ctx); void gpt2_set_prompt(struct gpt2_context * ctx, const char * prompt); std::vector gpt2_tokenize(const gpt2_context * ctx, const char * text); std::string gpt2_gen_text(gpt2_context * ctx, const char * text, int max_tokens);