#pragma once #include #include #include #include #include #include #include #include #include #include #include "expose.h" enum FileFormat { BADFORMAT=0, //unknown, uninit, or failed to load GGML=1, // 1=(original llama ggml, alpaca, GPT4ALL, GPTJ header) GGHF=2, // 2=(llama ggmf) GGJT=3, // 3=(llama ggjt) GPTJ_1=100, //the very first super old GPTJ format GPTJ_2=101, //pygmalion, uses old ggml lib GPTJ_3=102, //uses new ggml lib GPT2_1=200, GPT2_2=201 }; enum ModelLoadResult { FAIL = 0, SUCCESS = 1, RETRY_LOAD = 2, //used if it's suspected that the model is an older format }; bool llama_load_model(const load_model_inputs inputs, FileFormat file_format); generation_outputs llama_generate(const generation_inputs inputs, generation_outputs &output); ModelLoadResult gpttype_load_model(const load_model_inputs inputs, FileFormat in_file_format); generation_outputs gpttype_generate(const generation_inputs inputs, generation_outputs &output); void timer_start(); double timer_check(); void print_tok_vec(std::vector &embd); void print_tok_vec(std::vector &embd); FileFormat check_file_format(const std::string & fname);