Skip to content

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 or through the cli.

This .env file defines a llama32 alias for the ollama:llama3.2:1b model.

.env
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):

genaiscript.config.json
{
"modelAliases": {
"llama32": "ollama:llama3.2:1b"
}
}
  • environment variables with keys of the pattern GENAISCRIPT_MODEL_ALIAS=...
  • cli with the --model-alias flag
Terminal window
genaiscript run --model-alias llama32=ollama:llama3.2:1b

Alias of aliases

An model alias can reference another alias as long as cycles are not created.

genaiscript.config.json
{
"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 model
  • small: gpt-4o-mini model or similar. A smaller, cheaper faster model
  • vision: gpt-4o-mini. A model that can analyze images
  • reasoning: o1 or o1-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.

Terminal window
genaiscript run --provider anthropic