基于浏览器端 transformers.js 和 Vite 的本地多模态聊天页面,支持:
- WebGPU 加载 Qwen ONNX 模型
- 文本对话
- 图片上传预览
- IndexedDB 本地对话历史
- 实时流式输出与 tokens/s 速度展示
.
├── index.html
├── package.json
├── README.md
├── vite.config.js
└── src
├── main.js
└── styles.css
先安装依赖:
npm install启动开发环境:
npm run dev然后打开:
- 启动页面后先选择模型。
- 点击“加载模型”。
- 首次加载会下载模型文件,时间取决于模型大小和网络环境。
- 模型加载完成后,可以输入文本或上传图片开始对话。
- 历史会保存在浏览器 IndexedDB 中。
- 从 CDN 内联原型迁移到了
Vite + npm工程结构 - 依赖改为
@huggingface/transformers@next - 模型源从
huggingworld/...修正为实际可加载的onnx-community/... - 为开发和预览服务增加了
COOP/COEP响应头,降低 WebGPU / ONNX 运行时兼容问题 - 页面增加了运行环境提示,便于定位 WebGPU、secure context、cross-origin isolation 相关问题
Qwen3.5-4B-ONNX体积和显存压力都很大,推荐先用0.8B验证链路。- 如果浏览器或驱动不支持 WebGPU,当前实现不会自动回退到 WASM。
- 模型下载依赖访问 Hugging Face 资源;网络受限时会直接加载失败。