#ifndef LLAMAMODEL_H #define LLAMAMODEL_H #include #include #include #include "llmodel.h" class LLamaPrivate; class LLamaModel : public LLModel { public: LLamaModel(); ~LLamaModel(); bool loadModel(const std::string &modelPath) override; bool loadModel(const std::string &modelPath, std::istream &fin) override; bool isModelLoaded() const override; void prompt(const std::string &prompt, std::function promptCallback, std::function responseCallback, std::function recalculateCallback, PromptContext &ctx) override; void setThreadCount(int32_t n_threads) override; int32_t threadCount() override; protected: void recalculateContext(PromptContext &promptCtx, std::function recalculate) override; private: LLamaPrivate *d_ptr; }; #endif // LLAMAMODEL_H