导入和导出流程
您可以导出流程以在 Langflow 实例之间传输它们、与他人共享或创建备份。
导出流程
有三种导出流程的方法:
- 从项目页面,找到您要导出的流程,单击 更多,然后选择导出。
- 编辑流程时,单击共享,然后单击导出。
- 使用 Langflow API
/flows/download
端点。
导出的流程会作为名为 FLOW_NAME.json
的 JSON 文件下载到您的本地计算机。
有关更多信息,请参阅 Langflow JSON 文件内容。
保存我的 API 密钥
从 Langflow UI 导出时,您可以选择保存我的 API 密钥来导出流程_和_任何已定义的 API 密钥变量。 无论保存我的 API 密钥设置如何,非 API 密钥变量都包含在导出中。
如果您直接在组件的 API 密钥字段中输入了密钥值,那么保存我的 API 密钥会导出字面密钥值。
如果您的密钥存储在 Langflow 全局变量中,保存我的 API 密钥只导出变量名称。
当您或其他用户将流程导入到另一个 Langflow 实例时,该实例必须具有相同名称和有效值的 Langflow 全局变量才能成功运行流程。 如果任何变量缺失或无效,必须在导入流程后创建或编辑这些变量。
导出所有流程
如果您想导出项目中的所有流程,请执行以下操作之一:
- 转到项目页面,找到您要导出的项目,单击 选项,然后选择下载。
- 使用 Langflow API
/projects/download
端点。
项目的流程会作为 JSON 文件下载到 zip 压缩包中。
导入流程
您可以通过以下方式从本地计算机导入 Langflow JSON 文件:
- 从项目页面,单击 上传流程。
- 将 Langflow JSON 文件从文件资源管理器拖放到 Langflow 窗口中,从任何 Langflow 页面导入流程。
- 使用 Langflow API
/flows/upload/
端点上传一个 JSON 文件。 - 使用 Langflow API
/projects/upload
端点上传 Langflow 项目 zip 文件。
运行导入的流程
导入后,您的流程就可以使用了。 如果流程包含任何全局变量,请确保您的 Langflow 实例具有相同名称和有效值的全局变量。 有关更多信息,请参阅保存我的 API 密钥。
Langflow JSON 文件内容
导出的流程会作为名为 FLOW_NAME.json
的 JSON 文件下载到您的本地计算机。
Langflow JSON 文件包含描述组件和连接的节点和边,以及描述流程的附加元数据。
有关 Langflow JSON 文件的示例,请查看 Langflow 仓库中的 Basic Prompting.json 文件。
节点
节点表示构成流程的组件。 例如,此对象表示一个 Chat Input 组件:
_35{_35 "data": {_35 "description": "Get chat inputs from the Playground.",_35 "display_name": "Chat Input",_35 "id": "ChatInput-jFwUm",_35 "node": {_35 "base_classes": ["Message"],_35 "description": "Get chat inputs from the Playground.",_35 "display_name": "Chat Input",_35 "icon": "MessagesSquare",_35 "template": {_35 "input_value": {_35 "display_name": "Text",_35 "info": "Message to be passed as input.",_35 "value": "Hello"_35 },_35 "sender": {_35 "value": "User",_35 "options": ["Machine", "User"]_35 },_35 "sender_name": {_35 "value": "User"_35 },_35 "should_store_message": {_35 "value": true_35 }_35 }_35 },_35 "type": "ChatInput"_35 },_35 "position": {_35 "x": 689.5720422421635,_35 "y": 765.155834131403_35 }_35}
每个节点都有一个格式为 NODE_NAME-UUID
的唯一标识符,例如 ChatInput-jFwUm
。
入口点节点,例如 ChatInput
节点,是运行流程时执行的第一个节点。
边
边表示节点之间的连接。
ChatInput
节点和 OpenAIModel
节点之间的连接表示为一条边:
_22{_22 "className": "",_22 "data": {_22 "sourceHandle": {_22 "dataType": "ChatInput",_22 "id": "ChatInput-jFwUm",_22 "name": "message",_22 "output_types": ["Message"]_22 },_22 "targetHandle": {_22 "fieldName": "input_value",_22 "id": "OpenAIModel-OcXkl",_22 "inputTypes": ["Message"],_22 "type": "str"_22 }_22 },_22 "id": "reactflow__edge-ChatInput-jFwUm{œdataTypeœ:œChatInputœ,œidœ:œChatInput-jFwUmœ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}-OpenAIModel-OcXkl{œfieldNameœ:œinput_valueœ,œidœ:œOpenAIModel-OcXklœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}",_22 "source": "ChatInput-jFwUm",_22 "sourceHandle": "{œdataTypeœ: œChatInputœ, œidœ: œChatInput-jFwUmœ, œnameœ: œmessageœ, œoutput_typesœ: [œMessageœ]}",_22 "target": "OpenAIModel-OcXkl",_22 "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œOpenAIModel-OcXklœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}"_22}
此边显示 ChatInput
组件将 Message
类型输出到目标节点,即 OpenAIModel
节点。
OpenAIModel
组件在 input_value
字段接受 Message
类型。
附加元数据和项目信息
有关流程的附加信息存储在根 data
对象中。
- 元数据和项目信息,包括流程的名称、描述和
last_tested_version
。
_10{_10 "name": "Basic Prompting",_10 "description": "Perform basic prompting with an OpenAI model.",_10 "tags": ["chatbots"],_10 "id": "1511c230-d446-43a7-bfc3-539e69ce05b8",_10 "last_tested_version": "1.0.19.post2",_10 "gradient": "2",_10 "icon": "Braces"_10}
- 有关流程的视觉信息,定义流程在工作区中的初始位置。
_10"viewport": {_10 "x": -37.61270157375441,_10 "y": -155.91266341888854,_10 "zoom": 0.7575251406952855_10}
- 注释是帮助您在工作区内理解流程的评论。
它们可能包含链接、代码片段和其他信息。
注释使用 Markdown 编写并存储为
node
对象。
_10{_10 "id": "undefined-kVLkG",_10 "node": {_10 "description": "## 📖 README\nPerform basic prompting with an OpenAI model.\n\n#### Quick Start\n- Add your **OpenAI API key** to the **OpenAI Model**\n- Open the **Playground** to chat with your bot.\n..."_10 }_10}