← Retour

SDK & paquet npm

L'API complète du paquet brimkern : un widget de chat en un appel, ou des sessions sans interface et de la génération one-shot pour votre propre UI. Tout tourne sur le GPU du visiteur — aucun serveur, aucune clé d'API, rien ne quitte le navigateur. Pour la visite guidée et la démo live, voir la page SDK.

Installation

Depuis npm — types TypeScript inclus :

npm i brimkern

import { embed, createSession, generate, preload, status } from 'brimkern';

Ou en balise script, sans étape de build — l’IIFE expose la même API sur une globale :

<script src="https://brimkern.com/sdk.js"></script>
<script>
  Brimkern.embed({ title: "Ask us anything" });
</script>

embed(config?)

Monte le widget de chat dans la page (il attend le document si l'appel arrive tôt). Le modèle ne se télécharge que lorsqu'un visiteur ouvre réellement le widget : votre vitesse de page reste intacte.

systemstring
Les instructions de l'assistant — qui il est, ce qu'il peut dire.
titlestring
Titre affiché en tête du widget.
greetingstring
Premier message affiché avant que le visiteur n’écrive.
accentstring
Couleur d'accent (toute couleur CSS).
modelstring
Modèle à la place du défaut — un dépôt Hugging Face ou une URL directe .gguf/.brik. Défaut : le petit modèle intégré (149 Mo).
maxTokensnumber
Budget de réponse, en tokens.
examples{ user, assistant }[]
Exemples few-shot ajoutés en tête de conversation.
knowledge / knowledgeBudgetsee below
Vos contenus, triés en local — voir la section dédiée.
worker / workerUrlboolean / string
Exécute l’inférence dans un Web Worker (le thread principal de votre page reste libre). workerUrl sert le worker depuis votre propre origine si besoin.

createSession(config?)

Sans interface : un objet conversation pour votre propre UI. Même config que embed() moins les options visuelles, plus temperature.

const session = createSession({ system: "You are a sommelier.", temperature: 0.7 });

const reply = await session.ask("A wine for oysters?", {
  onToken: (text) => output.textContent += text,  // streaming
  signal: controller.signal,                       // cancellable
});

session.history  // the Msg[] so far
session.reset()  // same config, blank history
session.destroy()

generate(options)

One-shot : un prompt, une réponse, pas d’historique conservé. Prend la config de session plus prompt, onToken et signal.

const answer = await generate({
  system: "Answer in one sentence.",
  prompt: "Why is the sky blue?",
  onToken: (text) => process(text),
});

Documents de connaissance

Donnez vos contenus à l'assistant — pages, FAQ, fiches produit. Les documents sont découpés en passages dans le navigateur, et seuls les 1 à 3 passages les plus proches de la question du visiteur sont donnés au modèle. Le tri est local (lexical) : rien n'est envoyé où que ce soit.

knowledge: [
  "Plain strings work.",
  { title: "Shipping", text: "Free in France from 60 euros." },
],
knowledgeBudget: 800  // tokens de passages max par question

preload() & status()

preload() télécharge le moteur et le modèle avant la première question — appelez-le sur un survol, ou sur la page tarifs avant l'ouverture du support. onProgress reçoit la phase et, pendant le téléchargement, les octets : de quoi afficher une vraie barre de progression.

await preload({
  onProgress: (status, p) => {
    if (p) bar.style.width = (100 * p.loaded / p.total) + "%";
  },
});

status()  // 'unavailable' (pas de WebGPU) | 'idle' | 'loading' | 'ready' | 'error'

status() répond de façon synchrone — utile pour décider d'afficher ou non le widget sur les navigateurs sans WebGPU.

Versions & CDN

Épinglez une version si vous préférez que le widget ne change pas sous vos pieds :

https://brimkern.com/sdk-0.1.0.js   au lieu de   https://brimkern.com/sdk.js

<!-- ou depuis les CDN npm -->
https://unpkg.com/brimkern@0.1.0/dist/brimkern.iife.js
https://cdn.jsdelivr.net/npm/brimkern@0.1.0/dist/brimkern.iife.js

Serveur, licence, liens

Importer le paquet côté serveur ne fait rien tant qu'un navigateur ne l'exécute pas : Next.js, Remix et Astro passent sans garde-fou. Licence MIT, comme tout le moteur.

npmjs.com/package/brimkern · GitHub · Page SDK & démo live

Brimkern — moteur WebGPU open, conçu par Romain Khanoyan. IA locale, WebGPU, moteurs on-device.