mirror of
https://github.com/langflow-ai/langflow.git
synced 2026-07-24 04:47:23 +08:00
* fix: nightly now properly gets 1.9.0 branch (#12215) before it was attempting to pull release-notes as letters are alphanumerically after numbers when we sort -V then grab tail now we only look at branch names that follow the pattern '^release-[0-9]+\.[0-9]+\.[0-9]+$' * docs: add search icon (#12216) add-back-svg * initial-content * cut-1.8-release-and-include-next-version * stage-1.8.0-and-next --------- Co-authored-by: Adam-Aghili <149833988+Adam-Aghili@users.noreply.github.com>
185 lines
7.9 KiB
Plaintext
185 lines
7.9 KiB
Plaintext
---
|
|
title: Global variables
|
|
slug: /configuration-global-variables
|
|
---
|
|
|
|
import Icon from "@site/src/components/icon";
|
|
import Tabs from '@theme/Tabs';
|
|
import TabItem from '@theme/TabItem';
|
|
|
|
Use global variables to store and reuse credentials and generic values across all of your flows.
|
|
Global variables are typically used by components in flow, and you can use them in any field with the <Icon name="Globe" aria-hidden="true"/> global variable icon.
|
|
|
|
In contrast, [environment variables](/environment-variables), like `LANGFLOW_PORT` or `LANGFLOW_LOG_LEVEL`, are generally for broader settings that configure how Langflow runs.
|
|
However, Langflow can also source global variables from environment variables.
|
|
|
|
Langflow stores global variables in its internal database, and it encrypts the values using a secret key.
|
|
|
|
## Create a global variable
|
|
|
|
To create a new global variable, follow these steps.
|
|
|
|
1. In the Langflow header, click your profile icon, and then select **Settings**.
|
|
2. Click **Global Variables**.
|
|
|
|
3. Click **Add New**.
|
|
|
|
4. In the **Create Variable** dialog, enter a name for your variable in the **Variable Name** field.
|
|
|
|
5. Optional: Select a **Type** for your global variable. The available types are **Generic** (default) and **Credential**.
|
|
|
|
Langflow encrypts both **Generic** and **Credential** type global variables.
|
|
However, **Generic** variables aren't masked in the visual editor, whereas **Credential** variables are masked.
|
|
**Session ID** fields don't accept **Credential** (masked) variables.
|
|
|
|
6. Enter the **Value** for your global variable.
|
|
|
|
7. Optional: Use the **Apply To Fields** menu to select one or more fields that you want Langflow to automatically apply your global variable to. For example, if you select **OpenAI API Key**, Langflow automatically applies the variable to any **OpenAI API Key** field.
|
|
|
|
8. Click **Save Variable**.
|
|
|
|
You can now select your global variable from any text input field that displays the <Icon name="Globe" aria-hidden="true"/> **Globe** icon.
|
|
|
|
## Edit a global variable
|
|
|
|
1. In the Langflow header, click your profile icon, and then select **Settings**.
|
|
|
|
2. Click **Global Variables**.
|
|
|
|
3. Click on the global variable you want to edit.
|
|
|
|
4. In the **Update Variable** dialog, you can edit the following fields: **Variable Name**, **Value**, and **Apply To Fields**.
|
|
|
|
5. Click **Update Variable**.
|
|
|
|
## Delete a global variable
|
|
|
|
Deleting a global variable permanently deletes the value from the database.
|
|
Flows that reference the deleted global variable will fail.
|
|
|
|
1. In the Langflow header, click your profile icon, and then select **Settings**.
|
|
|
|
2. Click **Global Variables**.
|
|
|
|
3. Click the checkbox next to the global variable that you want to delete.
|
|
|
|
4. Click <Icon name="Trash2" aria-hidden="true"/> **Delete**.
|
|
|
|
The global variable is deleted from the database.
|
|
|
|
## Add custom global variables from the environment {#add-custom-global-variables-from-the-environment}
|
|
|
|
Langflow can source custom global variables from your runtime environment.
|
|
For information about how Langflow detects and applies environment variables, see [Langflow environment variables](/environment-variables).
|
|
|
|
Langflow automatically generates global variables based on [`constants.py`](https://github.com/langflow-ai/langflow/blob/main/src/lfx/src/lfx/services/settings/constants.py) if it detects any matching environment variables.
|
|
For example, if you set `OPENAI_API_KEY` in your runtime environment, Langflow automatically generates a global variable using that value.
|
|
|
|
You can declare additional variables in `LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT`.
|
|
For example, `LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT=WATSONX_PROJECT_ID,WATSONX_API_KEY` creates global variables named `WATSONX_PROJECT_ID` and `WATSONX_API_KEY` in Langflow's database.
|
|
Then, you can use these variables wherever they are needed in your component settings.
|
|
|
|
<Tabs>
|
|
<TabItem value="local" label="Local" default>
|
|
|
|
If you installed Langflow locally, set `LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT` in your Langflow `.env` file:
|
|
|
|
1. Create or edit your Langflow `.env` file.
|
|
|
|
2. Add the `LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT` environment variable as follows:
|
|
|
|
You can specify the variables either as a comma-separated string with no spaces, or as a JSON list:
|
|
|
|
```text
|
|
# Option 1: Comma-separated string (no spaces)
|
|
LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT=VARIABLE1,VARIABLE2
|
|
|
|
# Option 2: JSON list format
|
|
LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT=["VARIABLE1", "VARIABLE2"]
|
|
```
|
|
|
|
Replace `VARIABLE1,VARIABLE2` with your additional variables that you want Langflow to source from the environment, such as `CUSTOM_API_KEY,INTERNAL_SERVICE_URL` or `["CUSTOM_API_KEY", "INTERNAL_SERVICE_URL"]`.
|
|
|
|
3. Save and close the file.
|
|
|
|
4. Start Langflow with the `.env` file:
|
|
|
|
```bash
|
|
uv run langflow run --env-file .env
|
|
```
|
|
|
|
Alternatively, you can set environment variables directly in the command line:
|
|
|
|
```bash
|
|
VARIABLE1="VALUE1" VARIABLE2="VALUE2" uv run langflow run --env-file .env
|
|
```
|
|
|
|
The command-line variables override matching variables in the `.env` file.
|
|
Expose your environment variables to Langflow in a manner that best suits your own environment.
|
|
|
|
5. Confirm that Langflow successfully sourced the global variables from the environment:
|
|
|
|
1. In the Langflow header, click your profile icon, and then select **Settings**.
|
|
|
|
2. Click **Global Variables**, and then make sure that your environment variables appear in the **Global Variables** list.
|
|
|
|
</TabItem>
|
|
<TabItem value="docker" label="Docker">
|
|
|
|
If you're using Docker, there are two ways that you can set `LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT`:
|
|
|
|
* On the command line:
|
|
|
|
```bash
|
|
docker run -it --rm \
|
|
-p 7860:7860 \
|
|
-e LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT="VARIABLE1,VARIABLE2" \
|
|
-e VARIABLE1="VALUE1" \
|
|
-e VARIABLE2="VALUE2" \
|
|
langflowai/langflow:latest
|
|
```
|
|
|
|
* In your `.env` file:
|
|
|
|
```bash
|
|
docker run -it --rm \
|
|
-p 7860:7860 \
|
|
--env-file .env \
|
|
-e VARIABLE1="VALUE1" \
|
|
-e VARIABLE2="VALUE2" \
|
|
langflowai/langflow:latest
|
|
```
|
|
|
|
The list in `LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT` includes only the variable names.
|
|
You must ensure that these environment variables are defined in your Docker environment, such as with `-e` or otherwise.
|
|
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
After starting Langflow, go to your Langflow **Settings** to confirm that the variables were created.
|
|
|
|
Only the **Name** and **Value** are taken from the environment.
|
|
You can edit the variables in your Langflow **Settings** if you want to configure additional options, such as the **Apply To Fields** option.
|
|
|
|
Global variables sourced from the environment are assigned the **Credential** type, which masks the values in the visual editor.
|
|
However, Langflow automatically encrypts _all_ global variables stored in the database.
|
|
|
|
## Disallow global variables from the environment
|
|
|
|
If you want to explicitly prevent Langflow from sourcing global variables from the environment, set `LANGFLOW_STORE_ENVIRONMENT_VARIABLES=False` in your `.env` file.
|
|
|
|
## Use environment variables for missing global variables {#use-environment-variables-for-missing-global-variables}
|
|
|
|
If you want to automatically set fallback values for your global variables to environment variables, set `LANGFLOW_FALLBACK_TO_ENV_VAR=True` in your `.env` file.
|
|
When this setting is enabled, if a global variable isn't found, Langflow attempts to use an environment variable with the same name as a backup.
|
|
|
|
For example, assume you have the following Langflow `.env` configuration, and your flow has a component that expects a `WATSONX_API_KEY` global variable:
|
|
|
|
```text
|
|
LANGFLOW_FALLBACK_TO_ENV_VAR=True
|
|
WATSONX_PROJECT_ID=your_project_id
|
|
WATSONX_API_KEY=your_api_key
|
|
```
|
|
|
|
When you run the flow, if there is no global variable named `WATSONX_API_KEY`, Langflow looks for an environment variable named `WATSONX_API_KEY`.
|
|
In this example, Langflow uses the `WATSONX_API_KEY` value from the `.env` to run the flow. |