Xianren Studio(仙人工作室)

一款对标 LM Studio 的 Windows 本地大模型桌面应用:浏览/下载/管理 GGUF 模型,本机 CPU/GPU 推理聊天,并提供 OpenAI 兼容的本地 API 服务。

当前功能

  • 模型管理:启动时自动扫描模型目录(可手动重新扫描),支持导入本地 GGUF、添加 OpenAI 兼容在线 API 模型(需「启用」后才会出现在对话页可选列表);本地模型可一键「部署」后台加载并查看进度
  • 模型广场:搜索 Hugging Face / ModelScope 上的 GGUF 模型,按量化版本一键下载(ModelScope 文件自动附带 SHA256 校验),下载进度实时显示
  • 聊天:流式输出、Markdown/代码高亮、采样参数调节、多会话管理;右侧栏「可选大模型服务」只列出有部署状态的大模型(运行中/启动中/出错,彩色状态点)与已启用的在线 API 模型,模型名不显示 .gguf 后缀;每条回答下方显示所用模型名;回答完成后自动预测用户可能说的话(可点击填入输入框,条数与开关可在设置调整);切换选项卡后保持会话与大模型等状态
  • 智能体:内置预制智能体(通用助手、代码专家、写作助手、翻译官、数据分析师、提示词优化师)并支持自定义,每个智能体拥有独立人设(系统提示词)与专属会话区,可单独对话干活;支持本地与在线大模型,可恢复被删除的预制智能体
  • 工作流:画布式可视化编排(开始 → 大模型/文本 → 输出,节点连线传参),内置翻译、总结、两步润色、写作助手等预制工作流并支持自定义;一键运行,支持本地与在线大模型,可在画布上实时查看每个节点的输出
  • 对话细节:空会话复用(已有无消息的新建对话时不再新建)、回答重新生成/版本历史/编辑重提、思考过程展示、会话置顶收藏与导入导出
  • 本地 API 服务OpenAI 兼容端点(/v1/models、/v1/chat/completions、/v1/embeddings),仅本机监听,可选 API Key

完整功能清单见 docs/FEATURES.md,代码组织与数据流见 docs/ARCHITECTURE.md

技术栈

  • 桌面壳:Tauri 2Rust+ WebView2
  • 前端:React 18 + TypeScript + Vite + Tailwind CSS
  • 应用核心:Rusttokio / axum / reqwest / rusqlite
  • 推理引擎:llama.cpp 官方 llama-server 子进程(CPU / CUDA / Vulkan
  • 存储:SQLite(元数据、会话、设置)

仓库结构

apps/desktop     Tauri 壳(Rust 命令层 + tauri.conf.json
crates/core      领域核心:模型注册表、会话、设置(SQLite
crates/engine    llama-server 子进程生命周期与流式聊天
crates/download  分片断点续传下载器
crates/api       OpenAI 兼容本地 API 服务(axum
ui/              React 前端
scripts/         构建/下载脚本
docs/            产品与技术方案、功能记录(FEATURES.md)、代码架构(ARCHITECTURE.md

环境要求(Windows

  • RuststableMSVC 工具链)
  • Visual Studio 2022 Build Tools(含 C++ 桌面开发)
  • Node.js 18+
  • WebView2 RuntimeWin10/11 一般自带)
  • 可选:CUDA ToolkitGPU 推理)/ Vulkan SDKAMD/Intel GPU

快速开始

# 1. 安装前端依赖
npm --prefix ui install

# 2. 获取预编译 llama.cpp 引擎(默认 CPU 版,可加 -Backend cuda/vulkan
.\scripts\fetch-llama.ps1

# 3. 下载一个测试模型(默认 Qwen2.5-0.5B Q4_K_M,约 400MB
.\scripts\download-test-model.ps1

# 4. 启动开发模式(自动拉起 Vite + Tauri
npm --prefix apps/desktop run dev

重要:调试版(debug)exe 不能直接双击运行。 target\debug\xianren-desktop.exe 在调试构建下会去连 Vite 开发服务器 (http://localhost:5173),不先启动前端就会显示“拒绝连接”,并会附带一个空终端窗口。 开发时请始终使用 npm --prefix apps/desktop run dev

直接双击运行的正式版

# 编译正式版(内嵌前端页面,无终端窗口;必须带 custom-protocol 特性)
cargo build --release -p xianren-desktop --features custom-protocol

# 运行
.\target\release\xianren-desktop.exe

正式版双击后:设置页确认引擎路径 → 模型库导入 GGUF → 聊天页选择模型即可对话。 如需安装包,可用 npm --prefix apps/desktop run buildtauri build 会自动启用该特性并打 NSIS 安装包)。

常用脚本

脚本 用途
scripts/fetch-llama.ps1 从 GitHub Releases 下载预编译 llama.cppcpu/cuda/vulkan
scripts/build-llama.ps1 从源码编译 llama.cpp(需要 CMake,可选 CUDA/Vulkan
scripts/download-test-model.ps1 下载迷你 GGUF 测试模型(支持 HF 镜像/ModelScope
scripts/generate-icons.ps1 重新生成应用图标
scripts/test_mcp_server.py 本地 MCP 测试服务器(Streamable HTTP,提供时间/回声工具,用于验证工具页与对话工具调用)

引擎与模型目录

运行时数据默认存放在 %APPDATA%\XianrenStudio

  • models/:下载的模型文件
  • engines/llama-server 可执行文件
  • logs/:引擎日志
  • xianren.dbSQLite 数据库

可在应用“设置”页修改模型目录与引擎路径。

S
Description
No description provided
Readme
489 KiB
0 Stars 1 Watchers 0 Forks
Languages
Rust 48.8%
TypeScript 48.8%
PowerShell 1.4%
Python 0.6%
CSS 0.4%