Set Environment Variables
Environment Variables in BAML
Sometimes you’ll see environment variables used in BAML, like in clients:
To set environment variables:
In the VSCode Playground
Once you open a .baml
file, in VSCode, you should see a small button over every BAML function: Open Playground
.
Then you should be able to set environment variables in the settings tab.
Or type BAML Playground
in the VSCode Command Bar (CMD + Shift + P
or CTRL + Shift + P
) to open the playground.
For your app (default)
BAML will expect these to be set already in your program before you import the baml_client in Python/ TS / etc.
Any of the following strategies for setting env vars are compatible with BAML:
- setting them in your shell before running your program
- in your
Dockerfile
- in your
next.config.js
- in your Kubernetes manifest
- from secrets-store.csi.k8s.io
- from a secrets provider such as Infisical / Doppler
- from a
.env
file (usingdotenv
cli) - using account credentials for ephemeral token generation (e.g. Vertex AI Auth Tokens)
For your app (manually)
Requires BAML Version 0.57+
If you don’t want BAML to try to auto-load your env vars, you can call manually reset_baml_env_vars
with the current environment variables.
Dynamically setting LLM API Keys
You can set the API key for an LLM dynamically by passing in the key as a header or as a parameter (depending on the provider), using the ClientRegistry.