Skip to content

Commit 88e51a2

Browse files
committed
chore: update web-llm version
1 parent 6a5564d commit 88e51a2

File tree

10 files changed

+31
-79
lines changed

10 files changed

+31
-79
lines changed

app/client/api.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
import {
2-
ChatCompletionFinishReason,
3-
CompletionUsage,
4-
} from "@neet-nestor/web-llm";
1+
import { ChatCompletionFinishReason, CompletionUsage } from "@mlc-ai/web-llm";
52
import { CacheType, ModelType } from "../store";
63
export const ROLES = ["system", "user", "assistant"] as const;
74
export type MessageRole = (typeof ROLES)[number];

app/client/webllm.ts

Lines changed: 13 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ import {
1212
WebWorkerMLCEngine,
1313
CompletionUsage,
1414
ChatCompletionFinishReason,
15-
} from "@neet-nestor/web-llm";
15+
} from "@mlc-ai/web-llm";
1616

1717
import { ChatOptions, LLMApi, LLMConfig, RequestMessage } from "./api";
18-
import { LogLevel } from "@neet-nestor/web-llm";
18+
import { LogLevel } from "@mlc-ai/web-llm";
1919

2020
const KEEP_ALIVE_INTERVAL = 5_000;
2121

@@ -128,51 +128,19 @@ export class WebLLMApi implements LLMApi {
128128
log.error(JSON.stringify(err));
129129
errorMessage = JSON.stringify(err);
130130
}
131-
if (!errorMessage.includes("MLCEngine.reload(model)")) {
132-
console.error("Error in chatCompletion", errorMessage);
133-
if (
134-
errorMessage.includes("WebGPU") &&
135-
errorMessage.includes("compatibility chart")
136-
) {
137-
// Add WebGPU compatibility chart link
138-
errorMessage = errorMessage.replace(
139-
"compatibility chart",
140-
"[compatibility chart](https://caniuse.com/webgpu)",
141-
);
142-
}
143-
options.onError?.(errorMessage);
144-
return;
145-
}
146-
// Service worker has been stopped. Restart it
147-
try {
148-
await this.initModel(options.onUpdate);
149-
} catch (err: any) {
150-
let errorMessage = err.message || err.toString() || "";
151-
if (errorMessage === "[object Object]") {
152-
errorMessage = JSON.stringify(err);
153-
}
154-
console.error("Error while initializing the model", errorMessage);
155-
options?.onError?.(errorMessage);
156-
return;
157-
}
158-
try {
159-
const completion = await this.chatCompletion(
160-
!!options.config.stream,
161-
options.messages,
162-
options.onUpdate,
131+
console.error("Error in chatCompletion", errorMessage);
132+
if (
133+
errorMessage.includes("WebGPU") &&
134+
errorMessage.includes("compatibility chart")
135+
) {
136+
// Add WebGPU compatibility chart link
137+
errorMessage = errorMessage.replace(
138+
"compatibility chart",
139+
"[compatibility chart](https://caniuse.com/webgpu)",
163140
);
164-
reply = completion.content;
165-
stopReason = completion.stopReason;
166-
usage = completion.usage;
167-
} catch (err: any) {
168-
let errorMessage = err.message || err.toString() || "";
169-
if (errorMessage === "[object Object]") {
170-
errorMessage = JSON.stringify(err);
171-
}
172-
console.error("Error in chatCompletion", errorMessage);
173-
options.onError?.(errorMessage);
174-
return;
175141
}
142+
options.onError?.(errorMessage);
143+
return;
176144
}
177145

178146
if (reply) {

app/components/home.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import {
1313
Route,
1414
useLocation,
1515
} from "react-router-dom";
16-
import { ServiceWorkerMLCEngine } from "@neet-nestor/web-llm";
16+
import { ServiceWorkerMLCEngine } from "@mlc-ai/web-llm";
1717

1818
import MlcIcon from "../icons/mlc.svg";
1919
import LoadingIcon from "../icons/three-dots.svg";

app/components/settings.tsx

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,7 @@ import ClearIcon from "../icons/clear.svg";
99
import EditIcon from "../icons/edit.svg";
1010
import EyeIcon from "../icons/eye.svg";
1111

12-
import {
13-
Input,
14-
List,
15-
ListItem,
16-
Modal,
17-
Popover,
18-
Select,
19-
showConfirm,
20-
} from "./ui-lib";
12+
import { Input, List, ListItem, Modal, Select, showConfirm } from "./ui-lib";
2113
import { ModelConfigList } from "./model-config";
2214

2315
import { IconButton } from "./button";
@@ -42,7 +34,7 @@ import { ErrorBoundary } from "./error";
4234
import { InputRange } from "./input-range";
4335
import { useNavigate } from "react-router-dom";
4436
import { nanoid } from "nanoid";
45-
import { LogLevel } from "@neet-nestor/web-llm";
37+
import { LogLevel } from "@mlc-ai/web-llm";
4638
import { WebLLMContext } from "../client/webllm";
4739

4840
function EditPromptModal(props: { id: string; onClose: () => void }) {

app/store/chat.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,7 @@ import { estimateTokenLength } from "../utils/token";
1616
import { nanoid } from "nanoid";
1717
import { createPersistStore } from "../utils/store";
1818
import { WebLLMApi } from "../client/webllm";
19-
import {
20-
ChatCompletionFinishReason,
21-
CompletionUsage,
22-
} from "@neet-nestor/web-llm";
19+
import { ChatCompletionFinishReason, CompletionUsage } from "@mlc-ai/web-llm";
2320

2421
export type ChatMessage = RequestMessage & {
2522
date: string;

app/store/config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { LogLevel } from "@neet-nestor/web-llm";
1+
import { LogLevel } from "@mlc-ai/web-llm";
22
import { ModelRecord } from "../client/api";
33
import {
44
DEFAULT_INPUT_TEMPLATE,

app/worker/service-worker.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
import { MLCEngineServiceWorkerHandler, MLCEngine } from "@neet-nestor/web-llm";
1+
import { ServiceWorkerMLCEngineHandler } from "@mlc-ai/web-llm";
22
import { defaultCache } from "@serwist/next/worker";
33
import type { PrecacheEntry, SerwistGlobalConfig } from "serwist";
44
import { CacheFirst, ExpirationPlugin, Serwist } from "serwist";
55

66
declare const self: ServiceWorkerGlobalScope;
77
const CHATGPT_NEXT_WEB_CACHE = "chatgpt-next-web-cache";
8-
const engine = new MLCEngine();
9-
let handler: MLCEngineServiceWorkerHandler;
8+
let handler: ServiceWorkerMLCEngineHandler;
109

1110
async function checkGPUAvailablity() {
1211
if (!("gpu" in navigator)) {
@@ -23,7 +22,7 @@ async function checkGPUAvailablity() {
2322

2423
self.addEventListener("message", (event) => {
2524
if (!handler) {
26-
handler = new MLCEngineServiceWorkerHandler(engine);
25+
handler = new ServiceWorkerMLCEngineHandler();
2726
console.log("Service Worker: Web-LLM Engine Activated");
2827
}
2928

@@ -58,7 +57,7 @@ self.addEventListener("install", (event) => {
5857

5958
self.addEventListener("activate", (event) => {
6059
if (!handler) {
61-
handler = new MLCEngineServiceWorkerHandler(engine);
60+
handler = new ServiceWorkerMLCEngineHandler();
6261
console.log("Service Worker: Web-LLM Engine Activated");
6362
}
6463
});

app/worker/web-worker.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
import log from "loglevel";
2-
import { MLCEngineWorkerHandler, MLCEngine } from "@neet-nestor/web-llm";
2+
import { WebWorkerMLCEngineHandler } from "@mlc-ai/web-llm";
33

4-
const engine = new MLCEngine();
5-
let handler: MLCEngineWorkerHandler;
4+
let handler: WebWorkerMLCEngineHandler;
65

76
self.addEventListener("message", (event) => {});
87

98
self.onmessage = (msg: MessageEvent) => {
109
if (!handler) {
11-
handler = new MLCEngineWorkerHandler(engine);
10+
handler = new WebWorkerMLCEngineHandler();
1211
log.info("Web Worker: Web-LLM Engine Activated");
1312
}
1413
handler.onmessage(msg);

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"dependencies": {
1818
"@fortaine/fetch-event-source": "^3.0.6",
1919
"@hello-pangea/dnd": "^16.5.0",
20-
"@neet-nestor/web-llm": "^0.2.57",
20+
"@mlc-ai/web-llm": "^0.2.46",
2121
"@serwist/next": "^9.0.2",
2222
"@svgr/webpack": "^6.5.1",
2323
"emoji-picker-react": "^4.9.2",

yarn.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2089,10 +2089,10 @@
20892089
"@jridgewell/resolve-uri" "^3.1.0"
20902090
"@jridgewell/sourcemap-codec" "^1.4.14"
20912091

2092-
"@neet-nestor/web-llm@^0.2.57":
2093-
version "0.2.57"
2094-
resolved "https://registry.yarnpkg.com/@neet-nestor/web-llm/-/web-llm-0.2.57.tgz#6360624a01828e0fe30ebf2a956d055ad00f707d"
2095-
integrity sha512-hZig9pAzMc//fQBxZ1lt8db6G96zuLS9snzI/iKbHgM7ajvjV0Yun/eW4EojN4oawfzuVo8lcKe78pDHLIWUqw==
2092+
"@mlc-ai/web-llm@^0.2.46":
2093+
version "0.2.46"
2094+
resolved "https://registry.yarnpkg.com/@mlc-ai/web-llm/-/web-llm-0.2.46.tgz#bf32dab0710dba4967d49b2810b39184272d8840"
2095+
integrity sha512-NGf5ylTvOVwH1iN4Q2N0t/GfmrjDekFPMjWRO/WqEB3BhSC6+B2ZkLY3AZ43c2RbT2NqROp3BovgNq3Mxq3ONQ==
20962096
dependencies:
20972097
loglevel "^1.9.1"
20982098

0 commit comments

Comments
 (0)