2023-05-31 17:04:01 -04:00
# ifndef LLAMAMODEL_H_I_KNOW_WHAT_I_AM_DOING_WHEN_INCLUDING_THIS_FILE
# error This file is NOT meant to be included outside of llamamodel.cpp. Doing so is DANGEROUS. Be sure to know what you are doing before proceeding to #define LLAMAMODEL_H_I_KNOW_WHAT_I_AM_DOING_WHEN_INCLUDING_THIS_FILE
# endif
2023-04-15 15:57:32 -04:00
# ifndef LLAMAMODEL_H
# define LLAMAMODEL_H
# include <string>
# include <functional>
# include <vector>
# include "llmodel.h"
2023-05-31 17:04:01 -04:00
struct LLamaPrivate ;
2023-04-15 15:57:32 -04:00
class LLamaModel : public LLModel {
public :
LLamaModel ( ) ;
~ LLamaModel ( ) ;
bool loadModel ( const std : : string & modelPath ) override ;
bool isModelLoaded ( ) const override ;
2023-05-04 15:31:41 -04:00
size_t stateSize ( ) const override ;
size_t saveState ( uint8_t * dest ) const override ;
size_t restoreState ( const uint8_t * src ) override ;
2023-04-25 08:38:29 -04:00
void prompt ( const std : : string & prompt ,
2023-04-27 11:08:15 -04:00
std : : function < bool ( int32_t ) > promptCallback ,
std : : function < bool ( int32_t , const std : : string & ) > responseCallback ,
std : : function < bool ( bool ) > recalculateCallback ,
2023-04-25 08:38:29 -04:00
PromptContext & ctx ) override ;
2023-04-15 15:57:32 -04:00
void setThreadCount ( int32_t n_threads ) override ;
2023-05-21 16:45:29 -04:00
int32_t threadCount ( ) const override ;
2023-04-15 15:57:32 -04:00
2023-04-25 11:20:51 -04:00
protected :
void recalculateContext ( PromptContext & promptCtx ,
std : : function < bool ( bool ) > recalculate ) override ;
2023-04-15 15:57:32 -04:00
private :
LLamaPrivate * d_ptr ;
} ;
2023-05-31 17:04:01 -04:00
# endif // LLAMAMODEL_H