MujicaUI

Chat Sessions · #245

ProjectKnowledgePanel 浅色主题渲染快照
浅色 · 渲染快照
ProjectKnowledgePanel 深色主题渲染快照
深色 · 渲染快照

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(不能为负)。

字段类型默认值含义
Capacityint必填知识容量(tokens),必须为正,否则 panic。
Titlestring内置“项目知识”面板标题。
Disabledboolfalse禁用添加与移除。

状态

正常用量(酒红进度)、≥ 80%(警告色 + 三角图标 + “即将用满”)、超出容量(危险色 + 圆形警示图标 + “超出容量”)、空列表、禁用。

事件

Add:请调用方打开文件选择。Removed:要移除的文件 ID。

键盘操作

  • Tab:添加按钮,再进入文件列表;↑/↓ 在移除按钮间移动;Enter/Space 移除。

限制

  • token 数由调用方计算;面板只做求和与比例显示。