Langflow 中的输入和输出组件
输入和输出组件定义了数据进入和离开流程的位置。
这两个组件都接受用户输入并返回一个 Message
对象,但用途不同。
文本输入组件接受一个文本字符串输入,并返回一个仅包含输入文本的 Message
对象。该输出不会显示在**游乐场 (Playground)** 中。
聊天输入组件接受多种输入类型,包括文本、文件和元数据,并返回一个包含文本以及发送者信息、会话 ID 和文件附件的 Message
对象。
聊天输入组件在**游乐场 (Playground)** 中提供了一个交互式聊天界面。
聊天输入
该组件从聊天中收集用户输入作为 Text
字符串,并将其封装在一个 Message 对象中,该对象包括输入文本、发送者信息、会话 ID、文件附件和样式属性。
它可以选择将消息存储在聊天历史中。
参数
输入
名称 | 显示名称 | 信息 |
---|---|---|
input_value | 文本 | 要作为输入传递的消息。 |
should_store_message | 存储消息 | 将消息存储在历史记录中。 |
sender | 发送者类型 | 发送者的类型。 |
sender_name | 发送者名称 | 发送者的名称。 |
session_id | 会话 ID | 聊天的会话 ID。如果为空,则使用当前会话 ID 参数。 |
files | 文件 | 随消息发送的文件。 |
background_color | 背景颜色 | 图标的背景颜色。 |
chat_icon | 图标 | 消息的图标。 |
text_color | 文本颜色 | 名称的文本颜色。 |
输出
名称 | 显示名称 | 信息 |
---|---|---|
message | 消息 | 包含所有指定属性的结果聊天消息对象。 |
消息方法
ChatInput
类提供了一个异步方法,用于根据输入参数创建和存储一个 Message
对象。Message
对象是在 ChatInput 类的 message_response
方法中使用 Message.create()
工厂方法创建的。
_12message = await Message.create(_12text=self.input_value,_12sender=self.sender,_12sender_name=self.sender_name,_12session_id=self.session_id,_12files=self.files,_12properties={_12"background_color": background_color,_12"text_color": text_color,_12"icon": icon,_12 },_12)
文本输入
**文本输入**组件接受一个文本字符串输入,并返回一个仅包含输入文本的 Message
对象。
该输出不会显示在**游乐场 (Playground)** 中。
参数
输入
名称 | 显示名称 | 信息 |
---|---|---|
input_value | 文本 | 要作为输出传递的文本/内容。 |
输出
名称 | 显示名称 | 信息 |
---|---|---|
text | 文本 | 结果文本消息。 |
聊天输出
**聊天输出**组件创建一个 Message 对象,该对象包含输入文本、发送者信息、会话 ID 和样式属性。
该组件接受以下输入类型。
参数
输入
名称 | 显示名称 | 信息 |
---|---|---|
input_value | 文本 | 要作为输出传递的消息。 |
should_store_message | 存储消息 | 用于在历史记录中存储消息的标志。 |
sender | 发送者类型 | 发送者的类型。 |
sender_name | 发送者名称 | 发送者的名称。 |
session_id | 会话 ID | 聊天的会话 ID。如果为空,则使用当前会话 ID 参数。 |
data_template | 数据模板 | 将数据转换为文本的模板。如果该选项留空,它将动态设置为数据的文本键。 |
background_color | 背景颜色 | 图标的背景颜色。 |
chat_icon | 图标 | 消息的图标。 |
text_color | 文本颜色 | 名称的文本颜色。 |
clean_data | 基本数据清理 | 启用后,DataFrame 输入在转换为文本时会被清理。清理会移除空行、单元格中的空行以及多个换行符。 |
输出
名称 | 显示名称 | 信息 |
---|---|---|
message | 消息 | 包含所有指定属性的结果聊天消息对象。 |
文本输出
**文本输出**接受单个文本输入,并返回一个包含该文本的 Message 对象。
该输出不会显示在**游乐场 (Playground)** 中。
参数
输入
名称 | 显示名称 | 信息 |
---|---|---|
input_value | 文本 | 要作为输出传递的文本。 |
输出
名称 | 显示名称 | 信息 |
---|---|---|
text | 文本 | 结果文本消息。 |
聊天组件示例流程
- 要在流程中使用**聊天输入**和**聊天输出**组件,请将它们连接到接受或发送 Message 类型的组件。
对于此示例,将**聊天输入**组件连接到 **OpenAI** 模型组件的**输入**端口,然后将 **OpenAI** 模型组件的 **Message** 端口连接到**聊天输出**组件。
- 在 **OpenAI** 模型组件中,在**OpenAI API 密钥**字段中,添加您的 **OpenAI API 密钥**。
流程如下所示
-
要向您的流程发送消息,请打开**游乐场 (Playground)**,然后输入消息。**OpenAI** 模型组件会做出响应。或者,在 **OpenAI** 模型组件中,输入**系统消息 (System Message)** 以控制模型的响应。
-
在 Langflow UI 中,点击您的流程名称,然后点击**日志 (Logs)**。**日志 (Logs)** 面板打开。在这里,您可以检查您的组件日志。
-
您的第一条消息由**聊天输入**组件发送到 **OpenAI** 模型组件。点击**输出 (Outputs)** 以查看发送的消息
_12"messages": [_12 {_12"message": "What's the recommended way to install Docker on Mac M1?",_12"sender": "User",_12"sender_name": "User",_12"session_id": "Session Apr 21, 17:37:04",_12"stream_url": null,_12"component_id": "ChatInput-4WKag",_12"files": [],_12"type": "text"_12 }_12 ],
- 您的第二条消息由 **OpenAI** 模型组件发送到**聊天输出**组件。这是模型响应的原始文本输出。**聊天输出**组件接受此文本作为输入并将其呈现为格式化的消息。点击**输出 (Outputs)** 以查看发送的消息
_10"outputs"_10"text_output"_10"message": "To install Docker on a Mac with an M1 chip, you should use Docker Desktop for Mac, which is optimized for Apple Silicon. Here's a step-by-step guide to installing Docker on your M1 Mac:\n\n1._10 ..._10"type": "text"
(可选)要查看流程中每个组件的输出,请点击.
使用 API 发送聊天消息
**聊天输入**组件通常是将消息传递给 Langflow API 的入口点。要以编程方式将相同的示例消息发送到您的 Langflow 服务器,请执行以下操作:
- 要获取您的 Langflow 端点,请点击**发布 (Publish)**,然后点击 **API 访问 (API access)**。
- 从 **cURL** 选项卡中复制命令,然后将其粘贴到您的终端中。它看起来类似于:
_10curl --request POST \_10--url 'http://127.0.0.1:7860/api/v1/run/51eed711-4530-4fdc-9bce-5db4351cc73a?stream=false' \_10--header 'Content-Type: application/json' \_10--data '{_10"input_value": "What's the recommended way to install Docker on Mac M1?",_10"output_type": "chat",_10"input_type": "chat"_10}'
- 修改
input_value
,使其包含问题:What's the recommended way to install Docker on Mac M1?
。
注意随消息传递的 output_type
和 input_type
参数。chat
类型提供了额外的配置选项,并且消息会显示在**游乐场 (Playground)** 中。text
类型仅返回文本字符串,不会显示在**游乐场 (Playground)** 中。
- 向消息的
data
对象添加一个自定义的session_id
。
_10curl --request POST \_10--url 'http://127.0.0.1:7860/api/v1/run/51eed711-4530-4fdc-9bce-5db4351cc73a?stream=false' \_10--header 'Content-Type: application/json' \_10--data '{_10"input_value": "Whats the recommended way to install Docker on Mac M1",_10"session_id": "docker-question-on-m1",_10"output_type": "chat",_10"input_type": "chat"_10}'
自定义的 session_id
值会在您的客户端和 Langflow 服务器之间启动一个新的聊天会话,这对于保持对话和 AI 上下文的独立非常有用。
- 发送 POST 请求。您的请求得到响应。
- 导航到**游乐场 (Playground)**。一个名为 `docker-question-on-m1` 的新聊天会话已出现,使用了您独特的 `session_id`。
- 要使用**调整 (Tweaks)** 修改**聊天输入**和**聊天输出**组件的其他参数,请点击**发布 (Publish)**,然后点击 **API 访问 (API access)**。
- 点击**调整 (Tweaks)** 以修改组件
data
对象中的参数。例如,禁用存储来自**聊天输入**组件的消息会在您的命令中添加一个**调整 (Tweak)**。
_13curl --request POST \_13--url 'http://127.0.0.1:7860/api/v1/run/51eed711-4530-4fdc-9bce-5db4351cc73a?stream=false' \_13--header 'Content-Type: application/json' \_13--data '{_13"input_value": "Text to input to the flow",_13"output_type": "chat",_13"input_type": "chat",_13"tweaks": {_13"ChatInput-4WKag": {_13"should_store_message": false_13 }_13 }_13}'
要确认您的命令正在使用该调整,请导航到**日志 (Logs)** 面板并查看来自**聊天输入**组件的请求。should_store_message
的值为 false
。