Du kör ett snabbt lokalt modelltest, gillar resultatet och går vidare. Två dagar senare minns du inte vilken modell du använde, vilken temperatur du ställde in eller varför just det svaret kändes “bättre”. Anteckningarna ligger utspridda. Skärmbilderna hjälper inte.
Det här är den typen av röra som bromsar ingenjörer först, men produktdrivna grundare och AI-nyfikna analytiker känner av det också. När LM Studio-benchmarks loggas automatiskt får du ett felfritt facit i stället för en kyrkogård av kopierad text.
Det här arbetsflödet triggar en benchmark-körning, testar aktiva lokala modeller, beräknar användbara mätvärden och lägger till allt i Google Sheets. Du får se hur automatiseringen fungerar, vad du behöver och vad du ska se upp med när du anpassar den.
Så fungerar den här automatiseringen
Hela n8n-arbetsflödet, från trigger till slutligt resultat:
n8n Workflow Template: LM Studio + Google Sheets: loggade benchmarkresultat
flowchart LR
subgraph sg0["When chat message received Flow"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Get Models"]
n1@{ icon: "mdi:play-circle", form: "rounded", label: "When chat message received", pos: "b", h: 48 }
n2@{ icon: "mdi:cog", form: "rounded", label: "Get timeDifference", pos: "b", h: 48 }
n3@{ icon: "mdi:brain", form: "rounded", label: "Run Model with Dunamic Inputs", pos: "b", h: 48 }
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Analyze LLM Response Metrics"]
n5@{ icon: "mdi:database", form: "rounded", label: "Save Results to Google Sheets", pos: "b", h: 48 }
n6@{ icon: "mdi:cog", form: "rounded", label: "Capture End Time", pos: "b", h: 48 }
n7@{ icon: "mdi:cog", form: "rounded", label: "Capture Start Time", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-vertical", form: "rounded", label: "Prepare Data for Analysis", pos: "b", h: 48 }
n9@{ icon: "mdi:swap-vertical", form: "rounded", label: "Extract Model IDsto Run Sepa..", pos: "b", h: 48 }
n10@{ icon: "mdi:swap-vertical", form: "rounded", label: "Add System Prompt", pos: "b", h: 48 }
n11@{ icon: "mdi:robot", form: "rounded", label: "LLM Response Analysis", pos: "b", h: 48 }
n0 --> n9
n6 --> n2
n10 --> n11
n7 --> n10
n2 --> n8
n11 --> n6
n8 --> n4
n1 --> n0
n4 --> n5
n3 -.-> n11
n9 --> n7
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n1 trigger
class n11 ai
class n3 aiModel
class n5 database
class n0 api
class n4 code
classDef customIcon fill:none,stroke:none
class n0,n4 customIcon
Problemet: benchmark-anteckningar blir snabbt röriga
Att benchmarka lokala LLM:er låter enkelt tills du försöker göra det konsekvent. Ett test använder en annan prompt. En annan körning ändrar temperaturen och du glömmer att skriva ner det. Sedan kopierar du ett svar till ett dokument, men du får inte med latens, ordantal eller hur läsbart resultatet faktiskt var. En vecka senare “jämför du modeller” med halva kontexten borta, och du slutar med att köra om samma tester bara för att känna dig säker igen. Ärligt talat är det inte testandet som tar tid. Det är spårningen.
Det eskalerar snabbt. Här är var det faller isär i verkligheten:
- Du testar om samma modeller eftersom tidigare körningar inte är strukturerade eller sökbara.
- Manuell copy/paste tappar kritiska inställningar som promptversion, temperatur eller top P.
- Jämförelser av latens och svarstid blir “magkänsla” i stället för något du kan visa för ett team.
- Dina bästa output fastnar i chattloggar, så beslut om modellval drar ut på tiden.
Lösningen: automatiserade LM Studio-benchmarks loggade till Sheets
Det här n8n-arbetsflödet gör din lokala LM Studio-miljö till en repeterbar benchmark-pipeline. Det startar när du skickar ett meddelande (via en n8n chatt-trigger), och anropar sedan LM Studio via HTTP för att hämta listan över aktuella aktiva modeller. Varje modell testas mot din valda prompt och systeminstruktioner, tidsstämplar fångas för att beräkna varaktighet, och arbetsflödet utvärderar svaret med lättviktiga mätvärden som ordantal och läsbarhet. Till sist lägger det till en rad per körning i Google Sheets, som över tid blir din jämförelsedashboard. Inget mer “vad körde jag i torsdags?”-gissande.
Arbetsflödet börjar med en chattbaserad trigger, hämtar modell-ID:n dynamiskt och loopar igenom dem för konsekvent testning. När modellsvaret kommer tillbaka räknar n8n ut tids- och kvalitetsmätvärden och skriver allt till Google Sheets så att du kan sortera, filtrera och jämföra på några sekunder.
Vad du får: automatisering vs. resultat
| Vad det här arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du har 6 lokala modeller aktiva i LM Studio och testar var och en med 3 prompts innan du väljer en “standardmodell” för en funktion. Manuellt: om du lägger cirka 5 minuter per körning på att kopiera svaret, notera inställningar och klistra in i ett dokument, blir det runt 90 minuter. Med det här arbetsflödet skickar du ett trigger-meddelande, väntar ett par minuter på att loopen blir klar, och varje resultat hamnar i Google Sheets automatiskt. Du granskar fortfarande output, men loggningsjobbet försvinner i stort sett.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- LM Studio för att köra lokala modeller att testa.
- Google Sheets för att lagra benchmark-historik och jämföra resultat.
- Google-kontouppgifter (anslut via n8n:s Google Sheets-credential).
Svårighetsgrad: Nybörjare. Du klistrar in din LM Studio-server-IP, ansluter Google Sheets och justerar prompttexten om du vill.
Vill du inte sätta upp det här själv? Prata med en automatiseringsexpert (gratis 15-minuters konsultation).
Så fungerar det
Ett meddelande triggar körningen. Arbetsflödet startar från en n8n chatt-trigger, som du kan använda som ett enkelt kommando typ “kör benchmarks nu”. Det gör det lätt att köra vid begäran medan du testar.
LM Studio-modell-ID:n hämtas dynamiskt. En HTTP-förfrågan går mot din LM Studio-endpoint för att hämta listan över aktiva modeller. Arbetsflödet delar upp modell-ID:n så att varje modell kan testas i en konsekvent loop.
Varje modell testas och mäts. n8n loggar en starttidsstämpel, lägger in en systemprompt för konsekvent utvärdering och kör LLM-anropet. När svaret kommer tillbaka loggar det sluttidsstämpeln och beräknar varaktigheten.
Mätvärden och resultat loggas till Google Sheets. Ett kodsteg utvärderar svarsmetrik (till exempel ordantal och läsbarhet), och sedan lägger arbetsflödet till en rad i ditt ark. Över tid blir arket din benchmark-databas.
Du kan enkelt ändra prompten och vilka mätvärden som fångas så att det matchar ditt sätt att utvärdera. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera triggern för inkommande chatt
Starta arbetsflödet genom att konfigurera chatttriggern som tar emot användarprompten som används för modellutvärdering.
- Lägg till noden Incoming Chat Trigger som din workflow-trigger.
- Behåll standardinställningarna för triggern (inga obligatoriska parametrar) och notera den genererade webhooken för testning.
- Bekräfta att anslutningen i arbetsflödet går från Incoming Chat Trigger till Retrieve Model List.
chatInput-fält i inkommande payload, som senare refereras av Run LLM Analysis och Assemble Analysis Payload.Steg 2: anslut Google Sheets
Konfigurera Google Sheets-utdata för att lagra utvärderingsresultaten.
- Öppna Append Results to Sheets och välj ditt kalkylark i Document med värdet
[YOUR_ID](ersätt det med ditt riktiga ID). - Ställ in Sheet Name till
Sheet1(värdegid=0). - Bekräfta att kolumnmappningen använder uttryck som
{{ $('Split Model IDs').item.json.id }}och{{ $('Run LLM Analysis').item.json.text }}för att skriva modellresultat. - Autentisering krävs: anslut dina googleSheetsOAuth2Api-credentials.
[YOUR_ID] lämnas oförändrat kommer append att misslyckas eftersom inget kalkylark är valt.Steg 3: konfigurera modellidentifiering och iterering
Hämta de tillgängliga lokala modellerna och dela upp dem i individuella modell-ID:n för utvärdering.
- Öppna Retrieve Model List och ställ in URL till
http://0.0.0.0:1234/v1/models. - Bekräfta att Retrieve Model List är kopplad till Split Model IDs.
- I Split Model IDs, ställ in Field To Split Out till
data. - Verifiera att flödet fortsätter från Split Model IDs till Record Start Timestamp.
http://0.0.0.0:1234 eller justera URL:en så att den matchar din miljö.Steg 4: konfigurera kedjan för LLM-analys
Definiera systemprompten, kör modellen och fånga start-/sluttidsstämplar för att kunna beräkna varaktighet.
- I Record Start Timestamp, ställ in Output Field Name till
startDateTime. - I Insert System Prompt, aktivera Include Other Fields och ställ in system_prompt till
Ensure that messages are concise and to the point readable by a 5th grader.. - I Run LLM Analysis, ställ in Text till
{{ $('Incoming Chat Trigger').item.json.chatInput }}och behåll Prompt Type somdefine. - Bekräfta att meddelandet använder
{{ $json.system_prompt }}i fältet Messages. - I Execute Model Inputs, ställ in Model till
{{ $node['Split Model IDs'].json.id }}och bekräfta att baseURL ärhttp://0.0.0.0:1234/v1. - Autentisering krävs: anslut dina openAiApi-credentials i Execute Model Inputs. Den här noden fungerar som språkmodellen för Run LLM Analysis.
- I Record End Timestamp, ställ in Output Field Name till
endDateTime. - I Compute Duration, ställ in Operation till
getTimeBetweenDates, Start Date till{{ $('Record Start Timestamp').item.json.startDateTime }}, och End Date till{{ $json.endDateTime }}.
Steg 5: sätt ihop mätvärden och skriv till Sheets
Paketera svaret, beräkna läsbarhetsmätvärden och lägg till resultaten i Google Sheets.
- Öppna Assemble Analysis Payload och ställ in tilldelningarna med de angivna uttrycken: llm_response till
{{ $('Run LLM Analysis').item.json.text }}, prompt till{{ $('Incoming Chat Trigger').item.json.chatInput }}, model till{{ $('Split Model IDs').item.json.id }}, start_time till{{ $('Record Start Timestamp').item.json.startDateTime }}, end_time till{{ $('Record End Timestamp').item.json.endDateTime }}, och time_diff till{{ $json.timeDifference.days }}. - Gå igenom Evaluate Response Metrics för att säkerställa att JavaScript beräknar antal ord, antal meningar, läsbarhetspoäng och genomsnittliga längder.
- Bekräfta att utdata från Evaluate Response Metrics matas in i Append Results to Sheets.
Steg 6: testa och aktivera ert arbetsflöde
Validera flödet end-to-end och aktivera det sedan för löpande användning.
- Klicka på Execute Workflow och skicka ett testmeddelande i chatten till Incoming Chat Trigger.
- Verifiera att Retrieve Model List returnerar modelldata och att Split Model IDs matar ut individuella modell-ID:n.
- Bekräfta att Run LLM Analysis returnerar ett svar och att Compute Duration producerar en tidsskillnad.
- Kontrollera ditt Google Sheet efter en ny rad som innehåller prompten, svaret, mätvärdena och tidsstämplarna från Append Results to Sheets.
- När testet lyckas, växla arbetsflödet till Active för att köra i produktion.
Vanliga fallgropar
- Google Sheets-credentials kan gå ut eller kräva specifika behörigheter. Om något går sönder, kontrollera först det anslutna Google-kontot och statusen för n8n-credentialen.
- Om du använder Wait-noder eller extern rendering varierar processningstiderna. Öka väntetiden om efterföljande noder faller på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att redigera output för alltid.
Vanliga frågor
Cirka 30 minuter om LM Studio redan körs.
Nej. Du kopplar mest konton och klistrar in uppgifter för LM Studio-servern. Den enda “kod”-delen är valfri om du vill ändra hur mätvärden beräknas.
Ja. n8n har ett gratis alternativ för egen hosting och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna med 0 USD i modell-API-avgifter om du bara använder lokala LM Studio-modeller (Google Sheets är vanligtvis gratis för den här användningen).
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och klarar n8n bra. Egen hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det bör du. Du kan ändra systemprompten i steget “Insert System Prompt” och sedan justera temperatur/top P i steget där modellen körs så att varje körning blir konsekvent. Vanliga justeringar är att lägga till din egen utvärderingsmall, testa flera prompts per modell och logga extra fält som modellstorlek eller kvantisering.
Oftast beror det på en utgången Google-auktorisering i n8n eller ett behörighetsproblem i arket. Anslut Google Sheets-credentialen igen och bekräfta sedan att målkalkylarket är delat med det Google-kontot. Om det fortfarande misslyckas: kontrollera att fliknamnet i arket matchar vad noden förväntar sig, eftersom ett omdöpt fliknamn kan få append att sluta fungera utan tydliga fel. Håll också koll på kvotgränser om du matar in många rader på kort tid.
På n8n Cloud Starter kan du köra upp till några tusen exekveringar per månad, och varje testad modell räknas mot den användningen. Om du kör egen hosting finns ingen exekveringsgräns, men din server och LM Studio-maskinen blir den begränsande faktorn. I praktiken börjar de flesta team med 5 till 20 modeller och en handfull prompts, och skalar upp när arklayouten sitter.
Ofta, ja. Zapier och Make är bra för enkla app-till-app-flöden, men lokal benchmarking kräver ofta HTTP-anrop, loopning över en modellista som förändras och anpassad logik för mätvärden, vilket är precis där n8n är mer bekvämt. Egen hosting är också viktig här, eftersom du kan vilja ha n8n på samma nätverk som LM Studio för bättre driftsäkerhet. Nackdelen är att n8n på vissa ställen känns mer som en “byggare” än en “guide”. Om du är osäker, prata med en automatiseringsexpert så tar vi fram den enklaste vägen för din setup.
När det här väl rullar slutar dina benchmarks vara “testsessions” och blir data du kan återanvända. Sätt upp det, kör det när du behöver och fortsätt framåt.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.