聊天输入与输出
要在 Playground 中与流程对话,必须在流程里加入 Chat Input 与 Chat Output 组件。 更多说明请参阅在 Playground 中测试流程。
Chat Input 与 Chat Output 组件用于处理 SkillFlaw 中的对话式输入与输出。
Chat Input
Chat Input 组件接收文本与文件输入,例如一条聊天消息或一个上传文件。
组件会把这些输入封装为 Message 数据,并附带发送者、会话 ID、时间戳、附件等聊天元数据,再传递给后续组件。
初始输入不应直接以完整 Message 对象提供,因为 Chat Input 组件本身负责构造该对象。
Chat Input 参数
有些参数在可视化编辑器中默认处于隐藏状态。 你可以通过组件标题栏菜单中的 控件 来修改全部参数。
| Name | Display Name | Info |
|---|---|---|
| input_value | Input Text | 输入参数。作为输入发送的消息文本。 |
| sender | Sender Type | 输入参数。标识发送者类型,可为 User 或 Language Model。 |
| sender_name | Sender Name | 输入参数。发送者名称;留空时默认取 User 或 Language Model。 |
| session_id | Session ID | 输入参数。聊天会话的唯一标识;留空时使用当前会话 ID。 |
| files | Files | 输入参数。随消息一起发送的文件。 |
| background_color | Background Color | 输入参数。消息图标的背景色。 |
| chat_icon | Icon | 输入参数。消息图标。 |
| should_store_message | Store Messages | 输入参数。是否将消息写入聊天历史。 |
| text_color | Text Color | 输入参数。发送者名称的文字颜色。 |
关于生成后的 Message 对象,以及哪些输入参数会被直接映射到 Message 属性,请参阅 Message 数据。
Chat Input 的 Message 构造方法
ChatInput 类提供异步方法,根据输入参数创建并存储一个 Message 对象。
该对象在 ChatInput 类的 message_response 方法中,通过 Message.create() 工厂方法生成。
_12message = 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)
Chat Output
Chat Output 组件接收其他组件产生的 Message、Data 或 DataFrame 数据;如有需要,它会先把输入转换成 Message,再把最终结果作为聊天消息发出。
有关这些数据类型,请参阅使用 SkillFlaw 数据类型。
在 Playground 中,聊天输出只展示 Message 中与聊天界面直接相关的部分,例如回复文本、发送者名称和附件。
如果你想查看更完整的消息元数据,请在 Playground 中检查消息日志。
通过 SkillFlaw API 调用流程时,接口响应中会包含 Chat Output 生成的 Message 对象,以及本次流程运行的其他返回数据。
由于 API 响应通常比较详细,实际集成时应在应用侧提取需要展示给用户的字段。
可参考 SkillFlaw 快速开始。
Chat Output 参数
有些参数在可视化编辑器中默认处于隐藏状态。 你可以通过组件标题栏菜单中的 控件 来修改全部参数。
| Name | Display Name | Info |
|---|---|---|
| input_value | Inputs | 输入参数。作为输出发送的消息文本。 |
| should_store_message | Store Messages | 输入参数。是否将消息写入聊天历史。 |
| sender | Sender Type | 输入参数。标识发送者类型,可为 User 或 Language Model。 |
| sender_name | Sender Name | 输入参数。发送者名称;留空时默认取 User 或 Language Model。 |
| session_id | Session ID | 输入参数。聊天会话的唯一标识;留空时使用当前会话 ID。 |
| data_template | Data Template | 输入参数。把 Data 输入 转成 text 的模板;留空时会动态使用 Data 对象的 text 键。 |
| background_color | Background Color | 输入参数。消息图标的背景色。 |
| chat_icon | Icon | 输入参数。消息图标。 |
| text_color | Text Color | 输入参数。发送者名称的文字颜色。 |
| clean_data | Basic Clean Data | 输入参数。启用后,在把 DataFrame 输入 转成文本时会清理空行、空单元格与多余换行。 |
关于生成后的 Message 对象,以及哪些输入参数会被直接映射到 Message 属性,请参阅 Message 数据。
在流程中使用 Chat Input 与 Chat Output
要在流程中使用 Chat Input 与 Chat Output,请将它们与接收或输出 Message 数据 的组件连接起来。
例如,下图把 Chat Input、Language Model 与 Chat Output 连接起来,构成一个最基础的 LLM 对话流程。

想看更完整的示例,可以参考:
- SkillFlaw 快速开始:创建并运行基础智能体流程。
- Basic Prompting 模板:创建一个同时接收聊天输入和额外提示词指令的 LLM 对话流程。
- 连接应用到智能体:了解更进阶的智能体流程、Prompt 设计,以及如何从外部应用触发流程。
通过 SkillFlaw API 发送聊天输入
你可以通过 SkillFlaw API 向 Chat Input 组件发送输入,从而触发流程运行:
_10curl --request POST \_10 --url "http://$SKILLFLAW_SERVER_ADDRESS/api/v1/run/$FLOW_ID" \_10 --header "Content-Type: application/json" \_10 --header "x-api-key: $SKILLFLAW_API_KEY" \_10 --data '{_10 "input_value": "What's the recommended way to set up Python on macOS?",_10 "output_type": "chat",_10 "input_type": "chat"_10}'
通过 SkillFlaw API 触发流程时,请求体需要包含 Chat Input 组件对应的输入参数值,例如 input_value。
并不是所有参数都必须显式提供。
例如,如果省略 session_id,系统会使用流程默认会话 ID。
如果你希望自定义会话 ID,则可以这样传入:
_10curl --request POST \_10 --url "http://$SKILLFLAW_SERVER_ADDRESS/api/v1/run/$FLOW_ID" \_10 --header "Content-Type: application/json" \_10 --header "x-api-key: $SKILLFLAW_API_KEY" \_10 --data '{_10 "input_value": "Whats the recommended way to set up Python on macOS",_10 "session_id": "$USER_ID",_10 "output_type": "chat",_10 "input_type": "chat"_10}'
更多说明请参阅通过 SkillFlaw API 触发流程。