环境变量
通常,环境变量(如 LANGFLOW_PORT 或 LANGFLOW_LOG_LEVEL)用于配置 Langflow 的运行方式。
这些是适用于整个 Langflow 部署的全局设置。
相比之下,全局变量是用户定义的值,存储在 Langflow 的数据库中,用于流中,例如 OPENAI_API_KEY。
Langflow 也可以从环境变量中获取全局变量。
有关更多信息,请参阅 Langflow 全局变量。
为 Langflow OSS 配置环境变量
Langflow 识别来自以下来源的 受支持的环境变量:
- 在您的终端中设置的环境变量。
- 启动 Langflow 时从
.env文件导入的环境变量。 - 使用 Langflow CLI 设置的环境变量,包括
--env-file选项和直接选项(如--port)。
您可以选择使用其中一个或多个来源。
优先级
如果在多个地方设置了相同的环境变量,将应用以下层次结构:
- Langflow CLI 选项覆盖所有其他来源。
.env文件覆盖系统环境变量。- 仅在未在其他地方设置时才使用系统环境变量。
当运行 Langflow Docker 镜像时,可以使用
-e标志设置额外的系统环境变量。
例如:
- 如果您在系统环境中设置了
LANGFLOW_PORT=8080,并在.env中设置了LANGFLOW_PORT=7860,Langflow 将使用.env中的7860。 - 如果您使用 Langflow CLI 运行
langflow run --env-file .env --port 9000,且您在.env中设置了LANGFLOW_PORT=7860,那么 Langflow 将使用 CLI 选项中的9000。
在终端中设置环境变量
运行以下命令为当前的终端会话设置环境变量:
- Linux 或 macOS
- Windows
- Docker
_10export VARIABLE_NAME='VALUE'
_10$env:VARIABLE_NAME='VALUE'
_10docker run -it --rm \_10 -p 7860:7860 \_10 -e VARIABLE_NAME='VALUE' \_10 langflowai/langflow:latest
当您启动 Langflow 时,它会查找您在终端中设置的环境变量。 如果它检测到受支持的环境变量,则会自动采用指定的值,但受优先级规则的约束。
从 .env 文件导入环境变量
-
如果 Langflow 正在运行,请退出 Langflow。
-
创建一个
.env文件,然后用您喜欢的编辑器打开它。 -
在
.env文件中定义 Langflow 环境变量。示例: .env
_29DO_NOT_TRACK=True_29LANGFLOW_AUTO_LOGIN=False_29LANGFLOW_AUTO_SAVING=True_29LANGFLOW_AUTO_SAVING_INTERVAL=1000_29LANGFLOW_BACKEND_ONLY=False_29LANGFLOW_BUNDLE_URLS=["https://github.com/user/repo/commit/hash"]_29LANGFLOW_CACHE_TYPE=async_29LANGFLOW_COMPONENTS_PATH=/path/to/components/_29LANGFLOW_CONFIG_DIR=/path/to/config/_29LANGFLOW_DATABASE_URL=postgresql://user:password@localhost:5432/langflow_29LANGFLOW_DEV=False_29LANGFLOW_FALLBACK_TO_ENV_VAR=False_29LANGFLOW_HEALTH_CHECK_MAX_RETRIES=5_29LANGFLOW_HOST=localhost_29LANGFLOW_LANGCHAIN_CACHE=InMemoryCache_29LANGFLOW_MAX_FILE_SIZE_UPLOAD=10000_29LANGFLOW_MAX_ITEMS_LENGTH=100_29LANGFLOW_MAX_TEXT_LENGTH=1000_29LANGFLOW_LOG_LEVEL=error_29LANGFLOW_OPEN_BROWSER=False_29LANGFLOW_PORT=7860_29LANGFLOW_REMOVE_API_KEYS=False_29LANGFLOW_SAVE_DB_IN_CONFIG_DIR=True_29LANGFLOW_SECRET_KEY=somesecretkey_29LANGFLOW_STORE_ENVIRONMENT_VARIABLES=True_29LANGFLOW_SUPERUSER=adminuser_29LANGFLOW_SUPERUSER_PASSWORD=adminpass_29LANGFLOW_WORKER_TIMEOUT=60000_29LANGFLOW_WORKERS=3更多示例请参阅 Langflow 存储库中的
.env.example。 -
保存并关闭
.env。 -
使用您的
.env文件启动 Langflow:- 本地
- Docker
_10uv run langflow run --env-file .env_10docker run -it --rm \_10-p 7860:7860 \_10--env-file .env \_10langflowai/langflow:latest如果您的
.env文件不在同一个目录下,请提供指向您的.env文件的路径。
启动时,Langflow 会从您的 .env 文件以及您在终端中设置的任何其他环境变量中导入环境变量,然后采用它们指定的值。
为开发环境配置环境变量
以下示例说明了如何在不同的开发场景中使用环境变量配置 Langflow。
- .env 文件
- Systemd 服务
- VSCode tasks.json
.env 文件是一个包含环境变量键值对的文本文件。
在您的应用程序或 Langflow 环境的根目录中创建或编辑 .env 文件,然后将您的配置变量添加到该文件中:
示例: .env
_29DO_NOT_TRACK=True_29LANGFLOW_AUTO_LOGIN=False_29LANGFLOW_AUTO_SAVING=True_29LANGFLOW_AUTO_SAVING_INTERVAL=1000_29LANGFLOW_BACKEND_ONLY=False_29LANGFLOW_BUNDLE_URLS=["https://github.com/user/repo/commit/hash"]_29LANGFLOW_CACHE_TYPE=async_29LANGFLOW_COMPONENTS_PATH=/path/to/components/_29LANGFLOW_CONFIG_DIR=/path/to/config/_29LANGFLOW_DATABASE_URL=postgresql://user:password@localhost:5432/langflow_29LANGFLOW_DEV=False_29LANGFLOW_FALLBACK_TO_ENV_VAR=False_29LANGFLOW_HEALTH_CHECK_MAX_RETRIES=5_29LANGFLOW_HOST=localhost_29LANGFLOW_LANGCHAIN_CACHE=InMemoryCache_29LANGFLOW_MAX_FILE_SIZE_UPLOAD=10000_29LANGFLOW_MAX_ITEMS_LENGTH=100_29LANGFLOW_MAX_TEXT_LENGTH=1000_29LANGFLOW_LOG_LEVEL=error_29LANGFLOW_OPEN_BROWSER=False_29LANGFLOW_PORT=7860_29LANGFLOW_REMOVE_API_KEYS=False_29LANGFLOW_SAVE_DB_IN_CONFIG_DIR=True_29LANGFLOW_SECRET_KEY=somesecretkey_29LANGFLOW_STORE_ENVIRONMENT_VARIABLES=True_29LANGFLOW_SUPERUSER=adminuser_29LANGFLOW_SUPERUSER_PASSWORD=adminpass_29LANGFLOW_WORKER_TIMEOUT=60000_29LANGFLOW_WORKERS=3
systemd 服务配置文件用于配置 Linux 系统服务。
要添加环境变量,请创建或编辑服务配置文件并添加 override.conf 文件。此文件允许您覆盖服务的默认环境变量。
示例: override.conf
_32[Service]_32Environment="DO_NOT_TRACK=true"_32Environment="LANGFLOW_AUTO_LOGIN=false"_32Environment="LANGFLOW_AUTO_SAVING=true"_32Environment="LANGFLOW_AUTO_SAVING_INTERVAL=1000"_32Environment="LANGFLOW_BACKEND_ONLY=false"_32Environment="LANGFLOW_BUNDLE_URLS=[\"https://github.com/user/repo/commit/hash\"]"_32Environment="LANGFLOW_CACHE_TYPE=async"_32Environment="LANGFLOW_COMPONENTS_PATH=/path/to/components/"_32Environment="LANGFLOW_CONFIG_DIR=/path/to/config"_32Environment="LANGFLOW_DATABASE_URL=postgresql://user:password@localhost:5432/langflow"_32Environment="LANGFLOW_DEV=false"_32Environment="LANGFLOW_FALLBACK_TO_ENV_VAR=false"_32Environment="LANGFLOW_HEALTH_CHECK_MAX_RETRIES=5"_32Environment="LANGFLOW_HOST=localhost"_32Environment="LANGFLOW_LANGCHAIN_CACHE=InMemoryCache"_32Environment="LANGFLOW_MAX_FILE_SIZE_UPLOAD=10000"_32Environment="LANGFLOW_MAX_ITEMS_LENGTH=100"_32Environment="LANGFLOW_MAX_TEXT_LENGTH=1000"_32Environment="LANGFLOW_LOG_ENV=container_json"_32Environment="LANGFLOW_LOG_FILE=logs/langflow.log"_32Environment="LANGFLOW_LOG_LEVEL=error"_32Environment="LANGFLOW_OPEN_BROWSER=false"_32Environment="LANGFLOW_PORT=7860"_32Environment="LANGFLOW_REMOVE_API_KEYS=false"_32Environment="LANGFLOW_SAVE_DB_IN_CONFIG_DIR=true"_32Environment="LANGFLOW_SECRET_KEY=somesecretkey"_32Environment="LANGFLOW_STORE_ENVIRONMENT_VARIABLES=true"_32Environment="LANGFLOW_SUPERUSER=adminuser"_32Environment="LANGFLOW_SUPERUSER_PASSWORD=adminpass"_32Environment="LANGFLOW_WORKER_TIMEOUT=60000"_32Environment="LANGFLOW_WORKERS=3"
有关 systemd 的更多信息,请参阅 Red Hat 文档。
位于 .vscode/tasks.json 的 tasks.json 文件是使用 Visual Studio Code 的开发环境配置文件。
在项目根目录中创建或编辑 .vscode/tasks.json 文件。
示例: .vscode/tasks.json
_47{_47 "version": "2.0.0",_47 "options": {_47 "env": {_47 "DO_NOT_TRACK": "true",_47 "LANGFLOW_AUTO_LOGIN": "false",_47 "LANGFLOW_AUTO_SAVING": "true",_47 "LANGFLOW_AUTO_SAVING_INTERVAL": "1000",_47 "LANGFLOW_BACKEND_ONLY": "false",_47 "LANGFLOW_BUNDLE_URLS": "[\"https://github.com/user/repo/commit/hash\"]",_47 "LANGFLOW_CACHE_TYPE": "async",_47 "LANGFLOW_COMPONENTS_PATH": "D:/path/to/components/",_47 "LANGFLOW_CONFIG_DIR": "D:/path/to/config/",_47 "LANGFLOW_DATABASE_URL": "postgresql://postgres:password@localhost:5432/langflow",_47 "LANGFLOW_DEV": "false",_47 "LANGFLOW_FALLBACK_TO_ENV_VAR": "false",_47 "LANGFLOW_HEALTH_CHECK_MAX_RETRIES": "5",_47 "LANGFLOW_HOST": "localhost",_47 "LANGFLOW_LANGCHAIN_CACHE": "InMemoryCache",_47 "LANGFLOW_MAX_FILE_SIZE_UPLOAD": "10000",_47 "LANGFLOW_MAX_ITEMS_LENGTH": "100",_47 "LANGFLOW_MAX_TEXT_LENGTH": "1000",_47 "LANGFLOW_LOG_ENV": "container_csv",_47 "LANGFLOW_LOG_FILE": "langflow.log",_47 "LANGFLOW_LOG_LEVEL": "error",_47 "LANGFLOW_OPEN_BROWSER": "false",_47 "LANGFLOW_PORT": "7860",_47 "LANGFLOW_REMOVE_API_KEYS": "true",_47 "LANGFLOW_SAVE_DB_IN_CONFIG_DIR": "false",_47 "LANGFLOW_SECRET_KEY": "somesecretkey",_47 "LANGFLOW_STORE_ENVIRONMENT_VARIABLES": "true",_47 "LANGFLOW_SUPERUSER": "adminuser",_47 "LANGFLOW_SUPERUSER_PASSWORD": "adminpass",_47 "LANGFLOW_WORKER_TIMEOUT": "60000",_47 "LANGFLOW_WORKERS": "3"_47 }_47 },_47 "tasks": [_47 {_47 "label": "langflow backend",_47 "type": "shell",_47 "command": ". ./langflownightly/Scripts/activate && langflow run",_47 "isBackground": true,_47 "problemMatcher": []_47 }_47 ]_47}
要使用上述 VSCode tasks.json 文件运行 Langflow,请在 VSCode 命令面板中选择 Tasks: Run Task > langflow backend。
为 Langflow Desktop 设置环境变量
当您从 Windows 或 macOS GUI 启动 Langflow Desktop 等基于 GUI 的应用程序时,您在终端中设置的环境变量不会自动可用。
对于 Windows,这意味着从“开始”菜单、桌面快捷方式或 Windows 资源管理器启动的任何基于 GUI 的应用程序。
对于 macOS,这意味着从 Finder、Spotlight、Launchpad 或 Dock 启动的任何基于 GUI 的应用程序。
要为 Langflow Desktop 设置环境变量,您需要根据操作系统使用特定的命令或文件。
- macOS
- Windows 系统属性
- Powershell
从 macOS GUI 启动时,macOS 版 Langflow Desktop 无法自动使用您在终端中设置的变量,例如 .zshrc 或 .bash_profile 中的变量。
要使环境变量对 macOS 上的 GUI 应用程序可用,您需要将 launchctl 与 plist 文件配合使用:
-
如果
LaunchAgents目录不存在,请创建它:_10mkdir -p ~/Library/LaunchAgents -
在
LaunchAgents目录中,创建一个名为dev.langflow.env.plist的文件。 -
将以下内容添加到
dev.langflow.env.plist中,然后根据需要为您的配置添加、更改或删除 Langflow 环境变量。此示例为从 macOS GUI 启动的所有 GUI 应用程序设置多个环境变量。
_21<?xml version="1.0" encoding="UTF-8"?>_21<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">_21<plist version="1.0">_21<dict>_21<key>Label</key>_21<string>dev.langflow.env</string>_21<key>ProgramArguments</key>_21<array>_21<string>/bin/sh</string>_21<string>-c</string>_21<string>_21launchctl setenv LANGFLOW_CONFIG_DIR /Users/your_user/custom/config ;_21launchctl setenv LANGFLOW_PORT 7860 ;_21launchctl setenv LANGFLOW_HOST localhost ;_21launchctl setenv ARIZE_API_KEY ak-..._21</string>_21</array>_21<key>RunAtLoad</key>_21<true/>_21</dict>_21</plist> -
使用
launchctl加载该文件:_10launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/dev.langflow.env.plist
从 Windows GUI 启动时,Windows 版 Langflow Desktop 无法自动使用您在终端中设置的变量,例如在 cmd 中使用 set 定义的变量或在 PowerShell 中使用 $env:VAR=... 定义的变量。
要使环境变量对 Langflow Desktop 应用程序可用,您必须使用“系统属性”界面或终端在用户或系统级别设置它们。
要使用“系统属性”界面设置环境变量,请执行以下操作:
-
按 Win + R,输入
SystemPropertiesAdvanced,然后按 Enter。 -
点击 环境变量。
-
在 用户变量 下,点击 新建。
提示要将设置应用于所有用户,请选择 系统变量。
-
输入您要设置的 Langflow 变量名称(如
LANGFLOW_CONFIG_DIR)和所需的值(如C:\Users\your_user\.langflow_config)。 -
点击 确定 保存变量。
-
重复此操作,直到您设置了所有必要的 Langflow 环境变量。
-
启动或重启 Langflow Desktop 以应用环境变量。
要使用 PowerShell 为 Windows 定义环境变量,请执行以下操作:
-
输入您要设置的 Langflow 变量名称(如
LANGFLOW_CONFIG_DIR)和所需的值(如C:\Users\your_user\.langflow_config)。要为当前用户设置环境变量:
_10[System.Environment]::SetEnvironmentVariable("LANGFLOW_CONFIG_DIR", "C:\Users\your_user\.langflow_config", "User")要为所有用户设置环境变量(您必须具有管理员权限):
_10[System.Environment]::SetEnvironmentVariable("LANGFLOW_CONFIG_DIR", "C:\Langflow\Config", "Machine") -
重复此操作,直到您设置了所有必要的 Langflow 环境变量。
-
启动或重启 Langflow Desktop 以应用环境变量。