WebLLM
兼容性
仅在 Web 环境中可用。
您可以使用 LangChain 的 WebLLM 集成直接在 Web 浏览器中运行 LLM。
设置
您需要安装 WebLLM SDK 模块来与您的本地模型通信。
提示
请参阅 本节以获取有关安装集成包的常规说明。
- npm
- Yarn
- pnpm
npm install -S @mlc-ai/web-llm @langchain/community @langchain/core
yarn add @mlc-ai/web-llm @langchain/community @langchain/core
pnpm add @mlc-ai/web-llm @langchain/community @langchain/core
用法
请注意,第一次调用模型时,WebLLM 会下载该模型的完整权重。这可能是几 GB 的数据,具体取决于用户的互联网连接和计算机规格,可能不适合应用程序的所有最终用户。虽然浏览器会缓存对该模型的后续调用,但我们建议您使用尽可能小的模型。
我们还建议在调用和加载模型时使用 单独的 Web 工作线程,以避免阻塞执行。
// Must be run in a web environment, e.g. a web worker
import { ChatWebLLM } from "@langchain/community/chat_models/webllm";
import { HumanMessage } from "@langchain/core/messages";
// Initialize the ChatWebLLM model with the model record and chat options.
// Note that if the appConfig field is set, the list of model records
// must include the selected model record for the engine.
// You can import a list of models available by default here:
// https://github.com/mlc-ai/web-llm/blob/main/src/config.ts
//
// Or by importing it via:
// import { prebuiltAppConfig } from "@mlc-ai/web-llm";
const model = new ChatWebLLM({
model: "Phi-3-mini-4k-instruct-q4f16_1-MLC",
chatOptions: {
temperature: 0.5,
},
});
await model.initialize((progress: Record<string, unknown>) => {
console.log(progress);
});
// Call the model with a message and await the response.
const response = await model.invoke([
new HumanMessage({ content: "What is 1 + 1?" }),
]);
console.log(response);
/*
AIMessage {
content: ' 2\n',
}
*/
API 参考
- ChatWebLLM 来自
@langchain/community/chat_models/webllm
- HumanMessage 来自
@langchain/core/messages
也支持流式传输。
示例
有关完整的端到端示例,请查看 此项目。