跳到主内容

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() 工厂方法创建的。


_12
message = await Message.create(
_12
text=self.input_value,
_12
sender=self.sender,
_12
sender_name=self.sender_name,
_12
session_id=self.session_id,
_12
files=self.files,
_12
properties={
_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文本结果文本消息。

聊天组件示例流程

  1. 要在流程中使用**聊天输入**和**聊天输出**组件,请将它们连接到接受或发送 Message 类型的组件。

对于此示例,将**聊天输入**组件连接到 **OpenAI** 模型组件的**输入**端口,然后将 **OpenAI** 模型组件的 **Message** 端口连接到**聊天输出**组件。

  1. 在 **OpenAI** 模型组件中,在**OpenAI API 密钥**字段中,添加您的 **OpenAI API 密钥**。

流程如下所示

Chat input and output components connected to an OpenAI model

  1. 要向您的流程发送消息,请打开**游乐场 (Playground)**,然后输入消息。**OpenAI** 模型组件会做出响应。或者,在 **OpenAI** 模型组件中,输入**系统消息 (System Message)** 以控制模型的响应。

  2. 在 Langflow UI 中,点击您的流程名称,然后点击**日志 (Logs)**。**日志 (Logs)** 面板打开。在这里,您可以检查您的组件日志。Logs pane

  3. 您的第一条消息由**聊天输入**组件发送到 **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
],

  1. 您的第二条消息由 **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 服务器,请执行以下操作:

  1. 要获取您的 Langflow 端点,请点击**发布 (Publish)**,然后点击 **API 访问 (API access)**。
  2. 从 **cURL** 选项卡中复制命令,然后将其粘贴到您的终端中。它看起来类似于:

_10
curl --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
}'

  1. 修改 input_value,使其包含问题:What's the recommended way to install Docker on Mac M1?

注意随消息传递的 output_typeinput_type 参数。chat 类型提供了额外的配置选项,并且消息会显示在**游乐场 (Playground)** 中。text 类型仅返回文本字符串,不会显示在**游乐场 (Playground)** 中。

  1. 向消息的 data 对象添加一个自定义的 session_id

_10
curl --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 上下文的独立非常有用。

  1. 发送 POST 请求。您的请求得到响应。
  2. 导航到**游乐场 (Playground)**。一个名为 `docker-question-on-m1` 的新聊天会话已出现,使用了您独特的 `session_id`。
  3. 要使用**调整 (Tweaks)** 修改**聊天输入**和**聊天输出**组件的其他参数,请点击**发布 (Publish)**,然后点击 **API 访问 (API access)**。
  4. 点击**调整 (Tweaks)** 以修改组件 data 对象中的参数。例如,禁用存储来自**聊天输入**组件的消息会在您的命令中添加一个**调整 (Tweak)**。

_13
curl --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

Search