贡献组件
新组件作为 Component
类的对象添加。
依赖项被添加到 pyproject.toml 文件中。
向 Langflow 贡献示例组件
任何人都可以贡献示例组件。例如,要创建一个名为 DataFrame processor 的新数据组件,请按照以下步骤将其贡献给 Langflow。
- 创建一个名为
dataframe_processor.py
的 Python 文件。 - 将处理器编写为
Component
类的对象。您将创建一个新类DataFrameProcessor
,它将继承自Component
并重写基类的方法。
_10from typing import Any, Dict, Optional_10import pandas as pd_10from langflow.custom import Component_10_10class DataFrameProcessor(Component):_10 """A component that processes pandas DataFrames with various operations."""
- 定义类属性以提供有关自定义组件的信息:
_13from typing import Any, Dict, Optional_13import pandas as pd_13from langflow.custom import Component_13_13class DataFrameProcessor(Component):_13 """A component that processes pandas DataFrames with various operations."""_13_13 display_name: str = "DataFrame Processor"_13 description: str = "Process and transform pandas DataFrames with various operations like filtering, sorting, and aggregation."_13 documentation: str = "https://docs.langflow.org/components-dataframe-processor"_13 icon: str = "DataframeIcon"_13 priority: int = 100_13 name: str = "dataframe_processor"
display_name
:在 UI 中显示的用户友好名称。description
:对组件功能的简要描述。documentation
:详细文档的链接。icon
:用于视觉表示的表情符号或图标标识符。 更多信息请参见 贡献包。priority
:控制显示顺序的可选整数。较小的数字优先显示。name
:可选的内部标识符,默认为类名。
- 通过指定输入、输出和处理它们的方法来定义组件的接口。方法名必须与输出列表中的
method
字段匹配,这样 Langflow 才知道调用哪个方法来生成每个输出。 此示例创建了一个最小的自定义组件骨架 。 有关创建自定义组件的更多信息,请参见 创建自定义 Python 组件。
_21from typing import Any, Dict, Optional_21import pandas as pd_21from langflow.custom import Component_21_21class DataFrameProcessor(Component):_21 """A component that processes pandas DataFrames with various operations."""_21_21 display_name: str = "DataFrame Processor"_21 description: str = "Process and transform pandas DataFrames with various operations like filtering, sorting, and aggregation."_21 documentation: str = "https://docs.langflow.org/components-dataframe-processor"_21 icon: str = "DataframeIcon"_21 priority: int = 100_21 name: str = "dataframe_processor"_21_21 # input and output lists_21 inputs = []_21 outputs = []_21_21 # method_21 def some_output_method(self):_21 return ...
-
将
dataframe_processor.py
保存到src > backend > base > langflow > components
目录。 此示例添加了一个数据组件,因此将 其添加到/data
目录。 -
将组件依赖项添加到
src > backend > base > langflow > components > data > __init__.py
,如from .DataFrameProcessor import DataFrameProcessor
。 您可以在 Langflow 仓库中查看 /data/init.py。 -
将任何新的依赖项添加到 pyproject.toml 文件中。
-
为您的组件提交文档。对于此示例组件,您需要将文档提交到 数据组件页面。
-
以拉取请求的形式提交您的更改。Langflow 团队将审查、建议更改并将您的组件添加到 Langflow。
修改组件的最佳实践
在创建或更新组件时,请遵循以下最佳实践以保持向后兼容性并确保用户的流畅体验。
不要重命名类或 name
属性
更改类名或 name
属性会破坏所有现有用户的组件。这是因为前端测试 type
属性,该属性设置为类名或 name
属性。如果这些名称发生更改,组件实际上会变成一个新组件,旧组件会消失。
相反,请执行以下操作:
- 如果旧名称不清楚,只更改显示名称。
- 如果功能发生变化但仍然相关,只更改显示名称。
- 如果需要新的内部名称,将旧组件标记为
legacy=true
并创建新组件。
例如:
_10class MyCustomComponent(BaseComponent):_10 name = "my_custom_component_internal"_10 legacy = True
不要删除字段和输出
删除字段或输出可能导致边缘断开连接并改变组件的行为。
相反,将字段标记为 deprecated
并将它们保留在相同位置。如果绝对必须删除,您必须定义并记录迁移计划。始终向用户清楚地传达字段信息的任何变化。