Model Aliases
You can define model aliases in your project to give friendly names to models and abstract away from a particular model version/tag.
So instead of hard-coding a model type,
script({ model: "openai:gpt-4o",})
You can use/define an alias like large
.
script({ model: "large",})
Model aliases can be defined as environment varialbles (through the .env
file),
in a configuration file, through the cli or in the script
function.
This .env
file defines a llama32
alias for the ollama:llama3.2:1b
model.
GENAISCRIPT_MODEL_LLAMA32="ollama:llama3.2:1b"
You can then use the llama32
alias in your scripts.
script({ model: "llama32",})
Defining aliases
The following configuration are support in order importance (last one wins):
- configuration file with the
modelAliases
field
{ "modelAliases": { "llama32": "ollama:llama3.2:1b" }}
- environment variables with keys of the pattern
GENAISCRIPT_MODEL_ALIAS=...
- cli with the
--model-alias
flag
genaiscript run --model-alias llama32=ollama:llama3.2:1b
- in the
script
function
script({ model: "llama32", modelAliases: { llama32: "ollama:llama3.2:1b", },})
Alias of aliases
An model alias can reference another alias as long as cycles are not created.
{ "modelAliases": { "llama32": "ollama:llama3.2:1b", "llama": "llama32" }}
Builtin aliases
By default, GenAIScript supports the following model aliases, and various candidates in different LLM providers.
large
:gpt-4o like
modelsmall
:gpt-4o-mini
model or similar. A smaller, cheaper faster modelvision
:gpt-4o-mini
. A model that can analyze imagesreasoning
:o1
oro1-preview
.reasoning_small
:o1-mini
.
The following aliases are also set so that you can override LLMs used by GenAIScript itself.
agent
:large
. Model used by the Agent LLM.memory
:small
. Moel used by the agent short term memory.
The default aliases for a given provider can be loaded using the provider
option in the cli.
genaiscript run --provider anthropic