Downloads · 30 days
12
19% of all-time downloads
mbotta/trippet-lfm2-1.2b-edit-ONNX
trippet-lfm2-1.2b-edit-ONNX is a text generation model from mbotta. Use it when you need the model to write or continue text. It is set up for transformers.js. The card lists the license as other.
A LoRA fine-tune of LFM2.5-1.2B-Instruct, exported to q4 ONNX for in-browser inference (transformers.js + WebGPU). It is the single model that powers the whole trippet app — trained, exported, and validated end-to-end…
Downloads · 30 days
12
19% of all-time downloads
All-time downloads
62
Public
Repo size
834 MB
Likes
0
Public
Click a slice to open those files.
.onnx_data834 MB · 99%
From the Hugging Face model README
A LoRA fine-tune of LFM2.5-1.2B-Instruct, exported to q4 ONNX for in-browser inference (transformers.js + WebGPU). It is the single model that powers the whole trippet app — trained, exported, and validated end-to-end on a MacBook Pro (M2 Max), no cloud.
It uses LFM2's native tool-calling as a mode switch. The app declares the extract_intent tool
when parsing a trip brief; otherwise the model just talks.
| job | how it's invoked | output |
|---|---|---|
| Parse a trip brief → structured Intent | declare extract_intent tool | native tool-call with the Intent (region, bases+roles+nights, intermediates, certainty, when/duration, party, interests, constraints, asks) |
| Select day stops from a candidate pool | the selection prompt (no tool) | {interestId:[indices]} — the strongest few per interest |
| Converse (narrate the plan, confirm an edit, answer a question) | a chat/draft prompt (no tool fires) | grounded plain prose |
The native format is what makes one model possible: the tool declaration is a learned switch, so a model fine-tuned to tool-call on briefs still chats on everything else — no second model, no catastrophic forgetting.
gatherCandidates over real towns).onnx-export → q4 ONNX (transformers.js layout).import { pipeline, env } from '@huggingface/transformers';
const gen = await pipeline('text-generation', '<this-repo>', { dtype: 'q4', device: 'webgpu' });
// parse a brief — declare the tool:
const out = await gen([{ role:'user', content: brief }], { tools: [EXTRACT_INTENT_TOOL], max_new_tokens: 400 });
// converse — no tool declared:
const reply = await gen([{ role:'user', content: draftPrompt }], { max_new_tokens: 300 });