跳到主要内容

Contribute to Langflow

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

要为 Langflow 贡献代码或文档,请遵循 pull request 指南

Langflow 服务概述

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

Langflow 由两个主要服务组成:

  • 前端:提供用户界面的 React/TypeScript 应用程序。
  • 后端:处理 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. 在您的本地计算机上,将新的 remote 添加到本地仓库:


_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 目录的内容Replicate到 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 目录的内容Replicate到 src/backend/base/langflow/frontend

    3. 启动 Langflow:


      _10
      uv run langflow run

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

设置您的 Langflow 开发环境

本节面向希望启用热重载来开发和测试代码更改的贡献者。

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

  1. 设置 Langflow 开发环境:


    _10
    make init

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

    • 检查 uv 和 npm。
    • 安装后端和前端依赖项。
    • 安装 pre-commit 钩子。
  2. 在单独的终端中运行后端和前端进行开发:


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


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

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

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

  3. 可选:安装 pre-commit 钩子以帮助保持您的更改整洁且格式良好。

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

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


    _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. 在您的本地计算机上,将新的 remote 添加到您的本地仓库:


    _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

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

  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 之前发现断开的链接。

打开拉取请求

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

  1. 打开一个新的 GitHub 拉取请求,将您的补丁提交到 main 分支。
  2. 确保 PR 标题遵循语义化提交约定。例如,功能使用 feat: add new feature,修复使用 fix: correct issue with X

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

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

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

Search