跳到主要内容

贡献给 Langflow

本指南旨在帮助您开始为 Langflow 做出贡献。 作为一个处于快速发展领域中的开源代码库,Langflow 欢迎各种形式的贡献,无论是新功能、改进的基础设施,还是更好的文档。

要为 Langflow 贡献代码或文档,请遵循 拉取请求指南

Langflow 服务概述

此概述将帮助您了解如何设置开发环境。

Langflow 由两个主要服务组成:

  • 前端 (Frontend):一个提供用户界面的 React/TypeScript 应用程序。
  • 后端 (Backend):一个处理 API 请求的 Python/FastAPI 服务。

在开发期间,前端和后端服务分别在不同的端口上运行:

  • 前端开发服务器:http://localhost:3000(支持热重载)。
  • 后端 API 服务器:http://localhost:7860

当您作为最终用户安装 Langflow 时,后端会在内部提供前端服务,从而使这两个服务都可以在单个端口(默认为 7860)上使用。

从源码安装 Langflow

通过 fork 仓库并设置开发环境,从源码安装 Langflow。

先决条件

  • uv 0.4 或更高版本
  • Node.js
  • Make(仅限 Linux 和 macOS)

克隆 Langflow 仓库

  1. Fork Langflow GitHub 仓库

  2. 将新的远程仓库添加到您本地机器上的本地仓库中:


_10
git remote add FORK_NAME https://github.com/GIT_USERNAME/langflow.git

替换以下内容:

  • FORK_NAME: 您 fork 的仓库名称
  • GIT_USERNAME: 您的 Git 用户名

从源码运行 Langflow

克隆仓库后,即使您不打算为代码库做贡献,也可以从源码运行 Langflow。 这将构建前端并将其通过后端在端口 7860 上提供服务。

以下说明适用于从源码运行 Langflow。有关支持热重载的开发环境,请参阅 设置开发环境

在 macOS/Linux 上从源码运行

在终端中,导航到 Langflow 目录的根目录,然后运行 make run_cli

此命令将执行以下操作:

  • 安装前端和后端依赖项
  • 构建前端静态文件
  • 使用默认设置启动应用程序

Langflow 前端在 http://localhost:7860 提供服务。

在 Windows CMD 上从源码运行

要在 Windows 上从源码运行 Langflow,您可以使用 Langflow 仓库中包含的脚本,或者在终端中运行命令。

执行以下操作之一:

  • 要使用包含的 Windows 批处理文件安装并运行 Langflow,请导航到 scripts/windows 目录,然后运行 build_and_run.bat 文件。

  • 要从 Windows 命令行运行 Langflow:

    1. 构建前端静态文件:


      _10
      cd src/frontend
      _10
      npm install
      _10
      npm run build

    2. 将构建好的 src/frontend/build 目录的内容复制到 src/backend/base/langflow/frontend

    3. 启动 Langflow:


      _10
      uv run langflow run

Langflow 前端在 http://localhost:7860 提供服务。

在 PowerShell 上从源码运行

要在 Windows 上从源码运行 Langflow,您可以使用 Langflow 仓库中包含的脚本,或者在终端中运行命令。

执行以下操作之一:

  • 要使用包含的脚本安装并运行 Langflow,请导航到 scripts/windows 目录,然后运行 build_and_run.ps1 文件。

  • 要从 PowerShell 终端运行 Langflow:

    1. 构建前端静态文件:


      _10
      cd src/frontend
      _10
      npm install
      _10
      npm run build

    2. 将构建好的 src/frontend/build 目录的内容复制到 src/backend/base/langflow/frontend

    3. 启动 Langflow:


      _10
      uv run langflow run

Langflow 前端在 http://localhost:7860 提供服务。

设置您的 Langflow 开发环境

提示

运行 make help 以显示所有可用的 make 命令。

本节适用于希望在启用热重载的情况下开发和测试代码更改的贡献者。

如果您只想在本地运行 Langflow 而不进行代码更改,请参阅 从源码运行 Langflow

  1. 设置 Langflow 开发环境:


    _10
    make init

    此命令通过执行以下操作来设置开发环境:

    • 检查 uv 和 npm。
    • 安装后端和前端依赖项。
    • 安装 pre-commit hook。
  2. 在不同的终端中分别运行后端和前端进行开发:


    _10
    # 以开发模式运行后端(包括热重载)
    _10
    make backend


    _10
    # 在另一个终端中,以开发模式运行前端(包括热重载)
    _10
    make frontend

    make backendmake frontend 命令会自动安装依赖项,因此您无需单独运行安装命令。

    前端在 http://localhost:3000 提供服务,后端在 http://localhost:7860 提供服务。

  3. 可选:安装 pre-commit hook 以帮助保持您的更改整洁且格式正确。

    安装 pre-commit hook 后,您必须使用 uv run git commit 而不是直接使用 git commit

    make init 会自动安装 pre-commit hook,或者您可以运行以下命令手动安装它们:


    _10
    uv sync
    _10
    uv run pre-commit install

  4. 要在推送提交之前测试您的更改,请运行 make lintmake formatmake unit_tests。 要运行所有测试,包括覆盖率、单元测试和集成测试,请运行 make tests

解决前端构建问题

如果您遇到前端构建问题或正在从旧版本的 Langflow 升级,请运行一次 make run_clic


_10
make run_clic

此命令会清理构建缓存并从头开始重新构建所有内容,这可以解决在不同版本之间切换时出现的大多数与前端相关的问题。

调试

仓库包含一个 .vscode/launch.json 文件,用于在 VSCode 中调试后端,这比使用 Docker Compose 调试更快。

有关更多信息,请参阅 VSCode 文档

其他贡献指南

贡献文档

文档使用 Docusaurus 构建,并使用 Markdown 编写。 有关风格指南,请参阅 Google 开发者文档风格指南

  1. 安装 Node.jsYarn

  2. Fork Langflow GitHub 仓库

  3. 将新的远程仓库添加到您本地机器上的本地仓库中:


    _10
    git remote add FORK_NAME https://github.com/GIT_USERNAME/langflow.git

    替换以下内容:

    • FORK_NAME: 您 fork 的仓库名称
    • GIT_USERNAME: 您的 Git 用户名
  4. 在您本地 Langflow fork 的根目录下,进入 /docs 目录:


    _10
    cd docs

    如果您使用的是开发容器 (dev container),请在主机终端(而不是开发容器工作区内部)运行文档构建。 在开发容器内部运行时,文档构建可能无法正常工作。

  5. 安装依赖项并启动支持热重载的本地 Docusaurus 静态网站:


    _10
    yarn install
    _10
    yarn start

    文档在 http://localhost:3000 提供服务。

  6. 要编辑和创建内容,请使用 langflow/docs/docs 目录中的 .mdx 文件。

    创建 .mdx 格式的新文件。

    导航定义在 langflow/docs/sidebars.js 中。

    大多数页面使用 slug 进行简写交叉引用,而不是提供完整或相对的目录路径。 例如,如果页面的 slug/cool-page,您可以在任何其他 /docs 页面中使用 [Cool page](/cool-page) 链接到它。

  7. 推荐做法:在进行更改后,运行 yarn build 以使用更强大的日志记录在本地构建网站。 这可以帮助您在创建 PR 之前发现断开的链接。

提交拉取请求 (Pull Request)

要提交拉取请求,请执行以下操作:

  1. 针对 main 分支提交一个新的 GitHub 拉取请求,并包含您的补丁。
  2. 确保 PR 标题遵循语义化提交 (semantic commit) 规范。例如,功能是 feat: add new feature,修复是 fix: correct issue with X

关于拉取请求标题的一些额外指导:

  • 确保拉取请求描述清晰地描述了问题和解决方案。如果 PR 修复了一个 issue,请在 PR 描述中包含指向该 issue 的链接,例如 Fixes #1234
  • 拉取请求标题会出现在 Langflow 的发布说明中,因此它们应尽可能明确地解释 PR 的作用。
  • 拉取请求应力求修复一件事,并应包含对所修复内容的良好描述。
  1. Langflow 维护者将审核您的拉取请求并可能要求更改,因此请务必关注您的 PR。感谢您的贡献!

有关更多信息,请参阅 Python 开发者指南.

Search