bricks/docs/ai/llmout.md
2025-11-18 16:01:43 +08:00

64 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# UserInputView
控件功能:将用户输入的数据(包括文本、图像、音频、视频等)转换为 Markdown 格式展示,音视频媒体数据以独立播放器形式显示。
类型:容器控件
父类控件bricks.VBox
## 初始化参数
- `opts` (Object) - 配置选项,继承自 VBox 的通用参数:
- `data` (Object) - 用户输入的原始数据对象,键值对应字段名和值。
- `input_fields` (Array) - 字段定义数组,每个字段包含:
- `name` (String) - 字段名称(如 `video1`, `audio2`, `image3`, 普通文本等)
- `label` (String, 可选) - 显示标签,用于 Markdown 中标题展示
> 注意:`data` 中的文件 Blob 对象会通过 `URL.createObjectURL()` 转换为可预览的 URL。
## 主要事件
无显式自定义事件。在 `show_input(data)` 被调用时自动刷新内容布局。
---
# LlmOut
控件功能:根据大模型返回的 JSON 数据动态构建响应内容界面,支持推理文本、应答内容、错误提示、音频、视频、图片等多种类型内容的渲染。
类型:容器控件
父类控件bricks.VBox
## 初始化参数
- `opts` (Object) - 配置选项,继承自 VBox 的通用参数,无特殊构造参数。
内部状态属性(由 `update(data)` 方法维护):
- `reasoning_content` (String) - 累积的推理过程文本。
- `content` (String) - 累积的最终回答内容。
- `error` (String) - 错误信息文本。
- `images` (Array) - 图片 URL 列表。
- 各媒体控件实例:`rc_w`, `c_w`, `v_w`, `a_w`, `i_w` 等。
## 主要事件
### update(data)
触发条件:当接收到新的大模型输出数据时手动调用此方法。
参数 `data` (Object) 支持以下可选属性:
| 属性 | 类型 | 描述 |
|------|------|------|
| `reasoning_content` | String | 推理过程文本,通常以 Markdown 渲染 |
| `content` | String | 最终回复内容,支持 Markdown |
| `error` | String | 错误信息,将以红色样式显示 |
| `audio` | String | 音频资源,可以是 URL 或 Base64 编码字符串,自动处理协议前缀 |
| `video` | String | 视频资源,支持 URL 或 Base64 |
| `image` | String 或 Array[String] | 单张或多个图片 URL |
行为说明:
- 自动合并新增内容到已有字段中(追加模式)。
- 媒体资源首次出现时创建对应播放器组件AudioPlayer / VideoPlayer后续更新则调用其 `add_url()` 方法。
- 所有内容按顺序添加到容器中:错误 → 推理内容 → 回答内容 → 视频 → 音频 → 图片。
- 使用 `clear_widgets()` 清除旧组件后重新渲染,确保视图一致性。
> 注册信息:该控件通过 `bricks.Factory.register('LlmOut', bricks.LlmOut)` 注册,可用于配置化创建。