Profiles#
A “profile” is defined by setting up .enkaidu/ in the current directory. Enkaidu will look for this folder from which it loads the following:
config.yaml|ymlconfig file, unless a config file is else explicitly specified. If there is anenkaidu.yaml|ymlin the current directory, both are loaded and the latter’s settings have precedence.variables.yaml|ymlfile that can be used to define variables accessible by prompt templates undervar.- Values can be strings, arrays of strings
- Values can also be hash maps, but only one level deep
prompts/folder inside which Enkaidu will find any file that has.yaml|ymlextension and attempt to load the prompts definitions, defined the same way asprompts:in the config file.- Prompts in the config file will override prompts with the same name defined in the profile.
system_prompts/folder inside which Enkaidu will find any file that has.yaml|ymlextension and attempt to load system prompt definitions, defined the same way assystem_prompts:in the config file.- System prompts in the config file will override those with the same name defined in the profile.
macros/folder inside which Enkaidu will find any file that has.yaml|ymlextension and attempt to load macro definitions, defined the same way asmacros:in the config file.- Macros in the config file will override those with the same name defined in the profile.
As of 0.8.7, Enkaidu will also consider YAML files in sub-folders under
prompts/,macros/andsystem_prompts/.
Prompts and macros can also be defined in a single file without using the scoped folders.
prompts.yaml|ymlsystem_prompts.yaml|ymlmacros.yaml|yml
If these files and files within folders exist, the folders are processed first, ensuring that the contents of the files supercede any of the same name defined in the files in the folders.