Skip to content

Repository files navigation

llama-studio Logo

Latest Version Electron Bun React TypeScript Vite License Platform

llama-studio — 基于 llama.cpp 的本地大模型桌面工作站。
搜索下载模型、模板化多实例运行、Agent 编码工作台(含纯聊天模式),全程本地完成。


📑 目录


✨ 核心功能

一套完全本地运行的大模型工作台,覆盖从模型获取到智能体自动化的完整链路。

分类 主要界面
🔍 模型与下载 模型中心 · 模型 · 我的模板 · 模型文件夹
💬 对话与多模态 Web 界面 · 知识库 · OCR · 语音合成 · 语音转写 · 图像生成 · 音频工作室
🧰 分析与工具 模型工具 · 模型运行数据 · 性能测试 · Token 统计
🤖 智能体 Agent Code 工作台 · AI Agent
⚙️ 系统与后端 后端与引擎 · 设置 · 关于

🔍 模型与下载

  • 模型中心:在应用内搜索 Hugging Face / ModelScope,浏览仓库与文件、一键下载 GGUF 模型,无需打开浏览器。
  • 模型:本地模型库管理,查看已下载 GGUF 文件信息,通过 URL 直接下载或分析 HuggingFace 仓库并管理文件。
  • 我的模板:将模型配置保存为可复用模板,多端口同时运行多个模型,支持 Chat UI 与 API Only 两种启动模式。
  • 模型文件夹:统一管理文本 / 图片 / 语音 / OCR / stable-diffusion.cpp 五类模型文件夹,可增删外部目录。

💬 对话与服务

  • Web 界面:内嵌运行中的 llama.cpp server Web UI 和 audio.cpp,可复制服务地址、在外部浏览器打开、一键停止服务(旧称「llama-server」)。
  • 知识库:本地知识库(RAG),上传/拖入文档向量化入库,供对话时检索增强。
  • OCR:利用 llama.cpp 从图片中提取文字,全程本地处理。
  • 语音合成:本地 TTS(Qwen3-TTS / OuteTTS),文本离线生成 wav,支持多语言与参考音频克隆音色,可试听/下载。
  • 语音转写:本地 ASR(llama-mtmd),选择音频文件离线转写为文本,兼容 granite-speech / Qwen3-Omni 等。
  • 图像生成:文生图 / 图生图,调用运行中的 stable-diffusion.cpp(sd-server)兼容接口,支持采样器、提示词预设与历史记录。
  • 音频工作室:内嵌运行中的 audio.cpp 服务 Web UI,进行音乐 / 音频生成,可刷新、外部打开、停止服务。

🧰 分析与工具

  • 模型工具:GGUF 分析工具集——GGUF 检查器(元数据检查)、Token 可视化、显存计算器(显存与上下文层数估算)、模型对比。
  • 模型运行数据:运行中模型的 CPU、内存等资源占用实时监控。
  • 性能测试:内置 llama-bench 基准测试视图,一键跑分对比模型吞吐。
  • Token 统计:基于本地使用记录的 Token 用量统计(按模型、按活动时间分布),纯本地、不联网。

🤖 智能体

  • Agent Code 工作台:本地模型驱动的编码代理,通过 20+ 内置工具(读写/编辑文件、代码搜索、目录分析、后台任务等)自主完成任务;配套文件树、Git diff 审查、变更汇总、内置浏览器、提示词配置、工具调用审计与调试面板。
    • 纯聊天模式:原独立的「聊天」界面已移除,对话能力并入本工作台——开启纯聊天模式即可直接与模型对话,支持思考链、LaTeX 公式与代码块渲染。
    • 内置终端:多标签终端(xterm.js + node-pty),内嵌于工作台中,可指定工作目录、调整字号、多会话并行。
  • AI Agent:侧边栏管理与启动基于 npm 的 AI 代理脚本(安装状态检测、版本更新),扩展自动化工作流。

⚙️ 系统与后端

  • 后端与引擎:维护与切换多个 llama.cpp 二进制版本,自动检查新版本并在设置中一键下载更新。
  • 设置:全局偏好配置(主题、后端路径、下载目录等)。
  • 关于:版本与许可证信息。

🛠️ 技术栈

层级 技术
桌面框架 Electron 43
包管理器 Bun 1.4
UI 框架 React 19
语言 TypeScript 5
构建工具 Vite 5 + electron-vite
状态管理 Zustand
终端 xterm.js + node-pty
Markdown 渲染 react-markdown + KaTeX
文档解析 PDF.js、Mammoth.js
PDF 导出 jsPDF + html2canvas
图标 Lucide React
打包 electron-builder

🚀 快速开始

环境要求

  • Bun ≥ 1.4(依赖安装与脚本运行,推荐)
  • Node.js ≥ 18(构建及部分原生工具需要)
  • Git

本项目使用 Bun 管理依赖,锁文件为 bun.lock。若改用 npm 需注意 lockfile 差异。

安装与运行

# 克隆仓库
git clone https://github.com/zwchyt/llama-studio.git
cd llama-studio

# 安装依赖
bun install

# 启动开发模式
bun run dev

打包发布

bun run package

使用 electron-builder 构建安装包,产物位于 dist/ 目录。

注:bun run build 仅执行过滤构建脚本,不会产出安装包。

Electron 二进制:Bun 默认屏蔽 postinstall 脚本,可能跳过 Electron 二进制下载,启动时报 Electron uninstall。若出现,执行 node node_modules/electron/install.js 提取二进制,或运行 bun pm trust 允许安装脚本。


📖 使用指南

1. 浏览与下载模型

  • 打开 模型中心 标签页,搜索 Hugging Face 上的 GGUF 模型。
  • 点击模型查看详情,选择量化版本,一键下载。

2. 创建执行模板

  • 进入 我的模板,点击 新建模板。
  • 选择已下载的模型,配置上下文长度、GPU 层数等 llama.cpp 参数。
  • 选择 Chat UI(交互对话)或 API Only(服务端)启动模式。

3. 运行模型

  • 在模板上点击 运行,后端会自动启动并输出运行日志。
  • Chat UI 模式可直接对话;API Only 模式使用提供的端点地址。

4. 直接与模型对话

  • 模型运行后,进入 Agent Code 视图并开启 纯聊天 模式,即可与模型对话(无需浏览器)。
  • 支持思考链展示、LaTeX 公式与代码块渲染,以及朗读 / 继续生成等操作。

5. 使用 Agent Code 工作台

  • 进入 Agent Code 视图,选择项目工作区目录并连接运行中的模型。
  • 在会话中下达任务,模型会调用工具读写文件完成编码;通过顶栏的 变更 审查 Git diff,审计 / 调试 面板追踪工具调用。

6. 基准测试与监控

  • 在 性能测试 视图选择模型一键跑分;在 模型运行数据 视图查看运行中模型的资源占用。

7. 管理后端

  • 进入 设置 → 后端与引擎,切换或更新 llama.cpp 版本。

8. 使用 AI Agent 脚本

  • 从侧边栏打开 AI Agent 面板,管理基于 npm 的代理脚本。

9. OCR 与文档处理

  • 在 OCR 视图中上传图片,利用正在运行的模型提取文字。

⚙️ 配置说明

Electron Builder (electron-builder.yml)

配置应用打包参数——应用 ID、安装程序类型、文件关联、签名等。

聊天模板 (chat-templates/)

将自定义 Jinja2 聊天模板放入此目录,应用会自动加载。

执行模板 (templates/)

保存模板时自动生成,每个文件是一个以 UUID 命名的 JSON:

{
  "id": "uuid",
  "name": "我的模板",
  "modelPath": "models/qwen2.5-7b-q4_k_m.gguf",
  "ctxSize": 8192,
  "gpuLayers": 33,
  "port": 8080,
  "mode": "chat"
}

设置文件 (settings.json)

自动生成的全局偏好配置(主题、后端路径、下载目录等)。


🙏 致谢

  • hexllama — 上游 fork 来源及核心框架
  • llama.cpp — 由 Georgi Gerganov 及 ggml-org 社区维护

🔒 隐私声明

本应用 完全本地运行。不收集、不存储、不传输任何遥测或个人数据。模型下载依赖第三方服务(Hugging Face 和 ModelScope),后端二进制文件遵循各自的许可协议。


📄 许可证

本项目基于 hexllama 衍生。详见 LICENSE 文件。


为本地 AI 社区而建 ❤️

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages