MoonKraken/rusty_llama
A simple ChatGPT clone in Rust on both the frontend and backend. Uses open source language models and TailwindCSS.
Rusty Llama Webapp – 快速概览
它是什么 – 一个完全用 Rust 编写的极简聊天机器人 Web 应用程序。它使用:
- Leptos(基于 Rust 的 UI 框架)作为前端,并使用 TailwindCSS 进行样式设计。
- Actix 作为 HTTP 服务器。
- mistral.rs 在同一个进程中直接运行开源 LLM(例如 Qwen-3.8 B)的推理。
为什么它很重要 – 展示了无需任何 Python、Node 或外部推理服务即可构建全栈 AI 驱动的应用程序。模型在同一台机器上本地运行,使用 Apple Metal、CUDA 或仅 CPU 的后端。
如何运行
安装正确的 Rust 工具链
rustup target add wasm32-unknown-unknown cargo install cargo-leptos --locked # 提供 `cargo leptos`需要 Rust 1.88+。
设置 GPU 支持
- Apple Silicon – 在
Cargo.toml中保留metal功能。安装 Metal 工具链:xcodebuild -runFirstLaunch xcodebuild -downloadComponent MetalToolchain xcrun metal --version - NVIDIA – 将
mistralrs依赖项中的metal替换为cuda。 - 仅 CPU – 只需移除功能标志。
- Apple Silicon – 在
配置模型(默认为 Qwen-3.8 27B,4-bit 量化,约 17 GB)
- 创建一个
.env文件(或编辑现有文件):MODEL_REPO=bartowski/Qwen3.8-27B-GGUF MODEL_FILE=Qwen3.8-27B-Q4_K_M.gguf - 首次启动时,
mistral.rs会将 GGUF 文件下载到~/.cache/huggingface。 - 若要使用其他模型,请更改
MODEL_FILE或将MODEL_PATH指向本地的.gguf文件或分片目录。 - 如果模型缺少嵌入式聊天模板,请将
CHAT_TEMPLATE设置为 Jinja 字符串或 JSON 文件。
- 创建一个
运行应用程序
cargo leptos watch # 构建 Rust 服务器,编译 Tailwind,并监听更改然后在浏览器中打开 http://localhost:3000/。
首次构建可能需要几分钟,因为
mistral.rs需要编译 Metal/CUDA 内核。
你将看到什么
- 一个简单的聊天 UI(参见 repo 中的 GIF),你可以在其中输入提示词并从本地运行的 LLM 获得响应。
- 后端在进程内执行推理,因此延迟与直接通过 Python 库运行模型相当,但你完全保留在 Rust 生态系统中。
谁会使用它
- Rust 开发者:想要尝试 LLM 推理而无需学习 Python 的人。
- 边缘设备爱好者(Apple Silicon 或 NVIDIA GPU):寻找独立 AI 聊天机器人的人。
- 教育工作者:演示单一语言端到端 AI 管道的人。
限制与注意事项
- 仅支持 GGUF 格式模型;旧的 GGML
.bin文件无法工作。 - 默认模型为 27 B 参数;你需要足够的 RAM/VRAM(4-bit 版本约需 17 GB)。
- GPU 加速取决于正确的功能标志和可用的 Metal/CUDA 工具链。
总结 – Rusty Llama 是一个实用且极简的示例,展示了如何在纯 Rust 中构建基于 Web 的聊天机器人,利用 mistral.rs 进行设备端 LLM 推理,并利用 Leptos 实现响应式 UI。
相关
- 项目
- 项目
- 项目
- 项目