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:

  1. enkaidu.yaml|yml config file, if none exists in the current folder or somewhere else explicitly specified
  2. variables.yaml|yml file that can be used to define variables accessible by prompt templates under var.
    • Values can be strings, arrays of strings
    • Values can also be hash maps, but only one level deep
  3. prompts/ folder inside which Enkaidu will find any file that has .yaml|yml extension and attempts to load the prompts definitions, defined the same way as prompts: in the config file.
    • Prompts in the config file will override prompts with the same name defined in the profile.
  4. system_prompts/ folder inside which Enkaidu will find any file that has .yaml|yml extension and attempts to load system prompt definitions, defined the same way as system_prompts: in the config file.
    • System prompts in the config file will override those with the same name defined in the profile.
  5. macros/ folder inside which Enkaidu will find any file that has .yaml|yml extension and attempts to load macro definitions, defined the same way as macros: in the config file.
    • Macros in the config file will override those with the same name defined in the profile.

Prompts and macros can also be defined in a single file without using the scoped folders.

  • prompts.yaml|yml
  • system_prompts.yaml|yml
  • macros.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.