245 ProjectKnowledgePanel · 项目知识面板
用途
列出项目知识文件,提供添加、移除,并显示 token 用量与容量提示。选择与读取文件由调用方完成。
最小示例
files := []chat.KnowledgeFile{{ID: "1", Name: "etiquette.pdf", Tokens: 12000}}
view := func(c *ui.Context) {
core.Use(c, core.Settings{})
v := chat.ProjectKnowledgePanel(c, files, chat.ProjectKnowledgePanelOptions{Capacity: 200000})
if v.Add {
log.Println("pick files")
}
}
ui.Render(view, 400, 300, 1)参数
func ProjectKnowledgePanel(c *ui.Context, files []KnowledgeFile, opts ProjectKnowledgePanelOptions) ProjectKnowledgePanelView。
KnowledgeFile:ID、Name、Tokens(不能为负)。
| 字段 | 类型 | 默认值 | 含义 |
|---|---|---|---|
Capacity | int | 必填 | 知识容量(tokens),必须为正,否则 panic。 |
Title | string | 内置“项目知识” | 面板标题。 |
Disabled | bool | false | 禁用添加与移除。 |
状态
正常用量(酒红进度)、≥ 80%(警告色 + 三角图标 + “即将用满”)、超出容量(危险色 + 圆形警示图标 + “超出容量”)、空列表、禁用。
事件
Add:请调用方打开文件选择。Removed:要移除的文件 ID。
键盘操作
- Tab:添加按钮,再进入文件列表;↑/↓ 在移除按钮间移动;Enter/Space 移除。
限制
- token 数由调用方计算;面板只做求和与比例显示。

