一个通过 WebGPU 运行本地大语言模型的简易 React 钩子

发布日期:2026-04-10 10:02:46   浏览量 :0
发布日期:2026-04-10 10:02:46  
0

2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家 

在浏览器中原生运行人工智能推理,是降低 API 成本并确保企业数据隐私的终极目标。但如果你真的尝试过构建它,就会知道现实情况其实非常令人头疼。

你必须手动配置 WebLLM 或 Transformers.js,设置专用的 Web Worker 以防止主 React 线程冻结,处理大型模型文件的浏览器缓存,还要编写自定义的状态管理逻辑,仅仅是为了跟踪加载进度。在你生成第一个词元之前,就需要花费数小时编写复杂且底层的样板代码。

我厌倦了反复配置相同的 WebGPU 架构,因此我把整个引擎封装成了一个即插即用的 React 钩子:react-brai

初始化引擎。该钩子会根据多个活跃标签页自动处理主从协商。

import { useLocalAI } from 'react-brai';

export default function 聊天() {
  const { 加载模型, 聊天, 已就绪, 每秒词元数 } = useLocalAI();

  useEffect(() => { 
      加载模型('Llama-3.2-1B-Instruct-q4f16_1-MLC'); 
  }, []);

  return <div>速度:{每秒词元数} 词元/秒</div>
}

现在只需像这样使用已加载的模型即可,

const 响应 = await 聊天([
  { 角色: "系统", 内容: "输出 JSON:{ 情感: '积极' | '消极' }" },
  { 角色: "用户", 内容: "我太喜欢这个库了!" }
]);
const 数据 = JSON.parse(响应);

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
支持 反馈 订阅 数据
回到顶部