llmxray 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/README.ar.md +305 -302
  2. package/README.fr.md +301 -298
  3. package/README.md +301 -298
  4. package/README.sr.md +301 -298
  5. package/README.zh-CN.md +301 -298
  6. package/dist/assets/{AITrainingPage-BGxiNftI.js → AITrainingPage-E06gN8gf.js} +1 -1
  7. package/dist/assets/{AnalyticsPage-Ct-sjfwM.js → AnalyticsPage-DE1P_0ls.js} +1 -1
  8. package/dist/assets/BenchmarkPage-aPSp8X68.js +31 -0
  9. package/dist/assets/CacheLabPage-DK6ysPiC.js +3 -0
  10. package/dist/assets/{ComparisonPage-BnJNpxsl.js → ComparisonPage-B-TTYJzF.js} +1 -1
  11. package/dist/assets/{CostDashboardPage-B4NDxJsX.js → CostDashboardPage-uaU9LjEe.js} +1 -1
  12. package/dist/assets/{DashboardPage-BGQp7-l9.js → DashboardPage-i7XFboZS.js} +1 -1
  13. package/dist/assets/{EmbeddingsPage-VBfXkb7Z.js → EmbeddingsPage-BIj9zAA3.js} +1 -1
  14. package/dist/assets/{FimPlaygroundPage-DLoI_Bvm.js → FimPlaygroundPage-BQLvqvU_.js} +1 -1
  15. package/dist/assets/{GoogleCallbackPage-Cs3tBy_I.js → GoogleCallbackPage-eAe26FFg.js} +1 -1
  16. package/dist/assets/{JsonTreeNode-BSiw1fzq.js → JsonTreeNode-CWxvNXOX.js} +1 -1
  17. package/dist/assets/{ModelCapabilityIcons.vue_vue_type_script_setup_true_lang-BEGN0dLS.js → ModelCapabilityIcons.vue_vue_type_script_setup_true_lang-B5ZTvJWj.js} +1 -1
  18. package/dist/assets/ProtocolObservatoryPage--sesoYfn.js +2 -0
  19. package/dist/assets/{RAGPage-CnnZW7un.js → RAGPage-CEwQVaIo.js} +1 -1
  20. package/dist/assets/SessionPage-BZ6kBsHI.js +15 -0
  21. package/dist/assets/SettingsPage-CnF1KHWK.js +1 -0
  22. package/dist/assets/{StatusBadge.vue_vue_type_script_setup_true_lang-DO0LFtqz.js → StatusBadge.vue_vue_type_script_setup_true_lang-BGo19Xph.js} +1 -1
  23. package/dist/assets/{StorageGauge.vue_vue_type_style_index_0_lang-BvYHZigP.js → StorageGauge.vue_vue_type_style_index_0_lang-CUFDMHxV.js} +1 -1
  24. package/dist/assets/{SystemPage-BEGyNOxu.js → SystemPage-B6rcHN5S.js} +2 -2
  25. package/dist/assets/{TabBar.vue_vue_type_script_setup_true_lang-BwHA1qGL.js → TabBar.vue_vue_type_script_setup_true_lang-C0hGnp0C.js} +1 -1
  26. package/dist/assets/{TokenStreamDisplay.vue_vue_type_script_setup_true_lang-DyRMkTKm.js → TokenStreamDisplay.vue_vue_type_script_setup_true_lang-CW2jbXwZ.js} +1 -1
  27. package/dist/assets/{ToolWorkshopPage-CNhpkdiG.js → ToolWorkshopPage-DmrV0xap.js} +1 -1
  28. package/dist/assets/{agent-store-Ak5tH3gE.js → agent-store--SqycFe6.js} +1 -1
  29. package/dist/assets/{canvas-ai-db-Bw1M5Zgc.js → canvas-ai-db-Da1vIVOq.js} +1 -1
  30. package/dist/assets/{download-DgBo5doZ.js → download-CUsL7GrM.js} +1 -1
  31. package/dist/assets/format-CKxSMkvr.js +1 -0
  32. package/dist/assets/{generate-service-D1KjeWIo.js → generate-service-BZdEHgFU.js} +1 -1
  33. package/dist/assets/{google-auth-store-Db6JKC8L.js → google-auth-store-DXrzgrLv.js} +1 -1
  34. package/dist/assets/{index-BM7fRtY0.js → index-BPkqt5Qe.js} +1 -1
  35. package/dist/assets/{index-aU4tMz4Z.css → index-C78FkuPP.css} +1 -1
  36. package/dist/assets/{index-YmhR__TY.js → index-C8P_C63i.js} +1 -1
  37. package/dist/assets/{index-S2vqeDf7.js → index-YRiA3BUj.js} +12 -12
  38. package/dist/assets/{info-47X0r1B2.js → info-DH8FG2G3.js} +1 -1
  39. package/dist/assets/{metrics-store-DzujlkfW.js → metrics-store-BCparPrV.js} +1 -1
  40. package/dist/assets/{papaparse.min-D0aQsTQw.js → papaparse.min-Dopi_5A-.js} +1 -1
  41. package/dist/assets/{pencil-B-eZ2Kq9.js → pencil-gkZEyblB.js} +1 -1
  42. package/dist/assets/{play-DT41vD7M.js → play-HRQny-4Y.js} +1 -1
  43. package/dist/assets/{rag-store-gqowRN8t.js → rag-store-D0yMVMjG.js} +3 -3
  44. package/dist/assets/{session-store-BO1u_qJQ.js → session-store-2bGNgO7a.js} +1 -1
  45. package/dist/assets/{share-2-IBretU3M.js → share-2-c3XzX2pt.js} +1 -1
  46. package/dist/assets/{square-CbKkOlNA.js → square-CqZgk1mI.js} +1 -1
  47. package/dist/assets/{storage-store-GsT1cPEh.js → storage-store-BLDOaasz.js} +1 -1
  48. package/dist/assets/stream-handler-BGYCTeOR.js +4 -0
  49. package/dist/assets/{tool-workshop-store-BLoF0Gob.js → tool-workshop-store-DBnJxusu.js} +1 -1
  50. package/dist/assets/{toolcall-store-BEFdRqL-.js → toolcall-store-CJSLkRLe.js} +1 -1
  51. package/dist/assets/{trash-2-BdlHNMOp.js → trash-2-DU091nIw.js} +1 -1
  52. package/dist/index.html +2 -2
  53. package/package.json +9 -1
  54. package/dist/assets/BenchmarkPage-q41YsHY8.js +0 -31
  55. package/dist/assets/ProtocolObservatoryPage-CgunJ_Wi.js +0 -2
  56. package/dist/assets/SessionPage-NE_x02_4.js +0 -15
  57. package/dist/assets/SettingsPage-DTpQIrlG.js +0 -1
  58. package/dist/assets/format-BqVZ9rwM.js +0 -1
  59. package/dist/assets/stream-handler-B5y5PItW.js +0 -4
package/README.sr.md CHANGED
@@ -1,298 +1,301 @@
1
- <p align="center">
2
- <img src="https://raw.githubusercontent.com/LogneBudo/llmxray/master/public/favicon.svg" alt="LLMxRay" width="80" />
3
- </p>
4
-
5
- <h1 align="center">LLMxRay</h1>
6
- <p align="center"><strong>Vidi šta tvoj AI zaista radi.</strong></p>
7
- <p align="center">
8
- Strimovanje tokena u realnom vremenu, analiza kvaliteta, profilisanje performansi i praćenje troškova<br/>
9
- za lokalne LLM-ove. Bez clouda. Bez API ključeva. Bez troškova.
10
- </p>
11
-
12
- <p align="center">
13
- <a href="https://www.npmjs.com/package/llmxray"><img src="https://img.shields.io/npm/v/llmxray?color=cb3837&logo=npm&logoColor=white" alt="npm" /></a>
14
- <a href="https://hub.docker.com/r/djovaneli/llmxray"><img src="https://img.shields.io/docker/pulls/djovaneli/llmxray?color=2496ED&logo=docker&logoColor=white" alt="Docker" /></a>
15
- <img src="https://img.shields.io/badge/license-Apache%202.0-blue" alt="License" />
16
- <img src="https://img.shields.io/badge/ollama-local-000?logo=ollama&logoColor=white" alt="Ollama" />
17
- </p>
18
-
19
- <p align="center">
20
- 🌐 <a href="README.md">English</a> &bull;
21
- <a href="README.fr.md">Français</a> &bull;
22
- <a href="README.zh-CN.md">中文</a> &bull;
23
- <a href="README.ar.md">العربية</a> &bull;
24
- <strong>Srpski</strong>
25
- </p>
26
-
27
- <p align="center">
28
- <a href="#brzi-start">Brzi start</a> &bull;
29
- <a href="#mogućnosti">Mogućnosti</a> &bull;
30
- <a href="#snimci-ekrana">Snimci ekrana</a> &bull;
31
- <a href="#kome-je-namenjeno">Kome je namenjeno</a> &bull;
32
- <a href="CHANGELOG.md">Changelog</a>
33
- </p>
34
-
35
- <p align="center">
36
- <img src="docs/public/screenshots/demo.gif" alt="LLMxRay demo — strimovanje tokena u realnom vremenu sa bojenjem prema poverenju" width="800" />
37
- </p>
38
-
39
- ---
40
-
41
- ## Brzi start
42
-
43
- **Jedna komanda. 30 sekundi.**
44
-
45
- ```bash
46
- npx llmxray
47
- ```
48
-
49
- Ili sa Docker-om:
50
-
51
- ```bash
52
- docker run -p 5174:5174 djovaneli/llmxray
53
- ```
54
-
55
- Otvori **http://localhost:5174** i počni razgovor. To je sve.
56
-
57
- > **Preduslov:** [Ollama](https://ollama.com/download) pokrenut lokalno sa bar jednim povučenim modelom (`ollama pull llama3.2`).
58
-
59
- ---
60
-
61
- ## Zašto LLMxRay?
62
-
63
- Pokrenuo si lokalni LLM. Razgovaraš sa njim. Ali šta se zaista desilo?
64
-
65
- - Koliko je svaki token bio brz? U koje je model bio siguran?
66
- - Da li kvalitet odgovora opada tokom dugih razgovora?
67
- - Koliko bi ovo koštalo da si ga pokrenuo u cloudu?
68
- - Da li se model ponavlja? Odbija? Generiše besmislice?
69
- - Kako se temperatura 0.3 poredi sa 0.9 na *istom* promptu?
70
-
71
- **LLMxRay odgovara na sve ovo — vizuelno, u realnom vremenu, besplatno.**
72
-
73
- ---
74
-
75
- ## Mogućnosti
76
-
77
- ### Razgovor u realnom vremenu sa inteligencijom tokena
78
- Pričaj sa bilo kojim Ollama modelom i posmatraj tokene kako pristižu sa **bojenjem prema poverenju** — svaki token je obojen prema brzini generisanja. Podržava Markdown, razgovore u više rundi, priloge datoteka, vision modele i slash komande. Za modele koji rezonuju, podesi budžet razmišljanja po razgovoru — isključeno, po izboru modela, ili eksplicitan napor nisko / srednje / visoko / max.
79
-
80
- ### Kapije kvaliteta odgovora
81
- Svaki odgovor se automatski analizira. Obojene oznake se pojavljuju samo kada nešto nije u redu:
82
- - **Ponavljanje** — preterano ponavljanje fraza (4-gram analiza)
83
- - **Odbijanje** — "kao AI jezički model" i još 7 obrazaca
84
- - **Besmislice** — visok udeo ne-ASCII karaktera
85
- - **Prazno** — manje od 10 reči
86
- - **Sečenje** — dostigao limit tokena bez završetka
87
-
88
- ### Radionica za poređenje modela
89
- Do **4 slota** sa nezavisnim modelom, temperaturom i sistemskim promptom. Mogućnosti uključuju strimovanje uporedo, isticanje razlika na nivou reči, poređenje metrika i jedno-klik preset-e (Temperature Sweep, Deterministic Pair, Language Compare sa vizualizacijom Token Tax-a).
90
-
91
- ### Analitika performansi
92
- - **Percentili latencije** (P50/P95/P99) za trajanje i TTFT
93
- - **Inteligencija grešaka** — klasifikator sa 7 kategorija i vremenska osa
94
- - **Toplotna mapa korišćenja** — 7×24 mreža tvojih aktivnih sati
95
- - **Uticaj podešavanja** — scatter dijagrami temperature naspram tokena/sec
96
- - Praćenje **hladnog i toplog starta** sa istorijom učitavanja modela
97
-
98
- ### Tabla troškova
99
- Potrošnja tokena po modelu/danu sa procenom ekvivalentne cene u cloudu. Vidi koliko *štediš* tako što pokrećeš lokalno.
100
-
101
- ### Hirurški benchmark
102
- Testiraj znanje modela skupovima pitanja sa višestrukim izborom. Koristi prave logprobs preko OpenAI-kompatibilnog endpointa za tačno merenje poverenja. Pravi custom skupove vizuelno ili pusti AI da ih generiše iz teme.
103
-
104
- ### Embeddings Lab i RAG pipeline
105
- Embeduj tekst, vizualizuj vektore, meri kosinusnu sličnost. Zatraži uži izlazni vektor da vidiš koliko Matrjoška skraćivanje košta u sličnosti. Izgradi lokalnu bazu znanja iz PDF, DOCX i CSV fajlova — podeljeno na delove, embedovano i pretraživo. Sve smešteno u IndexedDB. Bez troškova.
106
-
107
- ### Tool Workshop (vizuelno platno)
108
- Drag-and-drop platno sa čvorovima za pravljenje definicija alata. Dvosmerna sinhronizacija koda (uređuj čvorove ili TypeScript — oba se ažuriraju). Sondiraj API-je, automatski generiši šeme, testiraj uživo.
109
-
110
- ### Fill-in-the-Middle Playground *(novo u v0.4.7)*
111
- Dopuna koda za Qwen-Coder, CodeLlama, Codestral, DeepSeek-Coder i StarCoder. Dva polja (prefiks / sufiks), model popunjava prazninu. Koristi Ollama `suffix` polje na `/api/generate`. Spojeni pregled pokazuje rezultat kao što bi izgledao u tvom editoru.
112
-
113
- ### Protocol Observatory *(novo u v0.4.7)*
114
- Pošalji isti prompt kroz tri Ollama protokola posluživanja **nativni** `/api/chat`, **OpenAI-compat** `/v1/chat/completions` i **Anthropic-compat** `/v1/messages` paralelno protiv tvog lokalnog modela. Strimovanje uporedo, metrike po protokolu i tab za poređenje envelope-a koji pokazuje kako svaki protokol uobličava razloge završetka, brojeve tokena i envelope grešaka. Bez clouda, bez API ključeva sva tri endpointa su lokalna na `localhost:11434`.
115
-
116
- ### AI Training Pipeline
117
- Pripremi podatke za obuku iz svojih razgovora. Označavaj, pregledaj i izvozi kao JSONL za fine-tuning.
118
-
119
- ### Lokalna AI baza istorije
120
- Svaki eksperiment (benchmark-i, poređenja, razgovori, parovi za obuku) se automatski arhivira u pretraživu IndexedDB bazu sa filterima, trendovima, izvozom i pravilima zadržavanja.
121
-
122
- ### Višejezičnost
123
- Potpuni prevodi na engleskom, francuskom, srpskom (latinica + ćirilica), kineskom i arapskom. Podrška za RTL raspored. Skele zajednice za hebrejski i japanski.
124
-
125
- ---
126
-
127
- ## Ollama kompatibilnost
128
-
129
- Testirano i verifikovano sa **Ollama 0.32.x** (trenutno najnovija stabilna verzija u avgustu 2026). LLMxRay koristi sledeće Ollama endpointe:
130
-
131
- | Endpoint | Za šta se koristi |
132
- |---|---|
133
- | `/api/chat` | Strimovan chat (NDJSON, sa `tools`, `think`, `format` schema) |
134
- | `/api/generate` | Generisanje + Fill-in-the-Middle preko `suffix` |
135
- | `/api/tags` | Lista modela + sposobnosti, dužina konteksta i širina embedinga |
136
- | `/api/show` | Parametri, template, licenca i metapodaci arhitekture |
137
- | `/api/embed` | Vektorski embeddings za RAG |
138
- | `/api/pull`, `/api/delete`, `/api/ps`, `/api/version` | Upravljanje modelima + status |
139
- | `/v1/chat/completions` | OpenAI-compat putanja koju Surgical Benchmark koristi za prave logprobs |
140
- | `/v1/messages` | Anthropic-compat putanja koju koristi Protocol Observatory |
141
-
142
- **Kompatibilno sa:** Ollama 0.20 i novijim (starije verzije rade za chat/generate, ali nemaju `think` i JSON-schema `format`). **Preporučeno:** Ollama 0.32+ sposobnosti i dužina konteksta stižu sa listom modela, `think` prihvata stepenovane nivoe napora, a embedinzi prihvataju `dimensions` širinu.
143
-
144
- ---
145
-
146
- ## Snimci ekrana
147
-
148
- <table>
149
- <tr>
150
- <td width="50%">
151
-
152
- **Chat sa strimovanjem tokena i poverenjem**
153
- ![Chat](docs/public/screenshots/chat-diagnostics.png)
154
-
155
- </td>
156
- <td width="50%">
157
-
158
- **Poređenje modela — uporedo**
159
- ![Compare](docs/public/screenshots/compare-sidebyside.png)
160
-
161
- </td>
162
- </tr>
163
- <tr>
164
- <td width="50%">
165
-
166
- **Detaljni pregled sesije — metrike i tajming**
167
- ![Session](docs/public/screenshots/session-details.png)
168
-
169
- </td>
170
- <td width="50%">
171
-
172
- **Benchmark sa radarom poverenja**
173
- ![Benchmark](docs/public/screenshots/benchmark.png)
174
-
175
- </td>
176
- </tr>
177
- <tr>
178
- <td width="50%">
179
-
180
- **Embeddings — kosinusna sličnost**
181
- ![Embeddings](docs/public/screenshots/embed-similarity.png)
182
-
183
- </td>
184
- <td width="50%">
185
-
186
- **Monitor sistema — hardver i Ollama status**
187
- ![System](docs/public/screenshots/my-system.png)
188
-
189
- </td>
190
- </tr>
191
- </table>
192
-
193
- ---
194
-
195
- ## Kome je namenjeno
196
-
197
- | Ti si... | LLMxRay ti pomaže da... |
198
- |---|---|
199
- | **Developer** | Debaguješ promptove, profilišeš latenciju, porediš modele, pregledaš tool pozive, pratiš troškove |
200
- | **Istraživač** | Pokrećeš kontrolisane eksperimente sa konzistentnim podešavanjima kroz modele i temperature |
201
- | **Student / Edukator** | Istražuješ ponašanje modela vizuelno — ugrađeni Educators Kit sa 9 interaktivnih modula |
202
- | **Vođa AI tima** | Razumeš trendove kvaliteta, obrasce grešaka i potrošnju resursa kroz svoju lokalnu flotu |
203
-
204
- ---
205
-
206
- ## Opcije instalacije
207
-
208
- ### npx (preporučeno)
209
- ```bash
210
- npx llmxray
211
- npx llmxray --port 3000
212
- npx llmxray --ollama-url http://192.168.1.50:11434
213
- ```
214
-
215
- ### Docker
216
- ```bash
217
- docker run -p 5174:5174 djovaneli/llmxray
218
- docker run -p 5174:5174 -e OLLAMA_URL=http://host.docker.internal:11434 djovaneli/llmxray
219
- ```
220
-
221
- ### Iz izvornog koda
222
- ```bash
223
- git clone https://github.com/LogneBudo/llmxray.git
224
- cd llmxray
225
- npm install
226
- npm run dev # http://localhost:5173
227
- ```
228
-
229
- ---
230
-
231
- ## Tehnološki stek
232
-
233
- | Sloj | Tehnologija |
234
- |---|---|
235
- | Framework | Vue 3.5 + Composition API |
236
- | Jezik | TypeScript 5.9 (strict) |
237
- | Build | Vite 7.3 |
238
- | Stilizovanje | Tailwind CSS 4.2 |
239
- | State | Pinia 3 (store po domenu) |
240
- | Grafici | Chart.js 4, D3.js 7 |
241
- | Canvas | Vue Flow (vizuelni node editor) |
242
- | Editor koda | CodeMirror 6 |
243
- | Skladištenje | IndexedDB (nativan u browseru) |
244
- | LLM Backend | Ollama (lokalno) |
245
-
246
- ---
247
-
248
- ## Arhitektura
249
-
250
- **Strimovanje** — Čita Ollama NDJSON preko `fetch()` + `ReadableStream`. Tokeni reaktivno ažuriraju UI kroz Pinia store-ove.
251
-
252
- **Poverenje tokena** — Aproksimirano iz latencije između tokena (brže = sigurnije). Jasno označeno kao aproksimacija. Benchmark-i koriste prave logprobs preko OpenAI-kompatibilnog endpointa.
253
-
254
- **Store po domenu** — Svaki domen ima svoj Pinia store: tokens, sessions, metrics, reasoning, comparison, embeddings, quality, cost i drugi.
255
-
256
- **Detekcija hardvera** — Custom Vite plugin direktno ispituje OS (PowerShell/proc/sysctl) za tačne hardverske specifikacije.
257
-
258
- ---
259
-
260
- ## Razvoj
261
-
262
- | Komanda | Šta radi |
263
- |---|---|
264
- | `npm run dev` | Dev server (port 5173) |
265
- | `npm run build` | Provera tipova + production build |
266
- | `npm run test` | Unit testovi (Vitest) |
267
- | `npm run test:e2e` | End-to-end (Playwright) |
268
-
269
- ---
270
-
271
- ## Doprinosi
272
-
273
- Doprinosi su dobrodošli! Pogledaj [CONTRIBUTING.md](CONTRIBUTING.md) za podešavanje i smernice.
274
-
275
- **Prevodi zajednice su posebno dobrodošli** — skele su spremne za hebrejski i japanski.
276
-
277
- ---
278
-
279
- ## Licenca
280
-
281
- [Apache License 2.0](LICENSE)
282
-
283
- ## Žig
284
-
285
- **LLMxRay** je žig Ivana Stankovića ([LogneBudo](https://github.com/LogneBudo)). Pogledaj [TRADEMARK.md](TRADEMARK.md).
286
-
287
- ---
288
-
289
- <p align="center">
290
- <strong>Ako ti LLMxRay pomaže da bolje razumeš svoj AI, razmisli da daš zvezdicu.</strong><br/>
291
- To pomaže drugima da otkriju projekat.
292
- </p>
293
-
294
- <p align="center">
295
- <a href="https://github.com/LogneBudo/llmxray">
296
- <img src="https://img.shields.io/github/stars/LogneBudo/llmxray?style=social" alt="GitHub stars" />
297
- </a>
298
- </p>
1
+ <p align="center">
2
+ <img src="https://raw.githubusercontent.com/LogneBudo/llmxray/master/public/favicon.svg" alt="LLMxRay" width="80" />
3
+ </p>
4
+
5
+ <h1 align="center">LLMxRay</h1>
6
+ <p align="center"><strong>Vidi šta tvoj AI zaista radi.</strong></p>
7
+ <p align="center">
8
+ Strimovanje tokena u realnom vremenu, analiza kvaliteta, profilisanje performansi i praćenje troškova<br/>
9
+ za lokalne LLM-ove. Bez clouda. Bez API ključeva. Bez troškova.
10
+ </p>
11
+
12
+ <p align="center">
13
+ <a href="https://www.npmjs.com/package/llmxray"><img src="https://img.shields.io/npm/v/llmxray?color=cb3837&logo=npm&logoColor=white" alt="npm" /></a>
14
+ <a href="https://hub.docker.com/r/djovaneli/llmxray"><img src="https://img.shields.io/docker/pulls/djovaneli/llmxray?color=2496ED&logo=docker&logoColor=white" alt="Docker" /></a>
15
+ <img src="https://img.shields.io/badge/license-Apache%202.0-blue" alt="License" />
16
+ <img src="https://img.shields.io/badge/ollama-local-000?logo=ollama&logoColor=white" alt="Ollama" />
17
+ </p>
18
+
19
+ <p align="center">
20
+ 🌐 <a href="README.md">English</a> &bull;
21
+ <a href="README.fr.md">Français</a> &bull;
22
+ <a href="README.zh-CN.md">中文</a> &bull;
23
+ <a href="README.ar.md">العربية</a> &bull;
24
+ <strong>Srpski</strong>
25
+ </p>
26
+
27
+ <p align="center">
28
+ <a href="#brzi-start">Brzi start</a> &bull;
29
+ <a href="#mogućnosti">Mogućnosti</a> &bull;
30
+ <a href="#snimci-ekrana">Snimci ekrana</a> &bull;
31
+ <a href="#kome-je-namenjeno">Kome je namenjeno</a> &bull;
32
+ <a href="CHANGELOG.md">Changelog</a>
33
+ </p>
34
+
35
+ <p align="center">
36
+ <img src="https://raw.githubusercontent.com/LogneBudo/llmxray/master/docs/public/screenshots/demo.gif" alt="LLMxRay demo — strimovanje tokena u realnom vremenu sa bojenjem prema poverenju" width="800" />
37
+ </p>
38
+
39
+ ---
40
+
41
+ ## Brzi start
42
+
43
+ **Jedna komanda. 30 sekundi.**
44
+
45
+ ```bash
46
+ npx llmxray
47
+ ```
48
+
49
+ Ili sa Docker-om:
50
+
51
+ ```bash
52
+ docker run -p 5174:5174 djovaneli/llmxray
53
+ ```
54
+
55
+ Otvori **http://localhost:5174** i počni razgovor. To je sve.
56
+
57
+ > **Preduslov:** [Ollama](https://ollama.com/download) pokrenut lokalno sa bar jednim povučenim modelom (`ollama pull llama3.2`).
58
+
59
+ ---
60
+
61
+ ## Zašto LLMxRay?
62
+
63
+ Pokrenuo si lokalni LLM. Razgovaraš sa njim. Ali šta se zaista desilo?
64
+
65
+ - Koliko je svaki token bio brz? U koje je model bio siguran?
66
+ - Da li kvalitet odgovora opada tokom dugih razgovora?
67
+ - Koliko bi ovo koštalo da si ga pokrenuo u cloudu?
68
+ - Da li se model ponavlja? Odbija? Generiše besmislice?
69
+ - Kako se temperatura 0.3 poredi sa 0.9 na *istom* promptu?
70
+
71
+ **LLMxRay odgovara na sve ovo — vizuelno, u realnom vremenu, besplatno.**
72
+
73
+ ---
74
+
75
+ ## Mogućnosti
76
+
77
+ ### Razgovor u realnom vremenu sa inteligencijom tokena
78
+ Pričaj sa bilo kojim Ollama modelom i posmatraj tokene kako pristižu sa **bojenjem prema poverenju** — svaki token je obojen prema brzini generisanja. Podržava Markdown, razgovore u više rundi, priloge datoteka, vision modele i slash komande. Za modele koji rezonuju, podesi budžet razmišljanja po razgovoru — isključeno, po izboru modela, ili eksplicitan napor nisko / srednje / visoko / max.
79
+
80
+ ### Kapije kvaliteta odgovora
81
+ Svaki odgovor se automatski analizira. Obojene oznake se pojavljuju samo kada nešto nije u redu:
82
+ - **Ponavljanje** — preterano ponavljanje fraza (4-gram analiza)
83
+ - **Odbijanje** — "kao AI jezički model" i još 7 obrazaca
84
+ - **Besmislice** — visok udeo ne-ASCII karaktera
85
+ - **Prazno** — manje od 10 reči
86
+ - **Sečenje** — dostigao limit tokena bez završetka
87
+
88
+ ### Radionica za poređenje modela
89
+ Do **4 slota** sa nezavisnim modelom, temperaturom i sistemskim promptom. Mogućnosti uključuju strimovanje uporedo, isticanje razlika na nivou reči, poređenje metrika i jedno-klik preset-e (Temperature Sweep, Deterministic Pair, Language Compare sa vizualizacijom Token Tax-a).
90
+
91
+ ### Analitika performansi
92
+ - **Percentili latencije** (P50/P95/P99) za trajanje i TTFT
93
+ - **Inteligencija grešaka** — klasifikator sa 7 kategorija i vremenska osa
94
+ - **Toplotna mapa korišćenja** — 7×24 mreža tvojih aktivnih sati
95
+ - **Uticaj podešavanja** — scatter dijagrami temperature naspram tokena/sec
96
+ - Praćenje **hladnog i toplog starta** sa istorijom učitavanja modela
97
+
98
+ ### Tabla troškova
99
+ Potrošnja tokena po modelu/danu sa procenom ekvivalentne cene u cloudu. Vidi koliko *štediš* tako što pokrećeš lokalno.
100
+
101
+ ### Hirurški benchmark
102
+ Testiraj znanje modela skupovima pitanja sa višestrukim izborom. Koristi prave logprobs preko OpenAI-kompatibilnog endpointa za tačno merenje poverenja. Pravi custom skupove vizuelno ili pusti AI da ih generiše iz teme.
103
+
104
+ ### Embeddings Lab i RAG pipeline
105
+ Embeduj tekst, vizualizuj vektore, meri kosinusnu sličnost. Zatraži uži izlazni vektor da vidiš koliko Matrjoška skraćivanje košta u sličnosti. Izgradi lokalnu bazu znanja iz PDF, DOCX i CSV fajlova — podeljeno na delove, embedovano i pretraživo. Sve smešteno u IndexedDB. Bez troškova.
106
+
107
+ ### Tool Workshop (vizuelno platno)
108
+ Drag-and-drop platno sa čvorovima za pravljenje definicija alata. Dvosmerna sinhronizacija koda (uređuj čvorove ili TypeScript — oba se ažuriraju). Sondiraj API-je, automatski generiši šeme, testiraj uživo.
109
+
110
+ ### Fill-in-the-Middle Playground *(novo u v0.4.7)*
111
+ Dopuna koda za Qwen-Coder, CodeLlama, Codestral, DeepSeek-Coder i StarCoder. Dva polja (prefiks / sufiks), model popunjava prazninu. Koristi Ollama `suffix` polje na `/api/generate`. Spojeni pregled pokazuje rezultat kao što bi izgledao u tvom editoru.
112
+
113
+ ### Laboratorija keša *(novo u v0.6.0)*
114
+ Saznajte zašto vaš prompt promašuje KV keš modela i izmerite koliko to košta u svakom krugu. Lokalni model ponovo koristi keš samo dok se prompt poklapa od prvog tokena, pa jedna vremenska oznaka pri vrhu poništava sve ispod nje. Laboratorija pronalazi vrednosti koje se menjaju između krugova, pokazuje tačku na kojoj ponovna upotreba umire, a zatim **meri** šaljajući svaki raspored dvaput sa izmenjenom vrednošću, na vašem demonu koliko donosi njihovo pomeranje na kraj. Izmereno na stvarnom promptu od 324 tokena: **4 tokena ponovo upotrebljena i 64,6 ms prefila sa oznakom na početku, 290 i 18,6 ms na kraju. 3,5x brže, uz iste reči.** Zahteva Ollama 0.33.3+.
115
+
116
+ ### Protocol Observatory *(novo u v0.4.7)*
117
+ Pošalji isti prompt kroz tri Ollama protokola posluživanja — **nativni** `/api/chat`, **OpenAI-compat** `/v1/chat/completions` i **Anthropic-compat** `/v1/messages` — paralelno protiv tvog lokalnog modela. Strimovanje uporedo, metrike po protokolu i tab za poređenje envelope-a koji pokazuje kako svaki protokol uobličava razloge završetka, brojeve tokena i envelope grešaka. Bez clouda, bez API ključeva — sva tri endpointa su lokalna na `localhost:11434`.
118
+
119
+ ### AI Training Pipeline
120
+ Pripremi podatke za obuku iz svojih razgovora. Označavaj, pregledaj i izvozi kao JSONL za fine-tuning.
121
+
122
+ ### Lokalna AI baza istorije
123
+ Svaki eksperiment (benchmark-i, poređenja, razgovori, parovi za obuku) se automatski arhivira u pretraživu IndexedDB bazu sa filterima, trendovima, izvozom i pravilima zadržavanja.
124
+
125
+ ### Višejezičnost
126
+ Potpuni prevodi na engleskom, francuskom, srpskom (latinica + ćirilica), kineskom i arapskom. Podrška za RTL raspored. Skele zajednice za hebrejski i japanski.
127
+
128
+ ---
129
+
130
+ ## Ollama kompatibilnost
131
+
132
+ Testirano i verifikovano sa **Ollama 0.33.x** (verifikovano na 0.33.3, septembar 2026). LLMxRay koristi sledeće Ollama endpointe:
133
+
134
+ | Endpoint | Za šta se koristi |
135
+ |---|---|
136
+ | `/api/chat` | Strimovan chat (NDJSON, sa `tools`, `think`, `format` schema) |
137
+ | `/api/generate` | Generisanje + Fill-in-the-Middle preko `suffix` |
138
+ | `/api/tags` | Lista modela + sposobnosti, dužina konteksta i širina embedinga |
139
+ | `/api/show` | Parametri, template, licenca i metapodaci arhitekture |
140
+ | `/api/embed` | Vektorski embeddings za RAG |
141
+ | `/api/pull`, `/api/delete`, `/api/ps`, `/api/version` | Upravljanje modelima + status |
142
+ | `/v1/chat/completions` | OpenAI-compat putanja koju Surgical Benchmark koristi za prave logprobs |
143
+ | `/v1/messages` | Anthropic-compat putanja koju koristi Protocol Observatory |
144
+
145
+ **Kompatibilno sa:** Ollama 0.20 i novijim (starije verzije rade za chat/generate, ali nemaju `think` i JSON-schema `format`). **Preporučeno:** Ollama 0.33.3+ — ponovna upotreba keša prompta se prijavljuje (`prompt_eval_cached_count`, i `usage.prompt_tokens_details.cached_tokens` na OpenAI-kompatibilnom endpointu), pa se propusnost prefila meri nad tokenima koji su zaista evaluirani. Od 0.32: sposobnosti i dužina konteksta stižu sa listom modela, `think` prihvata stepenovane nivoe napora, a embedinzi prihvataju `dimensions` širinu.
146
+
147
+ ---
148
+
149
+ ## Snimci ekrana
150
+
151
+ <table>
152
+ <tr>
153
+ <td width="50%">
154
+
155
+ **Chat sa strimovanjem tokena i poverenjem**
156
+ ![Chat](https://raw.githubusercontent.com/LogneBudo/llmxray/master/docs/public/screenshots/chat-diagnostics.png)
157
+
158
+ </td>
159
+ <td width="50%">
160
+
161
+ **Poređenje modela — uporedo**
162
+ ![Compare](https://raw.githubusercontent.com/LogneBudo/llmxray/master/docs/public/screenshots/compare-sidebyside.png)
163
+
164
+ </td>
165
+ </tr>
166
+ <tr>
167
+ <td width="50%">
168
+
169
+ **Detaljni pregled sesije — metrike i tajming**
170
+ ![Session](https://raw.githubusercontent.com/LogneBudo/llmxray/master/docs/public/screenshots/session-details.png)
171
+
172
+ </td>
173
+ <td width="50%">
174
+
175
+ **Benchmark sa radarom poverenja**
176
+ ![Benchmark](https://raw.githubusercontent.com/LogneBudo/llmxray/master/docs/public/screenshots/benchmark.png)
177
+
178
+ </td>
179
+ </tr>
180
+ <tr>
181
+ <td width="50%">
182
+
183
+ **Embeddings — kosinusna sličnost**
184
+ ![Embeddings](https://raw.githubusercontent.com/LogneBudo/llmxray/master/docs/public/screenshots/embed-similarity.png)
185
+
186
+ </td>
187
+ <td width="50%">
188
+
189
+ **Monitor sistema — hardver i Ollama status**
190
+ ![System](https://raw.githubusercontent.com/LogneBudo/llmxray/master/docs/public/screenshots/my-system.png)
191
+
192
+ </td>
193
+ </tr>
194
+ </table>
195
+
196
+ ---
197
+
198
+ ## Kome je namenjeno
199
+
200
+ | Ti si... | LLMxRay ti pomaže da... |
201
+ |---|---|
202
+ | **Developer** | Debaguješ promptove, profilišeš latenciju, porediš modele, pregledaš tool pozive, pratiš troškove |
203
+ | **Istraživač** | Pokrećeš kontrolisane eksperimente sa konzistentnim podešavanjima kroz modele i temperature |
204
+ | **Student / Edukator** | Istražuješ ponašanje modela vizuelno — ugrađeni Educators Kit sa 9 interaktivnih modula |
205
+ | **Vođa AI tima** | Razumeš trendove kvaliteta, obrasce grešaka i potrošnju resursa kroz svoju lokalnu flotu |
206
+
207
+ ---
208
+
209
+ ## Opcije instalacije
210
+
211
+ ### npx (preporučeno)
212
+ ```bash
213
+ npx llmxray
214
+ npx llmxray --port 3000
215
+ npx llmxray --ollama-url http://192.168.1.50:11434
216
+ ```
217
+
218
+ ### Docker
219
+ ```bash
220
+ docker run -p 5174:5174 djovaneli/llmxray
221
+ docker run -p 5174:5174 -e OLLAMA_URL=http://host.docker.internal:11434 djovaneli/llmxray
222
+ ```
223
+
224
+ ### Iz izvornog koda
225
+ ```bash
226
+ git clone https://github.com/LogneBudo/llmxray.git
227
+ cd llmxray
228
+ npm install
229
+ npm run dev # http://localhost:5173
230
+ ```
231
+
232
+ ---
233
+
234
+ ## Tehnološki stek
235
+
236
+ | Sloj | Tehnologija |
237
+ |---|---|
238
+ | Framework | Vue 3.5 + Composition API |
239
+ | Jezik | TypeScript 5.9 (strict) |
240
+ | Build | Vite 7.3 |
241
+ | Stilizovanje | Tailwind CSS 4.2 |
242
+ | State | Pinia 3 (store po domenu) |
243
+ | Grafici | Chart.js 4, D3.js 7 |
244
+ | Canvas | Vue Flow (vizuelni node editor) |
245
+ | Editor koda | CodeMirror 6 |
246
+ | Skladištenje | IndexedDB (nativan u browseru) |
247
+ | LLM Backend | Ollama (lokalno) |
248
+
249
+ ---
250
+
251
+ ## Arhitektura
252
+
253
+ **Strimovanje** — Čita Ollama NDJSON preko `fetch()` + `ReadableStream`. Tokeni reaktivno ažuriraju UI kroz Pinia store-ove.
254
+
255
+ **Poverenje tokena** — Aproksimirano iz latencije između tokena (brže = sigurnije). Jasno označeno kao aproksimacija. Benchmark-i koriste prave logprobs preko OpenAI-kompatibilnog endpointa.
256
+
257
+ **Store po domenu** — Svaki domen ima svoj Pinia store: tokens, sessions, metrics, reasoning, comparison, embeddings, quality, cost i drugi.
258
+
259
+ **Detekcija hardvera** — Custom Vite plugin direktno ispituje OS (PowerShell/proc/sysctl) za tačne hardverske specifikacije.
260
+
261
+ ---
262
+
263
+ ## Razvoj
264
+
265
+ | Komanda | Šta radi |
266
+ |---|---|
267
+ | `npm run dev` | Dev server (port 5173) |
268
+ | `npm run build` | Provera tipova + production build |
269
+ | `npm run test` | Unit testovi (Vitest) |
270
+ | `npm run test:e2e` | End-to-end (Playwright) |
271
+
272
+ ---
273
+
274
+ ## Doprinosi
275
+
276
+ Doprinosi su dobrodošli! Pogledaj [CONTRIBUTING.md](CONTRIBUTING.md) za podešavanje i smernice.
277
+
278
+ **Prevodi zajednice su posebno dobrodošli** — skele su spremne za hebrejski i japanski.
279
+
280
+ ---
281
+
282
+ ## Licenca
283
+
284
+ [Apache License 2.0](LICENSE)
285
+
286
+ ## Žig
287
+
288
+ **LLMxRay** je žig Ivana Stankovića ([LogneBudo](https://github.com/LogneBudo)). Pogledaj [TRADEMARK.md](TRADEMARK.md).
289
+
290
+ ---
291
+
292
+ <p align="center">
293
+ <strong>Ako ti LLMxRay pomaže da bolje razumeš svoj AI, razmisli da daš zvezdicu.</strong><br/>
294
+ To pomaže drugima da otkriju projekat.
295
+ </p>
296
+
297
+ <p align="center">
298
+ <a href="https://github.com/LogneBudo/llmxray">
299
+ <img src="https://img.shields.io/github/stars/LogneBudo/llmxray?style=social" alt="GitHub stars" />
300
+ </a>
301
+ </p>