容器化 Langflow 应用程序
在可视化编辑器中设计流程只是构建使用 Langflow 的应用程序的第一步。
一旦你拥有一个功能正常的流程,就可以在更大的应用程序(如网站或移动应用)中使用该流程。 由于 Langflow 既是 IDE 也是运行时,你可以使用 Langflow 在本地构建和测试你的流程,然后在生产环境中打包和部署你的流程。
本指南介绍了从初始设置到打包和部署的 Langflow 应用程序开发。 本文档不解释如何编写完整的应用程序;它只描述如何在更大的应用程序上下文中包含 Langflow。
目录结构
以下示例描述了一个最小 Langflow 应用程序的目录结构:
_10LANGFLOW-APPLICATION/_10├── docker.env_10├── Dockerfile_10├── flows/_10│ ├── flow1.json_10│ └── flow2.json_10├── langflow-config-dir/_10├── README.md
此目录包含以下内容:
docker.env
: 此文件被Replicate到 Docker 镜像中,作为容器根目录下的.env
文件。Dockerfile
: 此文件控制你的 Langflow 镜像的构建方式。/flows
: 此文件夹保存你想要托管的流程,也就是你的应用程序使用的流程。/langflow-config-dir
: 此文件夹在 Dockerfile 中被引用,作为你的 Langflow 部署的配置文件、数据库和日志的位置。README.md
: 这是你的应用程序文档的典型 README 文件。
这是一个 Langflow 应用程序目录的最小示例。
你的应用程序可能有额外的文件和文件夹,例如用于自定义组件的 /components
文件夹,或用于额外依赖项的 pyproject.toml
文件。
包管理
基础 Langflow Docker 镜像包含 Langflow 核心依赖项,因为它使用 langflowai/langflow:latest
作为父镜像。
如果你的应用程序需要额外的依赖项,请为这些依赖项创建一个 pyproject.toml
文件。
有关更多信息,请参阅 安装自定义依赖项。
要将带有额外依赖项的应用程序部署到 Docker,你必须将 pyproject.toml
和 uv.lock
文件Replicate到 Docker 镜像中。
为此,请将以下内容添加到你的 Langflow 应用程序的 Dockerfile 中:
_10COPY pyproject.toml uv.lock /app/
环境变量
docker.env
文件是一个加载到你的 Docker 镜像中的 .env
文件。
它包含控制 Langflow 行为的环境变量,如身份验证、数据库存储、API 密钥和服务器配置。
例如:
_10LANGFLOW_AUTO_LOGIN=True_10LANGFLOW_SAVE_DB_IN_CONFIG_DIR=True_10LANGFLOW_BASE_URL=http://0.0.0.0:7860_10OPENAI_API_KEY=sk-...
你可以在 Dockerfile 中设置环境变量,但如果你在 docker.env
和 Dockerfile 中都设置了环境变量,Langflow 会使用 docker.env
中设置的值。
Langflow 会自动将 预定义列表 中的环境变量转换为全局变量。
如果你的自定义环境变量不在此预定义列表中,你需要使用 LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT
环境变量显式包含它们。
此环境变量接受一个逗号分隔的环境变量列表,这些变量将从环境中获取并存储为全局变量。
例如,此配置在 Langflow 数据库中创建名为 WATSONX_PROJECT_ID
和 WATSONX_API_KEY
的全局变量,并使它们可用于组件中:
_10LANGFLOW_AUTO_LOGIN=True_10LANGFLOW_SAVE_DB_IN_CONFIG_DIR=True_10WATSONX_PROJECT_ID=your_project_id_10WATSONX_API_KEY=your_api_key_10LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT=WATSONX_PROJECT_ID,WATSONX_API_KEY
或者,设置 LANGFLOW_FALLBACK_TO_ENV_VAR=True
以允许在 Langflow 设置中设置的全局变量,如果 Langflow 无法从全局变量中检索变量值,则使用同名的环境变量。
例如,在此配置中,当组件引用 Langflow 数据库中不存在的全局变量 WATSONX_PROJECT_ID
或 WATSONX_API_KEY
时,Langflow 将自动使用相应的环境变量值作为回退。
_10LANGFLOW_AUTO_LOGIN=True_10LANGFLOW_SAVE_DB_IN_CONFIG_DIR=True_10LANGFLOW_FALLBACK_TO_ENV_VAR=True_10WATSONX_PROJECT_ID=your_project_id_10WATSONX_API_KEY=your_api_key
有关更多信息,请参阅 Langflow 环境变量 和 全局变量。
Secrets
为简单起见,Langflow 文档中的示例可能会直接引用 API 密钥和其他敏感值。 在您自己的应用程序中,您应该始终遵循管理密钥的行业最佳实践,例如使用环境变量或密钥管理工具。
有关生成 Langflow 中的身份验证密钥和管理密钥的信息,请参阅 API 密钥和身份验证。