From 5d1e52abbcd1eed743469fcebe471a0a03131566 Mon Sep 17 00:00:00 2001 From: Wauplin Date: Wed, 18 Jun 2025 11:11:29 +0200 Subject: [PATCH 1/5] [InferenceSnippet] do not fail entirely if snippets did not work --- .../InferenceSnippet/InferenceSnippet.svelte | 45 ++++++++++++++++--- 1 file changed, 39 insertions(+), 6 deletions(-) diff --git a/kit/src/lib/InferenceSnippet/InferenceSnippet.svelte b/kit/src/lib/InferenceSnippet/InferenceSnippet.svelte index aeedd7d38..9e26654a6 100644 --- a/kit/src/lib/InferenceSnippet/InferenceSnippet.svelte +++ b/kit/src/lib/InferenceSnippet/InferenceSnippet.svelte @@ -5,7 +5,11 @@ ModelDataMinimal, PipelineType, } from "@huggingface/tasks"; - import { type InferenceProvider, snippets } from "@huggingface/inference"; + import { + type InferenceProvider, + type InferenceProviderOrPolicy, + snippets, + } from "@huggingface/inference"; import { onMount, SvelteComponent } from "svelte"; import CodeBlock from "$lib/CodeBlock.svelte"; @@ -58,7 +62,32 @@ tags: conversational ? ["conversational"] : [], }; - const availableSnippets = snippets.getInferenceSnippets( + interface InferenceProviderMappingEntry { + adapter?: string; + adapterWeightsPath?: string; + hfModelId: string; + provider: string; + providerId: string; + status: "live" | "staging"; + task: PipelineType; + type?: "single-model" | "tag-filter"; + } + + function getInferenceSnippetsOrEmpty( + model: ModelDataMinimal, + provider: InferenceProviderOrPolicy, + inferenceProviderMapping?: InferenceProviderMappingEntry, + opts?: Record + ) { + try { + return snippets.getInferenceSnippets(model, provider, inferenceProviderMapping, opts); + } catch (error) { + console.warn("Failed to get inference snippets:", error); + return []; + } + } + + const availableSnippets = getInferenceSnippetsOrEmpty( model as ModelDataMinimal, selectedProvider, { @@ -80,8 +109,9 @@ $: clients = clientsByLanguage[selectedLanguage]; $: selectedClient = clients?.[0]; - $: code = snippets - .getInferenceSnippets( + let code: string | undefined = undefined; + $: { + const snippetsForCode = getInferenceSnippetsOrEmpty( model as ModelDataMinimal, selectedProvider, { @@ -94,8 +124,11 @@ { streaming, } - ) - .find((s) => s.language === selectedLanguage && s.client === selectedClient)?.content; + ); + code = snippetsForCode.find( + (s) => s.language === selectedLanguage && s.client === selectedClient + )?.content; + } const PRETTY_NAMES: Partial< Record From 9fca3d0c88c38b847b39b158a46a73bb1d1230e5 Mon Sep 17 00:00:00 2001 From: Wauplin Date: Wed, 18 Jun 2025 11:19:03 +0200 Subject: [PATCH 2/5] much better --- .../InferenceSnippet/InferenceSnippet.svelte | 34 ++++++++----------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/kit/src/lib/InferenceSnippet/InferenceSnippet.svelte b/kit/src/lib/InferenceSnippet/InferenceSnippet.svelte index 9e26654a6..423ef0353 100644 --- a/kit/src/lib/InferenceSnippet/InferenceSnippet.svelte +++ b/kit/src/lib/InferenceSnippet/InferenceSnippet.svelte @@ -109,26 +109,20 @@ $: clients = clientsByLanguage[selectedLanguage]; $: selectedClient = clients?.[0]; - let code: string | undefined = undefined; - $: { - const snippetsForCode = getInferenceSnippetsOrEmpty( - model as ModelDataMinimal, - selectedProvider, - { - hfModelId: providersMapping[selectedProvider]!.modelId, - providerId: providersMapping[selectedProvider]!.providerModelId, - status: "live", - task: pipeline, - provider: selectedProvider, - }, - { - streaming, - } - ); - code = snippetsForCode.find( - (s) => s.language === selectedLanguage && s.client === selectedClient - )?.content; - } + $: code = getInferenceSnippetsOrEmpty( + model as ModelDataMinimal, + selectedProvider, + { + hfModelId: providersMapping[selectedProvider]!.modelId, + providerId: providersMapping[selectedProvider]!.providerModelId, + status: "live", + task: pipeline, + provider: selectedProvider, + }, + { + streaming, + } + ).find((s) => s.language === selectedLanguage && s.client === selectedClient)?.content; const PRETTY_NAMES: Partial< Record From 1fae8dfc2cd8fbb3e50aa42f596c6e8e2849020c Mon Sep 17 00:00:00 2001 From: Lucain Date: Wed, 18 Jun 2025 11:29:59 +0200 Subject: [PATCH 3/5] Update kit/src/lib/InferenceSnippet/InferenceSnippet.svelte Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- kit/src/lib/InferenceSnippet/InferenceSnippet.svelte | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kit/src/lib/InferenceSnippet/InferenceSnippet.svelte b/kit/src/lib/InferenceSnippet/InferenceSnippet.svelte index 423ef0353..0bb056d4d 100644 --- a/kit/src/lib/InferenceSnippet/InferenceSnippet.svelte +++ b/kit/src/lib/InferenceSnippet/InferenceSnippet.svelte @@ -82,7 +82,10 @@ try { return snippets.getInferenceSnippets(model, provider, inferenceProviderMapping, opts); } catch (error) { - console.warn("Failed to get inference snippets:", error); + console.warn( + `Failed to get inference snippets for model "${model.id}" and provider "${provider}":`, + error + ); return []; } } From 0ef26e19637926fa127eca4dd9915da47a052b3c Mon Sep 17 00:00:00 2001 From: Wauplin Date: Wed, 18 Jun 2025 11:43:42 +0200 Subject: [PATCH 4/5] bump hf.js/inference --- kit/package-lock.json | 8 ++++---- kit/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/kit/package-lock.json b/kit/package-lock.json index 578712c9e..e15b50293 100644 --- a/kit/package-lock.json +++ b/kit/package-lock.json @@ -8,7 +8,7 @@ "name": "kit", "version": "0.0.1", "devDependencies": { - "@huggingface/inference": "^4.0.5", + "@huggingface/inference": "^4.0.6", "@huggingface/tasks": "^0.19.15", "@sveltejs/adapter-auto": "^2.0.0", "@sveltejs/adapter-static": "^2.0.3", @@ -497,9 +497,9 @@ } }, "node_modules/@huggingface/inference": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@huggingface/inference/-/inference-4.0.5.tgz", - "integrity": "sha512-/Qc45BGrN+FBA3JfdeoHfafxfNShH/dxvOsXbBdcxyxIRIYOyefeiXSlShZGVCaiqYpm+10na28D0YtvjKPTlw==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@huggingface/inference/-/inference-4.0.6.tgz", + "integrity": "sha512-c+2+O46l+NIFoNcA4Qgg4fHdj+HHxkpm/uo8L2xFnSLgaouRon5tf/5fQLMoWoxmJD5H6pHezPF+9hy1+OMAAg==", "dev": true, "dependencies": { "@huggingface/jinja": "^0.5.0", diff --git a/kit/package.json b/kit/package.json index d3339edeb..01d114156 100644 --- a/kit/package.json +++ b/kit/package.json @@ -14,7 +14,7 @@ "update-inference-providers": "npm ci && npm i @huggingface/inference@latest && npm i @huggingface/tasks@latest" }, "devDependencies": { - "@huggingface/inference": "^4.0.5", + "@huggingface/inference": "^4.0.6", "@huggingface/tasks": "^0.19.15", "@sveltejs/adapter-auto": "^2.0.0", "@sveltejs/adapter-static": "^2.0.3", From 3bf7f0820d8dfb534150f2e82bb50951c054a431 Mon Sep 17 00:00:00 2001 From: Wauplin Date: Wed, 18 Jun 2025 11:44:53 +0200 Subject: [PATCH 5/5] reuse type from hs.js --- kit/src/lib/InferenceSnippet/InferenceSnippet.svelte | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/kit/src/lib/InferenceSnippet/InferenceSnippet.svelte b/kit/src/lib/InferenceSnippet/InferenceSnippet.svelte index 423ef0353..a180076fc 100644 --- a/kit/src/lib/InferenceSnippet/InferenceSnippet.svelte +++ b/kit/src/lib/InferenceSnippet/InferenceSnippet.svelte @@ -7,6 +7,7 @@ } from "@huggingface/tasks"; import { type InferenceProvider, + type InferenceProviderMappingEntry, type InferenceProviderOrPolicy, snippets, } from "@huggingface/inference"; @@ -62,17 +63,6 @@ tags: conversational ? ["conversational"] : [], }; - interface InferenceProviderMappingEntry { - adapter?: string; - adapterWeightsPath?: string; - hfModelId: string; - provider: string; - providerId: string; - status: "live" | "staging"; - task: PipelineType; - type?: "single-model" | "tag-filter"; - } - function getInferenceSnippetsOrEmpty( model: ModelDataMinimal, provider: InferenceProviderOrPolicy,