llama.cpp 内置了一个现代化的聊天界面,直接集成在 llama serve 中,支持多模态输入、MCPs 等功能。

快速开始

使用模型启动服务器并在浏览器中打开:

llama serve -hf ggml-org/gemma-4-e4b-it-GGUF:Q4_0 -c 0

然后访问 http://localhost:9931 开始聊天。如果服务器无法绑定到 9931 端口,请使用 --port 8081 指定另一个端口。

一些启动技巧:

  • -c 0 使用模型的完整上下文窗口。
  • 用户可以在设置面板中针对每个对话覆盖参数。
  • 若要从网络中的其他设备访问 WebUI,请添加 --host 0.0.0.0(例如:在笔记本电脑上远程托管模型并访问 WebUI)。

聊天功能

聊天界面实时流式传输响应并渲染丰富的输出内容:

  • Markdown: 支持表格、列表和语法高亮的代码块。
  • 数学公式: 使用 KaTeX 渲染 LaTeX 表达式。
  • 推理过程: 思考型模型会在一个可折叠的区块中显示其推理过程,与答案分开。您可以在设置中切换此功能的可见性。
  • HTML/JS 预览: 生成的网页代码可以内联渲染以便即时可视化。

附件

通过媒体下拉菜单或拖放操作向对话中添加文件:

  • 图像/PDF 适用于视觉语言模型 (JPEG, PNG, GIF, WebP, SVG, PDF)
  • 音频 MP3/WAV 适用于接受音频输入的模型

UI 知道每个模型的功能特性,并会阻止发送不兼容的内容(例如,向纯文本模型发送图像)。

管理对话

  • 分支: 编辑任何早期消息或重新生成任何响应以在该点分叉对话,自由导航各个分支,不会丢失任何内容
  • 搜索: 按标题或内容查找对话
  • 导入/导出: 将对话备份或分享为 JSON 文件

结构化输出

在设置中,您可以提供自定义 JSON schema 来约束模型的响应,这对于发票提取或数据解析等需要每次输出机器可读数据的任务非常有用。

在 WebUI 中:Settings → Developer → Custom JSON,并填入您的 schema:

{
	"json_schema": {
		"type": "object",
		"properties": {
			"sentiment": { "type": "string", "enum": ["positive", "neutral", "negative"] },
			"confidence": { "type": "number", "minimum": 0, "maximum": 1 },
			"summary": { "type": "string", "maxLength": 200 }
		},
		"required": ["sentiment", "confidence", "summary"]
	}
}

多模型支持

当服务器以路由模式运行时(未指定模型启动),UI 会显示一个包含已加载和可用模型的模型选择器。选择模型会自动加载它,您甚至可以在重新生成响应时中途切换模型。

自定义配置

默认 UI 首选项可以在启动时通过 --ui-config 设置(以下示例会将主题设置为深色,以 Markdown 格式渲染用户消息,并将长消息转换为文件附件。)

llama serve -hf ggml-org/gemma-4-e4b-it-GGUF:Q4_0 --ui-config '{"theme": "dark", "pasteLongTextToFileLen": 0, "renderUserContentAsMarkdown": true}'
UI flag

有关该界面的背景故事及更多使用示例,请参阅 GitHub 上的 WebUI 指南讨论帖。