Návrhový asistent, který běží na vašem zařízení - Žádný účet, žádný server
PinePaper on- zařízení AI asistent změní příkaz na skutečnou scénu pomocí jazykového modelu, který běží zcela ve vašem prohlížeči. Tady je architektura - omezené nástrojové hovory, dva poskytovatelé, a upřímný popis toho, co malý model může a nemůže dělat.
On this page
Předpoklad
Většina designových nástrojů AI pošle vaši výzvu na server, spustí velký model a pošle kód zpět. To potřebuje účet, síť round-trip, a věřit, že vaše práce-in- pokrok prochází něčí infrastruktury.
Chtěli jsme vědět, jak daleko je ten druhý extrém: * * designový asistent, kde model běží na vašem vlastním stroji. * * Žádný účet. Žádné nahrávání. Příkaz nikdy neopustí prohlížeč. Toto je nyní živě v editoru PinePaper jako experimentální * * AI / Code → Asistent * *, a tento příspěvek je poctivý popis toho, jak funguje a kde to zaostává.
Proč se prostě nezeptáš modelu kódu?
Jasným přístupem je požádat model on- device, aby napsal JavaScript proti PinePaper a spustit jej. Zkusili jsme to. Špatně to selže.
Malé modely - ty, které se vejdou do laptopu - * * žádné znalosti o konkrétní aplikaci API. * * Zeptejte se na 0.5-2B model volat PinePaper.create() a improvizuje: klíč metoda nečte (SVG-styl fill, kde API očekává color), metoda, kterou si představoval, argumenty ve špatném tvaru. Výstup * vypadá * jako kód a tiše dělá špatnou věc.
Takže se neptáme na kód. Žádáme o * * omezený seznam volání nástrojů: * *
[
{ "name": "pinepaper_set_background_color", "arguments": { "color": "#0F0F1A" } },
{ "name": "pinepaper_create_item", "arguments": { "itemType": "star", "x": 400, "y": 300, "radius": 90, "color": "#E74C3C", "animationType": "pulse" } }
]
Stejný slovník PinePaper [MCP server] (/api/guides/mcp-integration) vystavuje externím agentům - ale emitovaný modelem, který běží lokálně, a popraven na plátně pomocí malého dispečinku.
Neplatný výstup není možný
Klíčový krok je dekódování. Místo toho, abychom doufali, že model vytvoří platný tvar, omezíme * jaké tokeny je dokonce dovoleno emitovat: *
- Na Chrome 's built- in * * Prompt API * * (Gemini Nano), jsme projít * * JSON Schema * * jako reakční omezení. Model může produkovat pouze objekty, které schéma umožňuje - s
additionalProperties: falseje jakýkoliv argument, který schéma nedefinuje, doslova nerepresivní. - Na * * WebLLM * * (otevřený model běží na WebGPU) připojíme * * EBNF gramatiku * * přes XGrammar. Gramatika určuje strukturu, model pouze vyplňuje hodnoty.
Oba produkují stejný tvar tool- call. Malý opravný průsmyk a pak zachráníme nejbližší model, který ještě chybí a upustil name, hádky bez obalu - tím, že inferring nástroj z tvaru argumentu. Výsledkem je, že "nakreslit zelený pětiúhelník" se stává skutečným create_item volání místo chyby.
Přepnout mezi tři níže. Dvě omezené možnosti vypadají identicky na účel: to je nárok. Co změny mezi nimi je mechanismus, ne výsledek.
Dva poskytovatelé, jedna smlouva
On- zařízení AI není jedna věc - závisí na prohlížeči:
- Browser AI * * - Chrome 's built- in * * Gemini Nano * * (
window.LanguageModel). Modelové lodě s prohlížečem, nemáme co stáhnout. Toto je dnes nejspolehlivější cesta na zařízení, protože omezení schématu JSON- je levné a dobře podporované.
- Browser AI * * - Chrome 's built- in * * Gemini Nano * * (
- PinePaper AI * * - * * WebLLM * * běží Qwen2.5 model v libovolném prohlížeči WebGPU. Stahuje model jednou (cached after) a pak běží offline.
- Jazyky * * - non-anglické podněty jsou přeloženy do angličtiny on- device jako první (přes browser 's built- in překladatel), protože malé kode- orientované modely jsou anglicky-centric. Vygenerovaná scéna je stejná bez ohledu na rychlý jazyk.
Uživatel si vybere motor; vše po proudu - omezení, vykonavatel, plátno - je identická.
Editace, nejen generování
Jednorázový generátor není asistent. Na podporu "udělat hvězdu červenou", model potřebuje vědět, co už je na plátně. Takže na každé otočce ho krmíme kompaktním snímkem aktuálních položek - jejich id, typy a barvy - přesně jako by to byl rozhovor na straně serverů. "Udělat hvězdu červenou" pak vyřeší skutečné modify_item volání proti položce ID. (A protože malý model někdy odkazuje na "_ circle", když to znamená hvězda, vykonavatel řeší nejasné odkazy na živé plátno.)
Deník konverzace je uložen * * na vašem zařízení * * v místním úložišti. Nic o tom není posláno nikam - pokud se výslovně nerozhodnete sdílet neúspěšné podněty, což nám pomůže zlepšit podněty a gramatiku.
Když malý model nestačí.. eskalovat
Zde je upřímná část: * * 0,5-2B model je nejslabší úroveň. * * Snížená dekódování garancí * platná struktura *, ale model stále musí vybrat správný nástroj a rozumné hodnoty, a to nebude vždy. Požádejte o pentagon a nedostatečně specifikovaný model vám dá šestiúhelník; požádejte dvakrát o "červenou" a to by mohlo spustit generátor místo.
Takže architektura se k zařízení chová jako k prvnímu stupni, ne jako jedinému. Po několika neúspěšných pokusech asistent nabízí * * předat celý rozhovor modelu Cloud * * - stejný záměr, stejné plátno, mnohem schopnější model - a pokračujete přesně tam, kde jste skončili. Nízká věrnost, volný a soukromý, s one-click cestu k vysoké věrnost, když ji potřebujete.
Co jsme se naučili
- Constraints beat aspting. * * Uzemněný systém rychlý pomáhá; gramatika / schéma, které dělá neplatný výstup nemožné pomáhá mnohem více. Jeden největší skok spolehlivosti pochází z omezeného dekódování, ne z lepší rychlosti.
- Model size still dominuje. * * Přechod z 0,5B na 1.5B model znatelně zlepšila, jak často asistent vybere správný nástroj. Není žádný spěch, který by z malého modelu udělal chytrého.
- The full gramatic can be too big. * * Naše první gramatika zakódovala každou možnou operaci včetně posunutého únikového poklopu délky pro libovolný kód výkresu. Byl tak velký, že dekódování zablokovalo stránku. Kompaktní gramatika zahrnující společné operace je správný výchozí; celý povrch je opt- in.
- Run it off the main thread. * * Model, který dělá inference na vlákně UI zmrazí stránku. WebLLM běží v webu Worker, takže editor zůstává citlivý, zatímco model načte a generuje.
Co dál
Tohle je experimentální a lepší. V plánu:
- Větší pokrytí nástrojů v omezené cestě * * - více operací PinePaper lze vyjádřit bez volnotvarového únikového poklopu.
- Larger on- device models * * as WebGPU model katalogy rostou, obchodování velikost stahování pro spolehlivost.
- A tender eval loop * * - pomocí volitelných hlášení o selhání měření, která podněcují k zakopnutí modelů zařízení a zpevnění gramatiky proti nim.
- A jemnější on- device → Cloud handoff * *, takže eskalace cítí, jako by se obrátil na kvalitní vytáčení spíše než přepínání nástrojů.
Průchodnost: stejný deklarativní nástroj slovní zásoba řídí model na obou stranách hranice prohlížeče. Externí agent nazývá tyto nástroje přes MCP; model on- zařízení nazývá stejné tvary lokálně. Jedna smlouva, agenti všude, kde běží.
*Zkuste to v editoru - * * AI / Code → Asistent * . Je zdarma, běží na vašem zařízení, a nepotřebuje účet.
Ready to create?
Start making animated GIFs, videos, and graphics — free, no signup.
Open PinePaper Editor