· 5 min read

Асистент дизайну, який працює на вашому пристрої - Ні акаунт, No Server

Помічник PinePaper на прикладі AI перетворює запит на реальну сцену за допомогою мовної моделі, яка повністю працює в браузері. Тут архітектура — обмежені виклики інструментів, два провайдери та чесний рахунок чого може і не обійтися.

Приміщення

Більшість інструментів дизайну AI надсилайте запит на сервер, запустіть велику модель і відправте код назад. Для чого потрібен обліковий запис, мережевий круглий план, і довірте, що ваша робота-в-прогрес переходить в будь-яку іншу інфраструктуру.

Ми хотіли знати, як далеко інший екстремальний йде: А конструктор, де модель працює на власній машині.* Немає акаунту. Немає завантаження. Підказка ніколи не залишає браузера. Це тепер живе в редакторі PinePaper як експериментальний *AI / Code → Асистент вкладка, і це повідомлення є чесним обліковим записом, як це працює і де він падає коротким.

Чому не просто запитати модель для коду?

Ми можемо самі зателефонувати одержувачу і узгодити зручний час. Ми спробували його. Не вдалося.

Маленькі моделі — ті, які підходять на ноутбуці — мають *без знання конкретного додатку API. Запитайте модель 0.5-2B для виклику PinePaper.create() і він імпровізує: ключ метод не читається ( SVG-style fill, де API очікує color), метод, який він уявляв, аргументи у неправильній формі. Введіть номер мобільного, який Ви вказали при укладаннi договору з банком - для ідентифікації.

Так ми не запитуємо код. Ми попросимо до****

[
  { "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" } }
]

Те ж саме лексика PinePaper MCP сервер поширюється на зовнішні агенти — але випромінюється моделлю, що працює локально, і виконаний на полотні через невеликий диспетчер.

Виготовлення недійсного виходу

Ключовий рух - ** Замість захоплення моделі виробляє дійсну форму, ми протипоказаємо що токени це навіть дозволено випромінювати:

  • На Chrome's вбудований Prompt API (Gemini Nano), ми проходимо JSON Schema в якості обмеження відповіді. Модель може виготовити тільки об'єкти, що посвідчують схему - з additionalProperties: false, будь-яким аргументом, що schema не визначено, є буквально непередбачуваним.
  • WebLLM (відкрита модель, що працює на WebGPU), ми Прикріпіть граматику*** через XGrammar. граматика диктує структуру; модель лише заповнюється значеннями.

Як виробляють однакову форму інструментів. Невеликий ремонт переходить, після чого справляється в найближчий варіант крихітної моделі все ще робить — скидати name, аргументи без їх обгортки — шляхом налаштування інструмента від форми аргумента. Результатом є те, що "зніміть зелений петагон" стає реальний виклик create_item замість помилки.

Два провайдера, один договір

РџРμР»РμР»РμР»РμР»РμР»РμР»РμР»РμР»РμР»РμР»РμР»РμР»РμР»РμР»РμР»РμС‚РμР»РμР»РμР»РμР»РμР»РμР»РμР»РμллРμР»РμР»РμР»РμллРμллРμР»РμР»РμллРμллРμлллллллллллРμлллллллллллллллллллРμРμРμРμРμРμллРμРμллллллллРμллРμРμРNo

  • Browser AI — вбудований Chrome Gemini Nano* (window.LanguageModel). Модельні кораблі з браузером; немає нічого для завантаження з нас. Це найнадійніший на шляху розробки сьогодні, тому що JSON-schema constraint є дешевим і добре підтримується.
  • PinePaper AIWebLLM, що працює в моделі Qwen2.5 в будь-якому браузері WebGPU. Завантажує модель один раз (заплановано після цього), потім працює в автономному режимі.
  • Languages* — неанглійські підказки переведені на англійську мову на-розробнику (через вбудований перекладач браузера), адже маленькі моделі орієнтовані на код англійською мовою. Створена сцена є однаковою незалежно від мови підказки.

Користувач забирає двигун; все внизу — обмеження, виконавець, полотно — ідентичний.

Редагування, не просто генерувати

Одноразовий генератор не є помічником. Для підтримки «зробити зірку червоний», модель повинна знати, що вже на полотні. Отже, кожен поворот, ми подаємо його компактним знімком поточних елементів — їх повік, види та кольори — точно так само, як серверний чат буде. "Зробити зірку червоний" потім вирішить реальний виклик modify_item проти ідентифікатора виробу. (І тому, що невелика модель іноді відноситься до "сірко" коли це означає зірку, виконавець вирішує нечітки посилання на живе полотно.)

Журнал бесіди зберігаються ** на вашому пристрої*** у місцевому зберіганні. Ніщо про це відправлено в будь-який час — якщо ви явно оптимізуєте, щоб поділитися невдалими підказками, які допомагають нам покращити підказки та граматику.

Коли невелика модель недостатньо — ескалати

Ось чесна частина: *a 0.5–2B модель є найслабшим ярусом. Зміцнений декодування гарантує повна структура, але модель все ще має підібрати правильний інструмент і сенсаційні значення, і це не завжди не завжди. Запитайте на пентагон і підвидачену модель дає вам шестигранну; запитайте двічі на "червоний" і він може запустити генератор замість.

Ми можемо самі зателефонувати одержувачу і узгодити зручний час і місце вручення квітів, а якщо необхідно, то збережемо сюрприз. Після того, як кілька невдалих спроб, помічник пропонує ** до Хмарної моделі** — однотонний, той же полотно, набагато більш здатний модель — і ви продовжуєте точно, де ви залишили. Низький рівень, вільний і приватний, з одним клацанням шляху до високої чіткості, коли вам потрібно.

Що ми навчимося

  • Концентрати збиті підказки. Підказка на заземлену систему; граматика/шмама, яка не дає ніякого виходу. Єдиний найбільший стрибок надійності прибув з обмеженого розшифрування, не від кращого підказка.
  • Розмір моделі домінує. Зійшовши від 0.5B до 1,5B моделі помітно поліпшується, як часто помічник забирає правильний інструмент. Немає підказки, що перетворює крихітну модель в смарт.
  • ** Повна граматика може бути занадто велика.** Наша перша граматика закодована every можлива операція — включаючи обмежену довжину втечу люка для довільного коду малювання. Він був настільки великим, що протипоказаний декодування закріпив сторінку. Компактна граматика, що охоплює загальні операції, є правильним за замовчуванням; повна поверхня оптимізується.
  • Run від основної нитки. Модель, що виконує навігацію на нитку UI, запускає сторінку. WebLLM працює в Web Worker, тому редактор залишається відповідальним, коли модель завантажує та генерує.

Що далі

Це експериментальне і вдосконалення. На дорожню карту:

  • Покриття інструменту в обмеженому шляху* — більше операцій PinePaper, які виражаються без вільного місця втечу.
  • Larger on-device моделі, як каталоги моделі WebGPU ростуть, розмір завантаження торгів для надійності.
  • Ущільнювач вальвальної петлі — за допомогою опційно-збійних звітів, щоб виміряти які підказки про подорож моделей на приладі та затвердити граматику проти них.
  • А гладка на-розробці → Хмарний відключення, тому ескалація відчуває себе таким чином, щоб перетворювати якісний диал, а не переключаючи інструменти.

Лінія: той самий декларативний інструмент словника приводить модель на будь-якій стороні межі браузера. Зовнішній агент викликає ці інструменти над MCP; модель on-device викликає однакові форми локально. Один контракт, агенти, де вони працюють.

AI / Code → Асистент. Це безкоштовно, працює на вашому пристрої, і не потребує облікового запису.*

Ready to create?

Start making animated GIFs, videos, and graphics — free, no signup.

Open PinePaper Editor