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。
先决条件
克隆 Langflow 仓库
-
Fork Langflow GitHub 仓库。
-
在您的本地计算机上,将新的 remote 添加到本地仓库:
_10git 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:
-
构建前端静态文件:
_10cd src/frontend_10npm install_10npm run build -
将构建的
src/frontend/build
目录的内容Replicate到src/backend/base/langflow/frontend
。 -
启动 Langflow:
_10uv run langflow run
-
Langflow 前端在 http://localhost:7860
上提供服务。
使用 PowerShell 从源代码运行
要在 Windows 上从源代码运行 Langflow,您可以使用 Langflow 仓库中包含的脚本,或在终端中运行命令。
执行以下操作之一:
-
要使用包含的脚本安装并运行 Langflow,请导航到
scripts/windows
目录,然后运行build_and_run.ps1
文件。 -
要从 PowerShell 终端运行 Langflow:
-
构建前端静态文件:
_10cd src/frontend_10npm install_10npm run build -
将构建的
src/frontend/build
目录的内容Replicate到src/backend/base/langflow/frontend
。 -
启动 Langflow:
_10uv run langflow run
-
Langflow 前端在 http://localhost:7860
上提供服务。
设置您的 Langflow 开发环境
本节面向希望启用热重载来开发和测试代码更改的贡献者。
如果您只想在本地运行 Langflow 而不进行代码更改,请参阅从源代码运行 Langflow。
- Linux 或 macOS
- Windows
-
设置 Langflow 开发环境:
_10make init此命令通过执行以下操作来设置开发环境:
- 检查 uv 和 npm。
- 安装后端和前端依赖项。
- 安装 pre-commit 钩子。
-
在单独的终端中运行后端和前端进行开发:
_10# 在开发模式下运行后端(包括热重载)_10make backend_10# 在另一个终端中,在开发模式下运行前端(包括热重载)_10make frontendmake backend
和make frontend
命令会自动安装依赖项,因此您无需单独运行安装命令。前端在
http://localhost:3000
上提供服务,后端在http://localhost:7860
上提供服务。 -
可选:安装 pre-commit 钩子以帮助保持您的更改整洁且格式良好。
安装 pre-commit 钩子后,您必须使用
uv run git commit
而不是直接使用git commit
。make init
会自动安装 pre-commit 钩子,或者您可以运行以下命令手动安装:_10uv sync_10uv run pre-commit install -
在推送提交之前测试您的更改,请运行
make lint
、make format
和make unit_tests
。 要运行所有测试(包括覆盖率、单元和集成测试),请运行make tests
。
由于 Windows 不包含 make
,因此从源代码构建和运行 Langflow 使用 npm
和 uv
。
要设置 Langflow 开发环境,请在单独的终端中运行前端和后端:
-
要使用热重载运行前端开发服务器,请运行以下命令:
_10cd src/frontend_10npm install_10npm run start -
在另一个终端中,运行以下命令来运行后端:
_10uv run langflow run --backend-only前端在
http://localhost:3000
上提供服务,后端在http://localhost:7860
上提供服务。此设置为前端开发保留了热重载功能,无需在每次编辑后Replicate构建文件。
解决前端构建问题
如果您遇到前端构建问题或正在从旧版本的 Langflow 升级,请运行一次 make run_clic
。
_10make run_clic
此命令会清理构建缓存并从头开始重新构建所有内容,这在切换版本时可以解决大多数与前端相关的问题。
调试
仓库中包含一个 .vscode/launch.json
文件,用于在 VSCode 中调试后端,这比使用 Docker Compose 进行调试更快。
有关更多信息,请参阅 VSCode 文档。
其他贡献指南
贡献文档
文档使用 Docusaurus 构建,使用 Markdown 编写。 有关风格指南,请参阅 Google 开发者文档风格指南。
-
Fork Langflow GitHub 仓库。
-
在您的本地计算机上,将新的 remote 添加到您的本地仓库:
_10git remote add FORK_NAME https://github.com/GIT_USERNAME/langflow.git替换以下内容:
FORK_NAME
: 您的仓库 fork 的名称GIT_USERNAME
: 您的 Git 用户名
-
从您的本地 Langflow fork 的根目录,切换到
/docs
目录:_10cd docs如果您使用的是开发容器,请在主机终端(而非开发容器工作区内)运行文档构建。 在开发容器内运行文档构建可能无法正常工作。
-
安装依赖项并启动具有热重载功能的 本地 Docusaurus 静态站点:
_10yarn install_10yarn start文档在
http://localhost:3000
上提供服务。 -
要编辑和创建内容,请处理
langflow/docs/docs
目录中的.mdx
文件。以
.mdx
格式创建新文件。导航在
langflow/docs/sidebars.js
中定义。大多数页面使用
slug
进行简短交叉引用,而不是提供完整或相对的目录路径。 例如,如果一个页面的slug
是/cool-page
,您可以从任何其他/docs
页面使用[Cool page](/cool-page)
链接到它。 -
建议:进行一些更改后,运行
yarn build
以使用更强大的日志记录在本地构建站点。 这可以帮助您在创建 PR 之前发现断开的链接。
打开拉取请求
要提交拉取请求,请执行以下操作:
- 打开一个新的 GitHub 拉取请求,将您的补丁提交到
main
分支。 - 确保 PR 标题遵循语义化提交约定。例如,功能使用
feat: add new feature
,修复使用fix: correct issue with X
。
有关拉取请求标题的一些额外指导:
- 确保拉取请求描述清楚 地描述了问题和解决方案。如果 PR 修复了某个问题,请在 PR 描述中包含
Fixes #1234
来链接到已修复的问题。 - 拉取请求标题会出现在 Langflow 的发布说明中,因此它们应尽可能明确地解释 PR 的作用。
- 拉取请求应只修复一件事,并应包含对所修复内容的良好描述。
- Langflow 维护者将审查您的拉取请求并可能要求更改,因此请确保您关注您的 PR。感谢您的贡献!
有关更多信息,请参阅 Python 开发者指南。