Posts

Showing posts with the label alati

LibreChat — alternativa Open WebUI za lokalne modele

U tekstu o Open WebUI postavljen je veb sloj iznad Ollame. Radi dobro i za većinu postavki je i dalje prvi izbor — ali nije jedini, i za pojedine firme nije ni najsrećniji. LibreChat je najozbiljnija alternativa. Ovaj tekst objašnjava po čemu se razlikuje, kada ima smisla preći i kako se postavlja uz lokalni model. Pitanje licence, bez zabluda Prvo da se raščisti jedna stvar koja se pogrešno prepričava. Open WebUI je besplatan i za velike firme. Nema plaćanja po korisniku, nema pretplate, nema ograničenja broja naloga. Od verzije 0.6.6 postoji jedna klauzula: u postavkama sa preko pedeset korisnika u tridesetodnevnom periodu ne smeš da ukloniš ili zameniš njihovo brendiranje — ime, logo, vizuelne oznake. Ispod tog praga i to slobodno menjaš. Praktično, to znači sledeće: Situacija Open WebUI Interna upotreba, bilo koliko korisnika Besplatno Do 50 korisnika, uz svoj logo Besplatno Preko 50 korisnika, uz svoj logo ...

Fine-tuning za administratore: kada ima smisla, a kada ne

Kad neko kaže „hoću da model nauči našu dokumentaciju", misli na fine-tuning. Skoro uvek greši — odgovor je RAG , i to je bio jedan od prvih zaključaka u ovom serijalu. Ali postoje slučajevi u kojima fine-tuning jeste pravi alat. Ovaj tekst objašnjava koji su, šta postupak stvarno zahteva i kako se izvodi na jednoj kartici. Šta fine-tuning menja Menja težine modela. Ne dodaje znanje na neki uredan način koji možeš da pregledaš — pomera brojeve tako da model drugačije reaguje na slične ulaze. Menja Ne menja Stil i ton odgovora Činjenice koje pouzdano zna Oblik izlaza Sposobnost rasuđivanja Poznavanje uskog domena Podatke koji se često menjaju Doslednost u ponašanju Veličinu modela i brzinu Ključna razlika: fine-tuning uči model kako da odgovara, ne šta da zna. Ako mu daš stotinu dokumenata o vašim procedurama, neće ih zapamtiti kao činjenice. Naučiće da zvuči kao neko ko ih poznaje — i onda...

MCP — kako model dobija pristup tvojim alatima

Tool calling iz teksta o API-ju radi, ali svaki alat pišeš iznova za svaku aplikaciju. Deset alata i tri aplikacije znače trideset komada koda koji rade isto. MCP je pokušaj da se to standardizuje: alat se opisuje jednom, a svaki klijent koji govori isti protokol ga koristi. Ovaj tekst pokazuje kako to izgleda na Linux serveru i gde su granice koje ne treba prelaziti. Šta rešava Bez MCP-a: aplikacija A → sopstvena definicija alata → tvoj kod aplikacija B → sopstvena definicija alata → isti tvoj kod aplikacija C → sopstvena definicija alata → opet isti kod Sa MCP-om: aplikacije A, B, C → MCP protokol → jedan server → tvoj kod Server izlaže tri vrste stvari: Vrsta Šta je Primer Tools Radnje koje model može da zatraži Provera statusa servisa Resources Podaci koje može da pročita Sadržaj konfiguracije Prompts Gotovi obrasci upita „Analiziraj pad servisa" Model i dalje ništa ne iz...

Benchmark lokalnog modela: koliko tokena u sekundi zaista dobijaš

„Sporo je" nije podatak. Bez broja ne znaš da li je model loše izabran, da li se deo slojeva preliva na procesor, ili je sve normalno i očekivanja su bila pogrešna. Ovaj tekst pokazuje šta se meri, čime i kako se rezultat čita. Sve dalje u Fazi 5 — nadzor, kapacitet, trošak — počiva na brojevima odavde. Šta se meri Dve faze rade po različitim pravilima, kako je objašnjeno u tekstu o CPU i GPU inferenciji : Mera Šta govori Ograničena čime Prefill (pp) Brzina čitanja prompta Računom Decode (tg) Brzina generisanja odgovora Propusnošću memorije TTFT Čekanje na prvi znak Dužinom prompta Propusnost Ukupno tokena u sekundi, svi korisnici Postavkom servisa Jedan broj ne opisuje postavku. Model može da generiše šezdeset tokena u sekundi, a da korisnik čeka pola minuta na prvi znak jer je prompt dugačak. Za razgovor je bitan TTFT plus decode; za paketnu obradu jedino ukupna p...

RAG nad sopstvenom dokumentacijom

„Hoću da model zna našu dokumentaciju" je najčešći zahtev koji ćeš dobiti. Odgovor gotovo nikad nije fine-tuning — nego RAG, postupak koji relevantne delove tvojih fajlova pronađe i ubaci u prompt pre nego što model odgovori. Open WebUI to već ume, kako je pokazano u tekstu o njemu . Ovaj tekst objašnjava šta se ispod dešava i kako se gradi sopstveno rešenje, jer ćeš ga pre ili kasnije trebati. Postupak Priprema (jednom): dokumenti → sečenje na delove → embeddings → vektorska baza Pri svakom pitanju: pitanje → embedding → pretraga po sličnosti → n najbližih delova → prompt: "Odgovori na osnovu ovog konteksta: ..." → model Model se ne menja. Težine ostaju iste; menja se samo ono što mu stiže u promptu. To je razlog zašto RAG radi na svakom modelu i zašto se dokument dodat jutros koristi već u podne. Embedding Numerički zapis značenja teksta. Dva teksta sličnog značenja imaju bliske zapise, i to bez ijedne zajedničke reči: "restart nginx ...

OpenAI-kompatibilan API na svom serveru

Sve što si do sada pokrenuo — Ollama, llama.cpp, vLLM — izlaže isti oblik API-ja. To nije slučajnost nego pristanak: OpenAI je definisao oblik zahteva, ostali su ga preuzeli, i zahvaljujući tome tvoj lokalni model radi sa alatima koji o njemu ništa ne znaju. Ovaj tekst razlaže taj oblik do kraja. Sve dalje u serijalu — skripte, analiza logova, RAG, agenti — svodi se na zahteve opisane ovde. Najmanji mogući zahtev $ curl http://localhost:11434/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "qwen3:8b", "messages": [ {"role": "user", "content": "Šta radi komanda ss -tulpn?"} ] }' Adresa se razlikuje po alatu, ostalo je isto: Alat Adresa Polje model Ollama :11434/v1 Obavezno, oznaka iz ollama list llama.cpp :8080/v1 Zanemaruje se, drži jedan model vLLM :8000/v1 Obavezno, mora se poklopiti Šta je servis stvarno spreman d...