Ollama nije proizvod: Izgradnja aplikacija spremnih za produkciju sa otvorenim LLM-ovima

Pokretanje lokalnog modela pomoću Ollama-e je jednostavno. Izgradnja Open-LLM aplikacije spremne za produkciju je teža: zahteva RAG, kontrolu pristupa, apstrakciju provajdera, evaluaciju, logovanje, disciplinu puštanja u rad i kontrolisani aplikativni sloj oko modela.
Objavljeno:
Aleksandar Stajić
Updated: 28. јун 2026. 22:56
Ollama nije proizvod: Izgradnja aplikacija spremnih za produkciju sa otvorenim LLM-ovima

Ilustracija

Ollama nije proizvod: Izgradnja produkcijski spremnih Open-LLM aplikacija

Alati poput Ollame su lokalno eksperimentisanje sa LLM-ovima učinili gotovo bez trenja. Instalirajte runtime, povucite model, pošaljite prompt, i lokalni asistent odgovara za nekoliko sekundi. To je korisno. To je takođe i najlakši deo putovanja.

Terminal demo nije aplikacija. Lokalni model nije proizvod. Produktivna Open-LLM aplikacija zahteva kontrolisan unos podataka, pretragu, dozvole, evaluaciju, logovanje, apstrakciju provajdera, disciplinu u primeni i korisnički tok koji rešava stvarni poslovni problem.

Osnovna teza je jednostavna: Ollama je runtime, a ne proizvod. Proizvod živi u aplikacionom sloju oko modela. Taj sloj odlučuje koji su dokumenti vidljivi, koji delovi se pretražuju, koji promptovi se koriste, kako se odgovori evaluiraju, kako se greške loguju i da li se sistem može verovati u svakodnevnom radu.

Ovo je mesto gde lokalna AI postaje interesantna za timove koji grade privatne asistente, interne alate za znanje, LLM-om omogućene SaaS funkcije ili kopilote za poslovne tokove. Model može da radi lokalno, ali privatnost, pouzdanost i poslovna vrednost postoje samo ako je ceo sistem pravilno projektovan.

Ollama je runtime, a ne proizvod

Ollama je odlična za pokretanje i serviranje otvorenih modela lokalno. Posebno je jaka za istraživanje, radne tokove programera, PoC-ove i timove koji žele da testiraju ponašanje modela bez trenutnog obavezivanja na cloud provajdera. Izlaže lokalnu interakciju sa modelom putem API-ja i slojeva kompatibilnosti koji olakšavaju povezivanje postojećih alata u OpenAI stilu.

To ne znači da Ollama rešava problem aplikacije. Ona automatski ne zna koje dokumente kompanije korisnik može da čita. Ne stvara izolaciju zakupaca, verzionisanje dokumenata, revizijske tragove, atribuciju izvora, skupove podataka za evaluaciju ili poslovno specifične UI tokove. Te odgovornosti ostaju na arhitekturi aplikacije.

  • Ollama pomaže sa: lokalnim izvršavanjem modela, brzim eksperimentisanjem, API-baziranim pristupom modelu, PoC-ovima bez interneta i produktivnošću programera.
  • Ollama sama ne rešava: kontrolu pristupa, kvalitet RAG-a, životni ciklus dokumenata, granice zakupaca, evaluaciju, revizijsko logovanje, praćenje, ponašanje u slučaju pada ili dizajn poslovnih tokova.
  • Arhitektonska greška: tretiranje lokalnog zaključivanja kao da je već siguran AI proizvod.
Model je najlakši deo. Aplikacioni sloj je mesto gde živi vrednost proizvoda.— Arhitektonski princip

Demo, PoC i produkcija su različite faze

Mnoge Open-LLM inicijative propadaju jer timovi brkaju radni demo sa produkcijskom sposobnošću. Razlika nije kozmetička. Svaki nivo zrelosti ima drugačiji cilj, drugačiji profil rizika i drugačiji inženjerski zahtev.

FazaŠta dokazujeTipično podešavanjeŠta još nedostaje
DemoModel može da odgovori na prompt lokalno.Ollama na laptopu, jedan model, jedan prompt, bez stvarne kontrole podataka.Dozvole, pretraga, logovi, evaluacija, primena, praćenje, korisnički tok.
PoCMali kontrolisani sistem može da odgovara na pitanja o odabranim dokumentima ili tokovima.Osnovni web UI, skripta za unos, vektorska pretraga, ograničeni korisnici, ograničen obim dokumenata.Skaliranje, upravljanje, test skupovi podataka, strategija za pad, revizijska sposobnost, model podrške.
ProdukcijaViše korisnika može bezbedno i ponovljivo da koristi sistem unutar stvarnog rada.Autentifikovana aplikacija, izolacija zakupaca, RAG cevovod, opservabilnost, apstrakcija provajdera, rezervne kopije, proces izdavanja.Kontinuirano poboljšanje, proširenje evaluacije, operativna zrelost.

PoC može biti namerno mali. Produkcija ne može biti namerno slepa. Kada stvarni korisnici, privatni podaci, poslovne odluke i očekivanja usaglašenosti uđu u sistem, arhitektura mora postati eksplicitna.

Gde se RAG uklapa

Retrieval-Augmented Generation je najčešći most između jezičkog modela i privatnog poslovnog znanja. Model magično ne zna interne dokumente, ugovore, tikete, specifikacije proizvoda ili runbook-ove. Aplikacija mora da preuzme relevantan kontekst pre nego što zatraži od modela da odgovori.

Praktičan RAG tok izgleda ovako:

  1. Dokumenti se otpremaju ili sinhronizuju iz kontrolisanih izvora.
  2. Tekst se izdvaja, čisti i deli na delove.
  3. Delovi dobijaju metapodatke kao što su zakupac, vlasnik, verzija dokumenta, URL izvora, opseg pristupa i vremenska oznaka.
  4. Za svaki deo se generišu embedding-ovi.
  5. Vektori se skladište u pgvector, Qdrant ili drugom sloju za pretragu.
  6. U trenutku upita, aplikacija proverava dozvole pre pretrage.
  7. Relevantni delovi se pretražuju pomoću pretrage sličnosti i filtera metapodataka.
  8. Builder prompta ubacuje odabrani kontekst u zahtev modelu.
  9. Odgovor se generiše sa citatima, granicama pouzdanosti i padom bez odgovora kada je pretraga slaba.

RAG smanjuje halucinacije, ali ih ne eliminiše. Loša strategija deljenja, slabi metapodaci, nedostajući filteri dozvola, niskokvalitetni embedding ili preširoko pretraživanje i dalje mogu proizvesti uverljive, ali netačne odgovore. Ozbiljni RAG sistemi zahtevaju pragove, citate, evidenciju pretraživanja i evaluaciju.

Praktična lokalna Open-LLM arhitektura

Realističan proizvodni put ne zahteva egzotičnu infrastrukturu. Za mnoge timove, snažna prva arhitektura može koristiti normalan web stack: Nuxt za frontend, Nitro ili Node API, PostgreSQL kao sistem zapisa, pgvector za pretraživanje, Ollama kao lokalno izvršno okruženje, Prisma za pristup podacima i pozadinske radnike za unos i embedding.

Korisničko pitanje | v
Frontend UI | v
API / Backend | +--> Autentifikacija +--> Provera dozvola zakupca i uloge | v
Sloj pretraživanja | +--> PostgreSQL metapodaci +--> pgvector ili Qdrant vektorsko pretraživanje +--> prag sličnosti | v
Graditelj upita | +--> sistemski upit +--> pronađeni delovi +--> reference izvora +--> pravila bez odgovora | v
Apstrakcija LLM provajdera | +--> Ollama / lokalni model +--> cloud model fallback +--> buduće samostalno izvršno okruženje | v
Odgovor sa izvorima | v
Evidencije, tragovi, metrike, skup podataka za evaluaciju

Ova arhitektura omogućava zamenu modela. Ollama može biti prvo izvršno okruženje, ali sistem ne treba biti zaključan za jedan inferentni mehanizam. Čista arhitektura razdvaja korisnički tok, pretraživanje, konstrukciju upita, model provajdera i mogućnost posmatranja.

  • Frontend: Nuxt ili drugi web UI za autentifikovane korisničke tokove.
  • Backend/API: Nitro, Node.js ili FastAPI za orkestraciju, dozvole i rutiranje provajdera.
  • Baza podataka: PostgreSQL za dokumente, korisnike, zakupce, uloge, upite, evidencije i metapodatke.
  • Vektorsko pretraživanje: pgvector za jednostavno integrisano pretraživanje ili Qdrant kada vektorsko pretraživanje postane namenska usluga.
  • Izvršno okruženje modela: Ollama za lokalno izvršavanje, llama.cpp server za lagano serviranje ili vLLM za GPU serviranje veće propusnosti.
  • Skladište: lokalni sistem datoteka ili S3-kompatibilno objektno skladište za otpremljene datoteke i izdvojene artefakte.
  • Radnici: pozadinski unos, deljenje, embedding, ponovno indeksiranje i obrada verzija dokumenata.
  • Mogućnost posmatranja: evidencije, metrike, tragovi upita, tragovi pretraživanja, praćenje kašnjenja i rezultati evaluacije.

Kontrolna lista za proizvodnu spremnost

Sledeća kontrolna lista je razlika između demonstracije lokalnog modela i upotrebljive Open-LLM aplikacije:

  • Svaki dokument i deo ima tenant_id.
  • Pretraživanje je blokirano dok se ne provere dozvole korisnika i uloge.
  • Dokumenti uključuju metapodatke, izvor, vlasnika, verziju, stanje životnog ciklusa i politiku čuvanja.
  • Strategija deljenja je dokumentovana i testirana na stvarnim dokumentima.
  • Izbor embedding modela je eksplicitan i verzionisan.
  • Konfiguracija vektorskog indeksa je ponovljiva.
  • Prag sličnosti sprečava slepo korišćenje slabog konteksta.
  • Odgovori uključuju citate izvora ili reference izvora gde je moguće.
  • Koristi se padajući mehanizam bez odgovora kada je poverenje u pretraživanje prenisko.
  • Šabloni upita su verzionisani i kontrolisani izdanjem.
  • Apstrakcija LLM provajdera je izgrađena od početka.
  • Struktuirani izlaz se validira pre korišćenja u nizvodnim procesima.
  • Skup podataka za evaluaciju sadrži stvarna pitanja, očekivane izvore i neprihvatljive odgovore.
  • Evidencije pretraživanja pokazuju koji su delovi korišćeni za svaki odgovor.
  • Prate se kašnjenje, korišćenje tokena, opterećenje GPU/CPU i stope grešaka.
  • Pravila privatnosti i čuvanja pokrivaju otpremanja, izdvojeni tekst, delove, embedding, upite, odgovore i evidencije.
  • Putevi za implementaciju, rezervnu kopiju, vraćanje, povlačenje i incidente su dokumentovani.

Ovo se direktno povezuje sa Enterprise Delivery OS: korisna AI nije samo odluka o modelu. To je disciplina isporuke, dokazi, kontrole, metrike i operativno vlasništvo.

Apstrakcija provajdera: Ne venčavajte se sa jednim modelom

Lokalni modeli su vredni za slučajeve osetljive na privatnost, vanmrežne scenarije, kontrolu troškova i interno eksperimentisanje. Cloud modeli i dalje mogu biti jači za teško rezonovanje, kodiranje, višejezičnu tačnost ili multimodalni rad. Proizvodna aplikacija ne treba tretirati nijedan model kao trajnu infrastrukturu.

Apstrakcija provajdera omogućava istom aplikacionom toku da pozove Ollama, OpenAI, Gemini, Anthropic, Mistral, vLLM ili drugu samostalno hostovanu tačku bez prepisivanja proizvoda. Aplikacija odlučuje o provajderu na osnovu slučaja korišćenja, osetljivosti podataka, kašnjenja, troškova i zahteva za kvalitetom.

type LlmProvider = "ollama" | "openai" | "gemini" | "anthropic" | "vllm"; type ChatInput = { provider: LlmProvider; model: string; tenantId: string; userId: string; question: string; context: Array<{ chunkId: string; sourceTitle: string; text: string; }>;
}; async function chat(input: ChatInput) { await assertUserCanAccessContext(input.userId, input.context); const messages = buildRagMessages({ question: input.question, context: input.context, rules: [ "Odgovaraj samo iz datog konteksta kada je moguće.", "Citiraj naslove izvora.", "Reci kada je kontekst nedovoljan." ] }); return llm.chat({ provider: input.provider, model: input.model, messages, trace: { tenantId: input.tenantId, userId: input.userId, promptVersion: "rag-v3.2" } });
}

Ključna ideja nije TypeScript sintaksa. Ključna ideja je granica. Aplikacija poseduje dozvole, pretraživanje, pravila upita, praćenje i evaluaciju. Provajder samo proizvodi izlaz modela.

pgvector vs Qdrant

Za mnoge Open-LLM aplikacije, odluka o vektorskom skladištu je jednostavna na početku: ako je PostgreSQL već vaš sistem zapisa, pgvector je snažna polazna tačka. Drži metapodatke, dozvole, evidencije dokumenata i vektore blizu zajedno. To smanjuje operativnu složenost.

Qdrant postaje privlačniji kada vektorsko pretraživanje treba da postane namenska usluga: veći obim pretraživanja, napredno filtriranje, specijalizovano indeksiranje, hibridni obrasci pretraživanja ili nezavisno skaliranje infrastrukture pretraživanja.

OpcijaNajbolje odgovaraPrednostiKompromisi
pgvectorPoC, rana produkcija, sistemi već izgrađeni na PostgreSQL-u.Jedna baza podataka, SQL spajanja, ACID ponašanje, jednostavnije operacije, metapodaci blizu vektora.Manje specijalizovan od namenske vektorske baze podataka pri velikom obimu pretraživanja.
QdrantNamenske usluge semantičkog pretraživanja, veća vektorska opterećenja, napredno filtriranje i obrasci pretraživanja.Namenski izgrađeno vektorsko pretraživanje, snažan model filtriranja, nezavisno skaliranje, API-ji fokusirani na pretraživanje.Dodaje još jednu infrastrukturnu komponentu i operativnu površinu.
Počnite jednostavnoVećina korporativnih timova koji počinju sa privatnim RAG aplikacijama.Manji arhitektonski rizik, brža isporuka, lakši put za reviziju.Može zahtevati migraciju kasnije ako pretraživanje postane centralno i velikog obima.

Praktično pravilo: počnite sa pgvector kada PostgreSQL već poseduje vaše poslovne podatke i obim pretraživanja je umeren. Pređite na Qdrant kada vektorsko pretraživanje postane samostalna proizvodna mogućnost.

Provera sigurnosti i privatnosti

Lokalno zaključivanje automatski ne znači sigurnu AI. To samo znači da se izvršavanje modela može obaviti lokalno. Celokupni put podataka i dalje je važan: otpremljene datoteke, izvučeni tekst, delovi, vektori, evidencije, upiti, odgovori, rezervne kopije, pristup programera, administratorski alati i izvoz analitike.

Vektori takođe zaslužuju pažnju. Oni nisu originalni dokument, ali i dalje predstavljaju informacije izvedene iz osetljivog sadržaja. Tretirajte ih kao deo zaštićenog puta podataka, posebno kada su povezani sa metapodacima, izvornim zapisima, korisničkim upitima ili identifikatorima zakupaca.

  • Ne indeksirajte dokumente pre nego što su pravila pristupa poznata.
  • Ne preuzimajte delove bez filtera zakupca i uloge.
  • Ne evidentirajte potpune upite i odgovore bez pravila o čuvanju.
  • Ne šaljite osetljiv kontekst cloud modelu osim ako politika to ne dozvoljava.
  • Ne pretpostavljajte da lokalno automatski znači usklađeno sa GDPR-om; usklađenost zavisi od celokupnog dizajna obrade.
  • Ne dozvolite da kopije za evaluaciju i otklanjanje grešaka postanu nekontrolisani skupovi podataka u senci.

Ovo je mesto gde multi-instanca SaaS arhitektura postaje važna. Ako su zakupci, uloge, vlasništvo nad podacima i operativne granice slabe, dodavanje lokalnog LLM-a može povećati rizik umesto da ga smanji.

Evaluacija nije opciona

Produkciona Open-LLM aplikacija zahteva petlju evaluacije. Bez nje, timovi imaju samo anegdote. Nekoliko dobrih demo odgovora ne dokazuje da pretraživanje funkcioniše, da je upit stabilan ili da se model ponaša bezbedno u stvarnoj upotrebi.

Minimalni skup podataka za evaluaciju treba da uključuje stvarna korisnička pitanja, očekivane izvorne dokumente, neprihvatljive odgovore, slučajeve bez odgovora i regresione testove za prethodne greške. Svaka promena u deljenju, vektorima, upitima, pružaocu modela ili pragu pretraživanja treba da bude testirana u odnosu na taj skup podataka.

  • Evaluacija pretraživanja: Da li je sistem preuzeo prave izvorne delove?
  • Evaluacija odgovora: Da li je odgovor ostao utemeljen u preuzetom kontekstu?
  • Bezbednosna evaluacija: Da li je sistem izbegao zabranjena otkrivanja ili neovlašćene podatke?
  • Operativna evaluacija: Da li su kašnjenje, stopa grešaka i troškovi ostali u prihvatljivim granicama?
  • Regresiona evaluacija: Da li je nadogradnja modela ili upita pokvarila prethodno ispravno ponašanje?

RAG smanjuje halucinacije, ali ne uklanja potrebu za evaluacijom. Evaluacija je kontrolna petlja koja pretvara pametan prototip u proizvod koji se poboljšava.

Disciplina implementacije: Model je događaj izdavanja

Promena modela nije bezazleno podešavanje konfiguracije. Može promeniti stil odgovora, ponašanje zaključivanja, kvalitet jezika, kašnjenje, upotrebu tokena, disciplinu citiranja i načine otkazivanja. U produkciji, nadogradnje modela treba tretirati kao događaje izdavanja.

To znači verzionisanje upita, modela za vektore, podešavanja pretraživanja, identifikatora modela, ruta pružaoca i rezultata evaluacije. Takođe znači imati logiku za vraćanje na prethodno stanje. Ako novi model izazove lošije odgovore utemeljene na pretraživanju ili pokvari strukturirani izlaz, sistemu je potreban kontrolisan put nazad do poznate ispravne konfiguracije.

Ovo se uklapa u istu operativnu logiku kao Isporuka i promena i AI-spremna platformska arhitektura: stabilna isporuka zahteva ponovljive kontrole, a ne herojske ručne popravke.

Zaključak: Produkcija počinje tamo gde demo završava

Ollama može započeti putovanje. Čini lokalno izvršavanje modela dostupnim i snižava barijeru za eksperimentisanje. To je vredno. Ali produkciona aplikacija počinje tamo gde demo završava.

Model je samo jedna zamenljiva komponenta. Pravi proizvod je kontrolisani sistem oko njega: unos podataka, dozvole, pretraga, promptovi, rutiranje provajdera, evaluacija, logovi, monitoring, implementacija, rezervne kopije i korisnički tok rada. Tu privatnost postaje stvarna, kvalitet merljiv, a poslovna vrednost ponovljiva.

Ozbiljna Open-LLM aplikacija se gradi kroz inženjersku disciplinu, a ne jednokratnim pokretanjem lokalnog modela. Ollama može započeti putovanje, ali produkciona aplikacija počinje tamo gde se demo završava.

Tema:

Ollama, Open LLM, RAG, pgvector, Qdrant, Lokalni AI, LLMOps, Apstrakcija provajdera, Enterprise AI arhitektura

Related Articles

Sveobuhvatan vodič za Evaluation Harness: Ovladavanje evaluacijom performansi LLM-ova

Sveobuhvatan vodič za Evaluation Harness: Ovladavanje evaluacijom performansi LLM-ova

Ovaj vodič pruža detaljan pregled Evaluation Harness-a, ključnog okvira za rigoroznu procenu sposobnosti velikih jezičkih modela (LLM) u korporativnim LLMOps procesima. Naučite podešavanje, najbolje prakse i napredne tehnike kako biste osigurali pouzdano benčmarkovanje i optimizaciju modela.

Qwen 3.6 u produkciji: Runbook za izdavanje, AI rollback i LLMOps verziranje

Qwen 3.6 u produkciji: Runbook za izdavanje, AI rollback i LLMOps verziranje

Qwen 3.6 nije samo još jedna nadogradnja modela. To je istovremeno događaj objavljivanja, scenario povratka na prethodnu verziju i problem verziranja. Ovaj članak objašnjava kako Qwen 3.6 treba tretirati u produkciji kroz LLMOps disciplinu, sledljivost promptova i modela, kontrolisano uvođenje i spremnost za povratak na prethodnu verziju zasnovanu na dokazima.

Ovladavanje SEO radnim tokom: Ključne strategije optimizacije za organski rast

Ovladavanje SEO radnim tokom: Ključne strategije optimizacije za organski rast

Strukturiran SEO tok posla je ključan za održiv organski rast. Naučite deset osnovnih strategija, od istraživanja ključnih reči i tehničke optimizacije do kvaliteta sadržaja i analize performansi.

Novi Qwen 3.5-Plus: AI otvorenog koda je upravo postao ozbiljan.

Novi Qwen 3.5-Plus: AI otvorenog koda je upravo postao ozbiljan.

Otkrijte revolucionarne funkcije i prednosti Alibabinog Qwen 3.5-Plus modela, AI otvorenog koda koji menja pravila igre za programere.

Model-View-Controller (MVC): Strukturna okosnica modernih veb aplikacija

Model-View-Controller (MVC): Strukturna okosnica modernih veb aplikacija

Model-View-Controller, obično skraćeno kao MVC, ostaje jedan od najtrajnijih arhitektonskih obrazaca u razvoju softvera. On timovima pruža praktičan način da razdvoje poslovnu logiku, prezentaciju i interakciju korisnika kako bi aplikacije ostale lakše za izgradnju, proširenje, testiranje i održavanje. Ovaj članak objašnjava šta je MVC, zašto je i dalje važan, gde se uklapa u današnje veb stekove i kako se povezuje sa širom arhitekturom platforme, kvalitetom isporuke, strategijom migracije i operativnom zrelošću.

Višezakupna arhitektura korporativnog nivoa za međunarodnu platformu

Višezakupna arhitektura korporativnog nivoa za međunarodnu platformu

Loving Rocks je platforma za venčanja poslovne klase, dizajnirana sa istinskom više-zakupnom arhitekturom, izolovanim bazama podataka po zakupcu i ugrađenom internacionalizacijom za globalnu skalabilnost, bezbednost i dugoročnu operativnu stabilnost.