System · InfoFrame
AI Visibility Tracker
I drift
Folk slutter å google og begynner å spørre. Da flytter spørsmålet seg fra hvor du rangerer til om du i det hele tatt blir nevnt. Dette måler det, ukentlig, mot navngitte konkurrenter.
Fakta
- Status
- I drift, fem merkevarer
- Opphav
- Fork av åpen kildekode (Elmo, MIT). 177 av 964 commits er mine.
- Stack
- TypeScript · TanStack Start · Postgres · Drizzle · pg-boss
- Motorer
- ChatGPT, Perplexity, Gemini, Copilot, Claude, Google AI Overview
- Volum
- Rundt 96 spørringer, cirka 3 600 målinger i måneden
- Drift
- Coolify på egen Hetzner-maskin
- Bevis
- ai.infoframe.no
Hva som er mitt, og hva som ikke er det
Dette er ikke bygget fra bunnen. Det er en fork av Elmo, et åpent kildekode-prosjekt med MIT-lisens. Av 964 commits i historikken er 177 mine. Kjernen, leverandørabstraksjonen og mye av poengberegningen kommer fra oppstrøms.
Mitt lag er funksjonene rundt: sitatgap-analysen, de tekniske lesbarhetsskanningene, prøveperioder, klientrapporter, organisasjonsavgrensning så flere kunder kan ligge i samme base, og all drift og hendelseshåndtering under.
Jeg kunne latt være å skrive dette avsnittet. Men å ikke finne opp hjulet på nytt er hele arbeidsmåten min, og da bør det største systemet mitt være det tydeligste eksempelet, ikke det jeg er vagest om.
Hvordan spørsmålene faktisk stilles
Ni adaptere står bak ett grensesnitt. Fire skraper de virkelige forbrukergrensesnittene til assistentene, fire snakker direkte med API-er, og én er en attrapp for testing. Hvilke som er i bruk settes med én miljøvariabel, ikke i kode.
Hver spørring kjøres fem ganger per modell, parallelt, fordi svarene varierer mellom kjøringer. Ett svar er en anekdote. Fem er en frekvens.
Jobben planlegger seg selv på nytt etterpå, med en nøkkel som hindrer at samme merkevare får to køposter samtidig. En vaktjobb hvert femte minutt purrer på det som er forsinket, og varsler hvis noe har ligget over en halvtime.
Regnestykkene er kjedelige med vilje
Andel av samtalen er merkevarens treff delt på merkevarens pluss konkurrentenes, og blir null verdi i stedet for null prosent når ingen er nevnt. Forskjellen er viktig: ingen data er ikke det samme som ingen synlighet.
Rangeringen mellom merkevarer er ren tekstrekkefølge, ikke en språkmodell. Sitatgapene regnes deterministisk over tretti dager. Modellen får bare skrive forklaringen etterpå, aldri tallet.
Stemningsanalysen er det ene stedet en modell faktisk avgjør noe, og den kjøres bare når merkevaren er nevnt i det hele tatt. Det holder kostnaden på kroner i måneden i stedet for tusener.
Det dyre er ikke koden, det er kjøringene
Hver måling koster penger hos en tredjepart. Derfor har en av jobbene null gjenforsøk, med vilje: et automatisk nytt forsøk ville fakturert en hel merkevares kjøring på nytt.
I juli sto et mål aldri ferdig. Køen regnet dermed spørringene som evig forsinket og kjørte dem om og om igjen: rundt 21 000 kjøringer på en uke der normalen er rundt 15. Fiksen ble en times sperre mellom hver purring.
Oppetidsvakten og deploy-vakten finnes av samme grunn. Den ene kom etter fire og en halv times stille nedetid om natten, den andre etter fire hengende deploys som fylte disken til 91 prosent.
Hva dette ikke er
Det er ikke et produkt du kan kjøpe. Skynivået finnes ikke, og starter du plattformen i den modusen stopper den på oppstart. Prøveperioder er en enkel påbygning uten priskoder eller betaling.
Datainnsamlingen har ikke bevist seg stabil ennå. En av innsamlerne lå på femti prosent vellykkede kjøringer da det sist ble målt, og det er ikke lukket.
Fem merkevarer er lite. Tallene under er ekte, men de er ikke et bevis på at dette skalerer til femti kunder.