45 lines
1.4 KiB
Markdown
45 lines
1.4 KiB
Markdown
# 258 RegenerateMenu · 重新生成菜单
|
||
|
||
## 用途
|
||
|
||
重新生成回复:同模型重试、换模型重试,以及更长、更短等改写变体。
|
||
|
||
## 最小示例
|
||
|
||
```go
|
||
view := func(c *ui.Context) {
|
||
mujica.Use(c, mujica.Settings{})
|
||
if v := mujica.RegenerateMenu(c, mujica.RegenerateMenuOptions{Models: []string{"Opus", "Sonnet"}, Current: "Opus"}); v.Chosen {
|
||
log.Println("retry", v.Choice.Kind, v.Choice.Model, v.Choice.Variant)
|
||
}
|
||
}
|
||
ui.Render(view, 400, 300, 1)
|
||
```
|
||
|
||
## 参数
|
||
|
||
`func RegenerateMenu(c *ui.Context, opts RegenerateMenuOptions) RegenerateMenuView`。
|
||
|
||
| 字段 | 类型 | 默认值 | 含义 |
|
||
| --- | --- | --- | --- |
|
||
| `Models` | `[]string` | nil | 可换用的模型;为空或只有当前模型时子菜单禁用。 |
|
||
| `Current` | `string` | "" | 当前模型,不出现在子菜单中。 |
|
||
| `Variants` | `[]string` | nil(内置) | 替换内置的更长、更短、更简单、更详细。 |
|
||
| `Disabled` | `bool` | false | 禁用。 |
|
||
|
||
## 状态
|
||
|
||
触发按钮(刷新图标)、菜单打开、子菜单、分组标题、禁用项。
|
||
|
||
## 事件
|
||
|
||
`Chosen` 与 `Choice`:`Kind` 为 `RegenerateAgain`、`RegenerateModel`(`Model`)或 `RegenerateVariant`(`Variant`)。
|
||
|
||
## 键盘操作
|
||
|
||
- Enter、Space 或 ↓ 打开菜单;↑/↓ 移动;→ 打开子菜单,← 返回;Enter 选择;Escape 关闭。
|
||
|
||
## 限制
|
||
|
||
- 菜单在窗口内绘制(DropdownMenu),不使用系统菜单。
|