Članki / · 10 min branja
Kako spraviti pravo LLM funkcionalnost v produkcijo (ne samo demo)
Vsak ustanovitelj ima na roadmapu 3-5 'AI funkcij'. Približno 80% jih ne bi preživelo produkcije. Tukaj je operativni checklist, ki ga preverim, preden rečem 'ja, to lahko spravimo v produkcijo.'
Vsak ustanovitelj, s katerim govorim, ima na roadmapu 3-5 “AI funkcij”. Tu chatbot, tam gumb “povzemi moje podatke”, agent, ki “preprosto uredi” podporo strankam. Približno 80% teh funkcij ne bi preživelo produkcije. Ne zato, ker LLM-ji ne bi bili dovolj sposobni — so. Razlog je, da je razmik med delujočim LLM demom in LLM funkcionalnostjo, ki živi v produkciji, večji od razmika med večino produktov in njihovimi MVP-ji.
Demo se izvede enkrat, na ročno izbranih vhodih, ko ustanovitelj tipka po tipkovnici. Produkcijska funkcija se izvede 50.000-krat na dan, na vhodih, ki jih nihče ni predvidel, zaračunana na Stripe naročnino, v UI-ju, ki mora delovati hitro tudi takrat, ko je upstream API rate-limited ob 3. uri zjutraj v nedeljo. To sta različna inženirska problema.
Ta zapis je operativni checklist, ki ga dejansko preverim, preden ustanovitelju rečem “ja, to lahko spravimo v produkcijo.” Isti checklist sem uporabil pri gradnji Dealka — prvega AI asistenta za slovenski telekomunikacijski trg — in CrewPressa, WordPress vtičnika s 7 specializiranimi agenti, ki se usmerjajo med Claude, GPT-4o, Gemini in DALL-E 3.
Odločitev 1: Ali res potrebuješ LLM?
To je anti-hype preverba in na mojih pregledih roadmapa pobije več “AI funkcij” kot katero koli drugo vprašanje. Veliko funkcij, ki jih ustanovitelji uokvirjajo kot “AI”, je bolje rešiti z deterministično logiko in dobrim UX-jem. Dropdown premaga chatbota v 90% problemov izbire. Dobro strukturiran obrazec skoraj vedno premaga “opiši svoje potrebe v naravnem jeziku” textarea.
Vprašanja, ki si jih zastavim, po vrsti:
- Je vhod ali izhod res tekst? Ne “lahko bi bil tekst” — dejansko tekst, kjer uporabniki raje tipkajo v prosti obliki kot izbirajo.
- Ali variabilnost res zahteva razumevanje naravnega jezika? Ali je to končna množica namenov, ki bi jih lahko našteli?
- Je način odpovedi preživeljiv? Če napačen odgovor sproži vračilo denarja, tožbo ali izbris nekoga podatkov, mora biti LLM ovit v tako težke guardraile, da skoraj ni več LLM.
Če je katerikoli odgovor ne, verjetno ne potrebuješ LLM-ja. Potrebuješ funkcijo, ki spoštuje namen uporabnika in jo lahko dostaviš v dveh tednih namesto v dveh kvartalih. LLM proračun porabi tam, kjer je variabilnost resnična — običajno v majhnem, omejenem delu produkta, ne kot glavni vhod.
Odločitev 2: Kateri model in zakaj je to pomembno
Izbira modela je najcenejša odločitev v stacku — ponudnika lahko zamenjaš v enem popoldnevu, če je tvoja abstrakcija razumna — in je odločitev, nad katero se večina ustanoviteljev po nepotrebnem najbolj muči. Berejo benchmark tabele in izberejo tistega, ki je prejšnji mesec vodil na MMLU. To je napačen instinkt.
Moje privzete izbire, z opombo, da glede tega nisem religiozen:
- Claude (Anthropic) za generiranje kode, sklepanje s širokim kontekstom, vse, kjer je tool use in čisto sledenje navodilom pomembnejše od surove pogovorne tekoče.
- GPT-4o ali GPT-5 (OpenAI) za pogovorne funkcije, kreativno pisanje, povsod, kjer mora model delovati toplo in improvizacijsko.
- Gemini (Google) za stroškovno občutljivo množično delo, zlasti ko šteje jezikovno pokritje — manjši evropski jeziki, vključno s slovenščino, kjer je Geminijevih učnih podatkov več, kot ljudje predvidevajo.
Izberi za vsako funkcijo posebej, na podlagi benchmarkov za tvoj workload, ne na industrijsko povprečnih MMLU rezultatih. Vodilni na MMLU se lahko še vedno moti glede tvoje domene. V CrewPressu je 7 agentov usmerjenih med Claude, GPT-4o, Gemini in DALL-E 3 glede na primernost naloge — generiranje vsebine, SEO optimizacija, pomoč pri kodi, generiranje slik so vsaka svoja oblika problema z drugim najprimernejšim modelom. Obravnavanje “AI-ja” kot enega ponudnika je kategorijska napaka.
5 stvari, ki ubijejo LLM funkcionalnosti v produkciji
Ko si se odločil za produkcijo, so to načini odpovedi, ki jih vidim ubijati funkcije po lansiranju. Nobeden od njih se ne pokaže v demu. Vsi se pokažejo v tretjem tednu.
1. Halucinacija v kritičnih poteh. Če uporabniki zaupajo izhodu kot resnici — cene, pravna besedila, medicinski nasveti, karkoli, kjer ima zmota strošek — potrebuješ guardraile, citate ali human-in-the-loop. Najslabši vzorec je skrivanje modelove negotovosti za samozavestnim UI-jem. Pokaži vir. Pokaži zaupanje. Naj uporabniki vidijo, kdaj model ugiba. Produkt, ki prizna “nisem prepričan, tukaj sem to dobil”, pridobi zaupanje hitreje kot tisti, ki igra gotovost in se občasno moti.
2. Stroškovna eksplozija. Vsak token stane denar in naivna funkcija s promptom na vsako zahtevo lahko desetkratniko poveča tvoj AWS ali API račun na dan, ko ti viralni tweet pripelje 100.000 uporabnikov. Pred lansiranjem nastavi kvote na uporabnika in na tier, ne potem. Agresivno cachiraj tam, kjer je vhodni prostor omejen. Spoznaj enotno ekonomiko do centov-na-aktivnega-uporabnika-na-dan, preden lansiraš plačljivim strankam.
3. Latency. Produkcijski LLM-ji so počasnejši, kot uporabniki pričakujejo iz ne-AI programja. 4-sekundni odziv deluje zlomljeno v UI-ju, ki je navajen na 200ms. Streaming odzivov plus UX za zaznano napredovanje — skeleton states, progresivno razkrivanje, optimistično renderiranje — je razlika med “to deluje magično” in “AI funkcija je zlomljena.” Proračun za latency je oblikovalska omejitev, ne backend problem.
4. Prompt drift. Tvoj prompt, ki je v razvoju deloval brezhibno, se po šestih mesecih zlomi, ker se je osnovni model posodobil. Ponudniki dotrenirajo, ukinjajo in tiho premikajo vedenje. Eksplicitno pripni verzije modela. Zgradi majhno eval suito — že 30 fiksnih parov vhod/izhod — in jo poženi pri vsaki nadgradnji modela, preden preklopiš stikalo. Brez evalov si pri vsaki novi različici, ki jo objavi ponudnik, slep.
5. Problem “polno kontekstno okno”. Resnični pogovori uporabnikov so dolgi. Resnični dokumenti so dolgi. Okno je končno. Retrieval-augmented generation (RAG) ali summarisation pipelines so neopcijski v trenutku, ko funkcija pridobi privlačnost. Načrtuj to že prvi dan — naknadno dodajanje RAG-a funkciji, ki ni bila zasnovana zanj, stane več kot vgraditev od začetka.
Kako izgledajo prave LLM funkcionalnosti v produkciji
Dva primera, ki sem ju dostavil, oba še vedno tečeta, oba zaračunavata pravim uporabnikom:
Dealko je prvi AI asistent za slovenski telekomunikacijski trg. Uporabniki v slovenščini vprašajo stvari kot “potrebujem paket z vsaj 20GB in EU roamingom pod 25 €.” LLM razčleni namen, ga primerja z resničnim katalogom operaterjev in pokaže dejanske možnosti, na katere lahko uporabnik reagira. Ko zaupanje modela pade — dvoumna poizvedba, manjkajoči podatki, robni primer — gladko preda na človeško prodajno pot, namesto da bi si izmišljal odgovor. LLM je ena komponenta, ne celoten produkt. Glej Dealko za celoten primer.
CrewPress je WordPress avtomatizacijski vtičnik s 7 agenti. Content Generator, SEO Optimizer, Developer Assistant, Image Creator in še trije — vsak agent ima omejeno odgovornost, lasten predlog prompta in lastno izbiro modela. Kvote uporabe se izvajajo na Stripe naročniški tier, tako da “power user” na najcenejšem paketu ne more naključno porabiti mesečnega API proračuna v enem popoldnevu. Glej CrewPress za arhitekturo.
Oba sta dostavljena pravim uporabnikom. Oba imata načine odpovedi vgrajene v UX, ne skrite pred njim. Oba čisto zaračunavata stroške naročnini, ki ju plačuje.
Checklist za LLM funkcionalnost, pripravljeno za produkcijo
Pred-lansirna kontrola, ki jo izvedem z ustanovitelji, preden se strinjamo, da je funkcija pripravljena:
- Ali rešuje problem, ki ga deterministična logika ne more?
- Je izbira modela utemeljena na tvojem workloadu, ne na benchmarkih?
- Je halucinacija ali zavarovana ali odkrito prikazana?
- So stroški omejeni na uporabnika in na tier?
- Je latency prikrit z UX-jem — streaming, skeleton states, progresivno razkrivanje?
- Je verzija modela pripeta in eval suita postavljena?
- Je strategija upravljanja konteksta določena — RAG, summarisation ali samo okno?
- Ali gladko degradira, ko je LLM nedostopen ali rate-limited?
Če ne moreš odkljukati vseh osmih, funkcija ni pripravljena. Še vedno je demo.
LLM funkcionalnost, ki je v produkciji, je 20% prompt in 80% inženirska higiena. Prompt je del, nad katerim se ustanovitelji obsedajo. Ostalih 80% odloča, ali bo funkcija živa čez leto dni.
Če imaš na roadmapu AI funkcijo in želiš zdravorazumski pregled, rezerviraj brezplačen 30-minutni klic ali si oglej stran o AI integraciji, kako izgleda sodelovanje.