llmxray 0.5.0 → 0.5.1

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 (57) hide show
  1. package/README.ar.md +302 -302
  2. package/README.fr.md +298 -298
  3. package/README.md +298 -298
  4. package/README.sr.md +298 -298
  5. package/README.zh-CN.md +298 -298
  6. package/dist/assets/{AITrainingPage-BGxiNftI.js → AITrainingPage-Cb771S8Z.js} +1 -1
  7. package/dist/assets/{AnalyticsPage-Ct-sjfwM.js → AnalyticsPage-D4bgNoXM.js} +1 -1
  8. package/dist/assets/BenchmarkPage-BTfBJXIj.js +31 -0
  9. package/dist/assets/{ComparisonPage-BnJNpxsl.js → ComparisonPage-DMcD9JL0.js} +1 -1
  10. package/dist/assets/{CostDashboardPage-B4NDxJsX.js → CostDashboardPage-BjUiVjlg.js} +1 -1
  11. package/dist/assets/{DashboardPage-BGQp7-l9.js → DashboardPage-xgeJtl-Q.js} +1 -1
  12. package/dist/assets/{EmbeddingsPage-VBfXkb7Z.js → EmbeddingsPage-DY1JKxCN.js} +1 -1
  13. package/dist/assets/{FimPlaygroundPage-DLoI_Bvm.js → FimPlaygroundPage-BWSlc3k7.js} +1 -1
  14. package/dist/assets/{GoogleCallbackPage-Cs3tBy_I.js → GoogleCallbackPage-C9xQpfMW.js} +1 -1
  15. package/dist/assets/{JsonTreeNode-BSiw1fzq.js → JsonTreeNode-D9YzXU8h.js} +1 -1
  16. package/dist/assets/{ModelCapabilityIcons.vue_vue_type_script_setup_true_lang-BEGN0dLS.js → ModelCapabilityIcons.vue_vue_type_script_setup_true_lang-CPvepOP2.js} +1 -1
  17. package/dist/assets/ProtocolObservatoryPage-D7szMZuY.js +2 -0
  18. package/dist/assets/{RAGPage-CnnZW7un.js → RAGPage-C7awGOKp.js} +1 -1
  19. package/dist/assets/SessionPage-8CBF4JLG.js +15 -0
  20. package/dist/assets/{SettingsPage-DTpQIrlG.js → SettingsPage-MEHyheCY.js} +1 -1
  21. package/dist/assets/{StatusBadge.vue_vue_type_script_setup_true_lang-DO0LFtqz.js → StatusBadge.vue_vue_type_script_setup_true_lang-BPTPrdQf.js} +1 -1
  22. package/dist/assets/{StorageGauge.vue_vue_type_style_index_0_lang-BvYHZigP.js → StorageGauge.vue_vue_type_style_index_0_lang-a4pXCCmZ.js} +1 -1
  23. package/dist/assets/{SystemPage-BEGyNOxu.js → SystemPage-mElnkuG4.js} +2 -2
  24. package/dist/assets/{TabBar.vue_vue_type_script_setup_true_lang-BwHA1qGL.js → TabBar.vue_vue_type_script_setup_true_lang-g3X_zm3P.js} +1 -1
  25. package/dist/assets/{TokenStreamDisplay.vue_vue_type_script_setup_true_lang-DyRMkTKm.js → TokenStreamDisplay.vue_vue_type_script_setup_true_lang-DQBSq5z2.js} +1 -1
  26. package/dist/assets/{ToolWorkshopPage-CNhpkdiG.js → ToolWorkshopPage-3Za0iXSV.js} +1 -1
  27. package/dist/assets/{agent-store-Ak5tH3gE.js → agent-store-Cboc3nde.js} +1 -1
  28. package/dist/assets/{canvas-ai-db-Bw1M5Zgc.js → canvas-ai-db-Dy65jrST.js} +1 -1
  29. package/dist/assets/{download-DgBo5doZ.js → download-Cipln2ej.js} +1 -1
  30. package/dist/assets/format-CKxSMkvr.js +1 -0
  31. package/dist/assets/{generate-service-D1KjeWIo.js → generate-service-C8to1Kz5.js} +1 -1
  32. package/dist/assets/{google-auth-store-Db6JKC8L.js → google-auth-store-8ShUecGK.js} +1 -1
  33. package/dist/assets/{index-S2vqeDf7.js → index-DAqgYcEq.js} +12 -12
  34. package/dist/assets/{index-YmhR__TY.js → index-DlTtfQCm.js} +1 -1
  35. package/dist/assets/{index-BM7fRtY0.js → index-NGfHHJ7k.js} +1 -1
  36. package/dist/assets/{index-aU4tMz4Z.css → index-UYM0582r.css} +1 -1
  37. package/dist/assets/{info-47X0r1B2.js → info-BzNBY8Xz.js} +1 -1
  38. package/dist/assets/{metrics-store-DzujlkfW.js → metrics-store-DLxxEHpn.js} +1 -1
  39. package/dist/assets/{papaparse.min-D0aQsTQw.js → papaparse.min-BMNThItx.js} +1 -1
  40. package/dist/assets/{pencil-B-eZ2Kq9.js → pencil-c-VIQAV1.js} +1 -1
  41. package/dist/assets/{play-DT41vD7M.js → play-CyV4NPEG.js} +1 -1
  42. package/dist/assets/{rag-store-gqowRN8t.js → rag-store-7BNJiZff.js} +3 -3
  43. package/dist/assets/{session-store-BO1u_qJQ.js → session-store-DJJV_fRl.js} +1 -1
  44. package/dist/assets/{share-2-IBretU3M.js → share-2-DTMUvOzC.js} +1 -1
  45. package/dist/assets/{square-CbKkOlNA.js → square-CVjmHbTf.js} +1 -1
  46. package/dist/assets/{storage-store-GsT1cPEh.js → storage-store-CAp_Ass2.js} +1 -1
  47. package/dist/assets/stream-handler-DVtwM8Et.js +4 -0
  48. package/dist/assets/{tool-workshop-store-BLoF0Gob.js → tool-workshop-store-C_snrdcI.js} +1 -1
  49. package/dist/assets/{toolcall-store-BEFdRqL-.js → toolcall-store-DVrrMX0Y.js} +1 -1
  50. package/dist/assets/{trash-2-BdlHNMOp.js → trash-2-DfEdg6Up.js} +1 -1
  51. package/dist/index.html +2 -2
  52. package/package.json +1 -1
  53. package/dist/assets/BenchmarkPage-q41YsHY8.js +0 -31
  54. package/dist/assets/ProtocolObservatoryPage-CgunJ_Wi.js +0 -2
  55. package/dist/assets/SessionPage-NE_x02_4.js +0 -15
  56. package/dist/assets/format-BqVZ9rwM.js +0 -1
  57. package/dist/assets/stream-handler-B5y5PItW.js +0 -4
package/README.ar.md CHANGED
@@ -1,302 +1,302 @@
1
- <div dir="rtl">
2
-
3
- <p align="center">
4
- <img src="https://raw.githubusercontent.com/LogneBudo/llmxray/master/public/favicon.svg" alt="LLMxRay" width="80" />
5
- </p>
6
-
7
- <h1 align="center">LLMxRay</h1>
8
- <p align="center"><strong>اطّلع على ما يفعله الذكاء الاصطناعي لديك فعلاً.</strong></p>
9
- <p align="center">
10
- بث الرموز في الوقت الفعلي، وتحليل الجودة، وتوصيف الأداء، وتتبّع التكاليف<br/>
11
- للنماذج اللغوية الكبيرة المحلية. بدون سحابة. بدون مفاتيح API. بدون تكلفة.
12
- </p>
13
-
14
- <p align="center">
15
- <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>
16
- <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>
17
- <img src="https://img.shields.io/badge/license-Apache%202.0-blue" alt="License" />
18
- <img src="https://img.shields.io/badge/ollama-local-000?logo=ollama&logoColor=white" alt="Ollama" />
19
- </p>
20
-
21
- <p align="center">
22
- 🌐 <a href="README.md">English</a> &bull;
23
- <a href="README.fr.md">Français</a> &bull;
24
- <a href="README.zh-CN.md">中文</a> &bull;
25
- <strong>العربية</strong> &bull;
26
- <a href="README.sr.md">Srpski</a>
27
- </p>
28
-
29
- <p align="center">
30
- <a href="#البدء-السريع">البدء السريع</a> &bull;
31
- <a href="#الميزات">الميزات</a> &bull;
32
- <a href="#لقطات-الشاشة">لقطات الشاشة</a> &bull;
33
- <a href="#لمن-هذه-الأداة">لمن هذه الأداة</a> &bull;
34
- <a href="CHANGELOG.md">سجل التغييرات</a>
35
- </p>
36
-
37
- <p align="center">
38
- <img src="docs/public/screenshots/demo.gif" alt="عرض LLMxRay — بث الرموز في الوقت الفعلي مع تلوين الثقة" width="800" />
39
- </p>
40
-
41
- ---
42
-
43
- ## البدء السريع
44
-
45
- **أمر واحد. ٣٠ ثانية.**
46
-
47
- ```bash
48
- npx llmxray
49
- ```
50
-
51
- أو باستخدام Docker:
52
-
53
- ```bash
54
- docker run -p 5174:5174 djovaneli/llmxray
55
- ```
56
-
57
- افتح **http://localhost:5174** وابدأ المحادثة. هذا كل شيء.
58
-
59
- > **متطلّب مسبق:** [Ollama](https://ollama.com/download) يعمل محلياً مع تنزيل نموذج واحد على الأقل (`ollama pull llama3.2`).
60
-
61
- ---
62
-
63
- ## لماذا LLMxRay؟
64
-
65
- أنت تشغّل نموذجاً لغوياً محلياً. تتحدث معه. لكن ما الذي حدث فعلياً؟
66
-
67
- - ما سرعة كل رمز؟ وأيها كان النموذج واثقاً منه؟
68
- - هل تتدهور جودة الاستجابة عبر المحادثات الطويلة؟
69
- - كم كان سيكلّف هذا لو شغّلته على السحابة؟
70
- - هل يكرر النموذج نفسه؟ يرفض؟ يولّد كلاماً غير مفهوم؟
71
- - كيف تختلف درجة الحرارة 0.3 عن 0.9 على *نفس* المطالبة؟
72
-
73
- **يجيب LLMxRay على كل ذلك، بصرياً، في الوقت الفعلي، مجاناً.**
74
-
75
- ---
76
-
77
- ## الميزات
78
-
79
- ### دردشة لحظية بذكاء على مستوى الرمز
80
- تحدّث مع أي نموذج Ollama وراقب وصول الرموز مع **تلوين الثقة** — كل رمز يُلوَّن وفق سرعة توليده. يدعم Markdown، والمحادثات متعددة الأدوار، ومرفقات الملفات، ونماذج الرؤية، والأوامر بالشرطة المائلة. وللنماذج الاستدلالية، اضبط ميزانية التفكير لكل محادثة — إيقاف، أو ترك الاختيار للنموذج، أو جهد صريح منخفض / متوسط / مرتفع / أقصى.
81
-
82
- ### بوّابات جودة الاستجابة
83
- كل استجابة تُحلَّل تلقائياً. تظهر شارات ملوّنة فقط حين يحدث خطأ:
84
- - **التكرار** — عبارات متكرّرة بإفراط (تحليل رباعي الجرامات)
85
- - **الرفض** — "بوصفي نموذجاً لغوياً" و٧ أنماط أخرى
86
- - **الكلام غير المفهوم** — نسبة عالية من الرموز غير الـ ASCII
87
- - **استجابة فارغة** — أقل من ١٠ كلمات
88
- - **البتر** — بلوغ حدّ الرموز قبل الانتهاء
89
-
90
- ### طاولة عمل لمقارنة النماذج
91
- حتى **٤ شرائح** بنموذج ودرجة حرارة وموجّه نظام مستقلّة. تشمل الميزات البث جنباً إلى جنب، وإبراز الفروق على مستوى الكلمة، ومقارنة المقاييس، وقوالب جاهزة بنقرة واحدة (مسح درجات الحرارة، الزوج الحتمي، مقارنة اللغات مع تصوير ضريبة الرموز).
92
-
93
- ### تحليلات الأداء
94
- - **النسب المئوية للتأخير** (P50/P95/P99) للمدّة وزمن أول رمز
95
- - **استخبارات الأخطاء** — مصنّف من ٧ فئات مع خطّ زمني
96
- - **خريطة حرارية للاستخدام** — شبكة ٧×٢٤ لساعاتك النشطة
97
- - **أثر الإعدادات** — مخطّطات تشتّت لدرجة الحرارة مقابل الرموز/الثانية
98
- - تتبّع **البداية الباردة مقابل الدافئة** مع سجلّ تحميل النموذج
99
-
100
- ### لوحة التكاليف
101
- استهلاك الرموز لكل نموذج/يوم مع تقدير السعر المكافئ على السحابة. شاهد كم *توفّر* بتشغيلها محلياً.
102
-
103
- ### معيار جراحي
104
- اختبر معرفة النموذج بحزم أسئلة متعدّدة الاختيار. يستخدم logprobs حقيقية عبر النقطة المتوافقة مع OpenAI لقياس دقيق للثقة. ابنِ حزماً مخصّصة بصرياً أو دع الذكاء الاصطناعي يولّدها من موضوع.
105
-
106
- ### مختبر التضمينات وخط أنابيب RAG
107
- ضمّن النصوص، وصوّر المتجهات، وقِس تشابه جيب التمام. اطلب متجه إخراج أضيق لترى كم يكلّف اقتطاع ماتريوشكا من التشابه. ابنِ قاعدة معرفة محلية من ملفات PDF و DOCX و CSV — مقطَّعة، مضمَّنة، وقابلة للبحث. كل ذلك مخزَّن في IndexedDB. بلا تكلفة.
108
-
109
- ### ورشة الأدوات (لوحة بصرية)
110
- لوحة عُقَد بالسحب والإفلات لبناء تعريفات الأدوات. مزامنة كود ثنائية الاتجاه (تحرير العُقَد أو TypeScript — كلاهما يتحدّث). اسبر واجهات API، ولّد المخططات تلقائياً، واختبر بتنفيذ مباشر.
111
-
112
- ### ساحة الإكمال في الوسط *(جديد في v0.4.7)*
113
- إكمال الكود لـ Qwen-Coder و CodeLlama و Codestral و DeepSeek-Coder و StarCoder. حقلا نص (بادئة / لاحقة)، والنموذج يملأ الفراغ. يستخدم حقل `suffix` في `/api/generate` من Ollama. معاينة مدمجة تُظهر النتيجة كما ستبدو في محرّرك.
114
-
115
- ### مرصد البروتوكولات *(جديد في v0.4.7)*
116
- أطلق نفس المطالبة عبر بروتوكولات Ollama الثلاثة للتقديم — **الأصلي** `/api/chat`، **المتوافق مع OpenAI** `/v1/chat/completions`، و **المتوافق مع Anthropic** `/v1/messages` — بالتوازي ضد نموذجك المحلي. بثّ جنباً إلى جنب، ومقاييس لكل بروتوكول، وعلامة تبويب لفروق الأظرف تُظهر كيف يصوغ كل بروتوكول أسباب الإنهاء وعدّ الرموز وأظرف الأخطاء. بلا سحابة، بلا مفاتيح API — النقاط الثلاث جميعها محلية على `localhost:11434`.
117
-
118
- ### خط أنابيب تدريب الذكاء الاصطناعي
119
- نسّق بيانات التدريب من محادثاتك. وسِم، وراجِع، وصدِّر بصيغة JSONL للضبط الدقيق.
120
-
121
- ### قاعدة بيانات تاريخ الذكاء الاصطناعي المحلية
122
- تُؤرشَف كل تجربة (معايير، مقارنات، محادثات، أزواج تدريب) تلقائياً في قاعدة بيانات IndexedDB قابلة للاستعلام مع فلاتر واتجاهات وتصدير وسياسات احتفاظ.
123
-
124
- ### متعدّد اللغات
125
- ترجمات كاملة بالإنجليزية والفرنسية والصربية (لاتيني + سيريلي) والصينية والعربية. دعم تخطيط RTL. هياكل مجتمعية للعبرية واليابانية.
126
-
127
- ---
128
-
129
- ## التوافق مع Ollama
130
-
131
- تم اختبارها والتحقّق منها مع **Ollama 0.32.x** (أحدث إصدار مستقرّ حالياً في أغسطس ٢٠٢٦). يستخدم LLMxRay نقاط Ollama التالية:
132
-
133
- | النقطة | الاستخدام |
134
- |---|---|
135
- | `/api/chat` | دردشة متدفّقة (NDJSON، مع `tools` و `think` ومخطّط `format`) |
136
- | `/api/generate` | التوليد والإكمال في الوسط عبر `suffix` |
137
- | `/api/tags` | قائمة النماذج والقدرات وطول السياق وعرض التضمين |
138
- | `/api/show` | المعاملات والقالب والترخيص وبيانات البنية |
139
- | `/api/embed` | تضمينات متّجهة لـ RAG |
140
- | `/api/pull`، `/api/delete`، `/api/ps`، `/api/version` | إدارة النماذج وحالتها |
141
- | `/v1/chat/completions` | مسار متوافق مع OpenAI يستخدمه المعيار الجراحي للحصول على logprobs حقيقية |
142
- | `/v1/messages` | مسار متوافق مع Anthropic يستخدمه مرصد البروتوكولات |
143
-
144
- **متوافق مع:** Ollama 0.20 وما بعده (الإصدارات الأقدم تعمل للدردشة/التوليد لكن تفتقر إلى `think` ومخطّط `format` بصيغة JSON Schema). **مُوصى به:** Ollama 0.32+ — تصل القدرات وطول السياق مع قائمة النماذج، ويقبل `think` مستويات جهد متدرّجة، وتقبل التضمينات عرض `dimensions`.
145
-
146
- ---
147
-
148
- ## لقطات الشاشة
149
-
150
- <table>
151
- <tr>
152
- <td width="50%">
153
-
154
- **دردشة ببث الرموز ومؤشّر الثقة**
155
- ![Chat](docs/public/screenshots/chat-diagnostics.png)
156
-
157
- </td>
158
- <td width="50%">
159
-
160
- **مقارنة النماذج — جنباً إلى جنب**
161
- ![Compare](docs/public/screenshots/compare-sidebyside.png)
162
-
163
- </td>
164
- </tr>
165
- <tr>
166
- <td width="50%">
167
-
168
- **تشريح الجلسة — مقاييس وتوقيت**
169
- ![Session](docs/public/screenshots/session-details.png)
170
-
171
- </td>
172
- <td width="50%">
173
-
174
- **معيار مع رادار الثقة**
175
- ![Benchmark](docs/public/screenshots/benchmark.png)
176
-
177
- </td>
178
- </tr>
179
- <tr>
180
- <td width="50%">
181
-
182
- **التضمينات — تشابه جيب التمام**
183
- ![Embeddings](docs/public/screenshots/embed-similarity.png)
184
-
185
- </td>
186
- <td width="50%">
187
-
188
- **مراقب النظام — العتاد وحالة Ollama**
189
- ![System](docs/public/screenshots/my-system.png)
190
-
191
- </td>
192
- </tr>
193
- </table>
194
-
195
- ---
196
-
197
- ## لمن هذه الأداة
198
-
199
- | أنت... | LLMxRay يساعدك على... |
200
- |---|---|
201
- | **مطوّر** | تنقيح المطالبات، توصيف التأخير، مقارنة النماذج، فحص استدعاءات الأدوات، تتبّع التكاليف |
202
- | **باحث** | إجراء تجارب مضبوطة بإعدادات متناسقة عبر النماذج ودرجات الحرارة |
203
- | **طالب / معلّم** | استكشاف سلوك النموذج بصرياً — حزمة المعلّمين المدمجة بـ ٩ وحدات تفاعلية |
204
- | **قائد فريق ذكاء اصطناعي** | فهم اتجاهات الجودة وأنماط الأخطاء واستخدام الموارد عبر أسطولك المحلي |
205
-
206
- ---
207
-
208
- ## خيارات التثبيت
209
-
210
- ### npx (مُوصى به)
211
- ```bash
212
- npx llmxray
213
- npx llmxray --port 3000
214
- npx llmxray --ollama-url http://192.168.1.50:11434
215
- ```
216
-
217
- ### Docker
218
- ```bash
219
- docker run -p 5174:5174 djovaneli/llmxray
220
- docker run -p 5174:5174 -e OLLAMA_URL=http://host.docker.internal:11434 djovaneli/llmxray
221
- ```
222
-
223
- ### من الكود المصدري
224
- ```bash
225
- git clone https://github.com/LogneBudo/llmxray.git
226
- cd llmxray
227
- npm install
228
- npm run dev # http://localhost:5173
229
- ```
230
-
231
- ---
232
-
233
- ## الحزمة التقنية
234
-
235
- | الطبقة | التقنية |
236
- |---|---|
237
- | إطار العمل | Vue 3.5 + Composition API |
238
- | اللغة | TypeScript 5.9 (وضع صارم) |
239
- | البناء | Vite 7.3 |
240
- | التنسيق | Tailwind CSS 4.2 |
241
- | إدارة الحالة | Pinia 3 (متجر لكل اهتمام) |
242
- | الرسوم البيانية | Chart.js 4، D3.js 7 |
243
- | اللوحة | Vue Flow (محرّر عُقَد بصري) |
244
- | محرّر الكود | CodeMirror 6 |
245
- | التخزين | IndexedDB (أصلي للمتصفّح) |
246
- | واجهة LLM الخلفية | Ollama (محلي) |
247
-
248
- ---
249
-
250
- ## المعمارية
251
-
252
- **البثّ** — يقرأ NDJSON من Ollama عبر `fetch()` + `ReadableStream`. تحدّث الرموز الواجهة تفاعلياً عبر متاجر Pinia.
253
-
254
- **ثقة الرمز** — تُقدَّر من التأخير بين الرموز (الأسرع = الأكثر ثقة). موسومة بوضوح على أنها تقريب. تستخدم المعايير logprobs حقيقية عبر النقطة المتوافقة مع OpenAI.
255
-
256
- **متجر لكل اهتمام** — لكل مجال متجر Pinia خاص به: tokens و sessions و metrics و reasoning و comparison و embeddings و quality و cost وغيرها.
257
-
258
- **اكتشاف العتاد** — مكوّن Vite مخصّص يستعلم نظام التشغيل مباشرة (PowerShell/proc/sysctl) للحصول على مواصفات دقيقة للعتاد.
259
-
260
- ---
261
-
262
- ## التطوير
263
-
264
- | الأمر | ما يفعله |
265
- |---|---|
266
- | `npm run dev` | خادم تطوير (المنفذ 5173) |
267
- | `npm run build` | فحص الأنواع + بناء الإنتاج |
268
- | `npm run test` | اختبارات وحدة (Vitest) |
269
- | `npm run test:e2e` | اختبارات شاملة (Playwright) |
270
-
271
- ---
272
-
273
- ## المساهمة
274
-
275
- المساهمات مرحَّب بها! راجِع [CONTRIBUTING.md](CONTRIBUTING.md) للإعداد والإرشادات.
276
-
277
- **ترجمات المجتمع مرحَّب بها بصفة خاصّة** — ملفات الهياكل جاهزة للعبرية واليابانية.
278
-
279
- ---
280
-
281
- ## الرخصة
282
-
283
- [Apache License 2.0](LICENSE)
284
-
285
- ## العلامة التجارية
286
-
287
- **LLMxRay** علامة تجارية لـ Ivan Stankovic ([LogneBudo](https://github.com/LogneBudo)). راجِع [TRADEMARK.md](TRADEMARK.md).
288
-
289
- ---
290
-
291
- <p align="center">
292
- <strong>إن ساعدك LLMxRay على فهم ذكائك الاصطناعي بشكل أفضل، فكّر في منح المشروع نجمة.</strong><br/>
293
- هذا يساعد آخرين على اكتشاف المشروع.
294
- </p>
295
-
296
- <p align="center">
297
- <a href="https://github.com/LogneBudo/llmxray">
298
- <img src="https://img.shields.io/github/stars/LogneBudo/llmxray?style=social" alt="GitHub stars" />
299
- </a>
300
- </p>
301
-
302
- </div>
1
+ <div dir="rtl">
2
+
3
+ <p align="center">
4
+ <img src="https://raw.githubusercontent.com/LogneBudo/llmxray/master/public/favicon.svg" alt="LLMxRay" width="80" />
5
+ </p>
6
+
7
+ <h1 align="center">LLMxRay</h1>
8
+ <p align="center"><strong>اطّلع على ما يفعله الذكاء الاصطناعي لديك فعلاً.</strong></p>
9
+ <p align="center">
10
+ بث الرموز في الوقت الفعلي، وتحليل الجودة، وتوصيف الأداء، وتتبّع التكاليف<br/>
11
+ للنماذج اللغوية الكبيرة المحلية. بدون سحابة. بدون مفاتيح API. بدون تكلفة.
12
+ </p>
13
+
14
+ <p align="center">
15
+ <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>
16
+ <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>
17
+ <img src="https://img.shields.io/badge/license-Apache%202.0-blue" alt="License" />
18
+ <img src="https://img.shields.io/badge/ollama-local-000?logo=ollama&logoColor=white" alt="Ollama" />
19
+ </p>
20
+
21
+ <p align="center">
22
+ 🌐 <a href="README.md">English</a> &bull;
23
+ <a href="README.fr.md">Français</a> &bull;
24
+ <a href="README.zh-CN.md">中文</a> &bull;
25
+ <strong>العربية</strong> &bull;
26
+ <a href="README.sr.md">Srpski</a>
27
+ </p>
28
+
29
+ <p align="center">
30
+ <a href="#البدء-السريع">البدء السريع</a> &bull;
31
+ <a href="#الميزات">الميزات</a> &bull;
32
+ <a href="#لقطات-الشاشة">لقطات الشاشة</a> &bull;
33
+ <a href="#لمن-هذه-الأداة">لمن هذه الأداة</a> &bull;
34
+ <a href="CHANGELOG.md">سجل التغييرات</a>
35
+ </p>
36
+
37
+ <p align="center">
38
+ <img src="docs/public/screenshots/demo.gif" alt="عرض LLMxRay — بث الرموز في الوقت الفعلي مع تلوين الثقة" width="800" />
39
+ </p>
40
+
41
+ ---
42
+
43
+ ## البدء السريع
44
+
45
+ **أمر واحد. ٣٠ ثانية.**
46
+
47
+ ```bash
48
+ npx llmxray
49
+ ```
50
+
51
+ أو باستخدام Docker:
52
+
53
+ ```bash
54
+ docker run -p 5174:5174 djovaneli/llmxray
55
+ ```
56
+
57
+ افتح **http://localhost:5174** وابدأ المحادثة. هذا كل شيء.
58
+
59
+ > **متطلّب مسبق:** [Ollama](https://ollama.com/download) يعمل محلياً مع تنزيل نموذج واحد على الأقل (`ollama pull llama3.2`).
60
+
61
+ ---
62
+
63
+ ## لماذا LLMxRay؟
64
+
65
+ أنت تشغّل نموذجاً لغوياً محلياً. تتحدث معه. لكن ما الذي حدث فعلياً؟
66
+
67
+ - ما سرعة كل رمز؟ وأيها كان النموذج واثقاً منه؟
68
+ - هل تتدهور جودة الاستجابة عبر المحادثات الطويلة؟
69
+ - كم كان سيكلّف هذا لو شغّلته على السحابة؟
70
+ - هل يكرر النموذج نفسه؟ يرفض؟ يولّد كلاماً غير مفهوم؟
71
+ - كيف تختلف درجة الحرارة 0.3 عن 0.9 على *نفس* المطالبة؟
72
+
73
+ **يجيب LLMxRay على كل ذلك، بصرياً، في الوقت الفعلي، مجاناً.**
74
+
75
+ ---
76
+
77
+ ## الميزات
78
+
79
+ ### دردشة لحظية بذكاء على مستوى الرمز
80
+ تحدّث مع أي نموذج Ollama وراقب وصول الرموز مع **تلوين الثقة** — كل رمز يُلوَّن وفق سرعة توليده. يدعم Markdown، والمحادثات متعددة الأدوار، ومرفقات الملفات، ونماذج الرؤية، والأوامر بالشرطة المائلة. وللنماذج الاستدلالية، اضبط ميزانية التفكير لكل محادثة — إيقاف، أو ترك الاختيار للنموذج، أو جهد صريح منخفض / متوسط / مرتفع / أقصى.
81
+
82
+ ### بوّابات جودة الاستجابة
83
+ كل استجابة تُحلَّل تلقائياً. تظهر شارات ملوّنة فقط حين يحدث خطأ:
84
+ - **التكرار** — عبارات متكرّرة بإفراط (تحليل رباعي الجرامات)
85
+ - **الرفض** — "بوصفي نموذجاً لغوياً" و٧ أنماط أخرى
86
+ - **الكلام غير المفهوم** — نسبة عالية من الرموز غير الـ ASCII
87
+ - **استجابة فارغة** — أقل من ١٠ كلمات
88
+ - **البتر** — بلوغ حدّ الرموز قبل الانتهاء
89
+
90
+ ### طاولة عمل لمقارنة النماذج
91
+ حتى **٤ شرائح** بنموذج ودرجة حرارة وموجّه نظام مستقلّة. تشمل الميزات البث جنباً إلى جنب، وإبراز الفروق على مستوى الكلمة، ومقارنة المقاييس، وقوالب جاهزة بنقرة واحدة (مسح درجات الحرارة، الزوج الحتمي، مقارنة اللغات مع تصوير ضريبة الرموز).
92
+
93
+ ### تحليلات الأداء
94
+ - **النسب المئوية للتأخير** (P50/P95/P99) للمدّة وزمن أول رمز
95
+ - **استخبارات الأخطاء** — مصنّف من ٧ فئات مع خطّ زمني
96
+ - **خريطة حرارية للاستخدام** — شبكة ٧×٢٤ لساعاتك النشطة
97
+ - **أثر الإعدادات** — مخطّطات تشتّت لدرجة الحرارة مقابل الرموز/الثانية
98
+ - تتبّع **البداية الباردة مقابل الدافئة** مع سجلّ تحميل النموذج
99
+
100
+ ### لوحة التكاليف
101
+ استهلاك الرموز لكل نموذج/يوم مع تقدير السعر المكافئ على السحابة. شاهد كم *توفّر* بتشغيلها محلياً.
102
+
103
+ ### معيار جراحي
104
+ اختبر معرفة النموذج بحزم أسئلة متعدّدة الاختيار. يستخدم logprobs حقيقية عبر النقطة المتوافقة مع OpenAI لقياس دقيق للثقة. ابنِ حزماً مخصّصة بصرياً أو دع الذكاء الاصطناعي يولّدها من موضوع.
105
+
106
+ ### مختبر التضمينات وخط أنابيب RAG
107
+ ضمّن النصوص، وصوّر المتجهات، وقِس تشابه جيب التمام. اطلب متجه إخراج أضيق لترى كم يكلّف اقتطاع ماتريوشكا من التشابه. ابنِ قاعدة معرفة محلية من ملفات PDF و DOCX و CSV — مقطَّعة، مضمَّنة، وقابلة للبحث. كل ذلك مخزَّن في IndexedDB. بلا تكلفة.
108
+
109
+ ### ورشة الأدوات (لوحة بصرية)
110
+ لوحة عُقَد بالسحب والإفلات لبناء تعريفات الأدوات. مزامنة كود ثنائية الاتجاه (تحرير العُقَد أو TypeScript — كلاهما يتحدّث). اسبر واجهات API، ولّد المخططات تلقائياً، واختبر بتنفيذ مباشر.
111
+
112
+ ### ساحة الإكمال في الوسط *(جديد في v0.4.7)*
113
+ إكمال الكود لـ Qwen-Coder و CodeLlama و Codestral و DeepSeek-Coder و StarCoder. حقلا نص (بادئة / لاحقة)، والنموذج يملأ الفراغ. يستخدم حقل `suffix` في `/api/generate` من Ollama. معاينة مدمجة تُظهر النتيجة كما ستبدو في محرّرك.
114
+
115
+ ### مرصد البروتوكولات *(جديد في v0.4.7)*
116
+ أطلق نفس المطالبة عبر بروتوكولات Ollama الثلاثة للتقديم — **الأصلي** `/api/chat`، **المتوافق مع OpenAI** `/v1/chat/completions`، و **المتوافق مع Anthropic** `/v1/messages` — بالتوازي ضد نموذجك المحلي. بثّ جنباً إلى جنب، ومقاييس لكل بروتوكول، وعلامة تبويب لفروق الأظرف تُظهر كيف يصوغ كل بروتوكول أسباب الإنهاء وعدّ الرموز وأظرف الأخطاء. بلا سحابة، بلا مفاتيح API — النقاط الثلاث جميعها محلية على `localhost:11434`.
117
+
118
+ ### خط أنابيب تدريب الذكاء الاصطناعي
119
+ نسّق بيانات التدريب من محادثاتك. وسِم، وراجِع، وصدِّر بصيغة JSONL للضبط الدقيق.
120
+
121
+ ### قاعدة بيانات تاريخ الذكاء الاصطناعي المحلية
122
+ تُؤرشَف كل تجربة (معايير، مقارنات، محادثات، أزواج تدريب) تلقائياً في قاعدة بيانات IndexedDB قابلة للاستعلام مع فلاتر واتجاهات وتصدير وسياسات احتفاظ.
123
+
124
+ ### متعدّد اللغات
125
+ ترجمات كاملة بالإنجليزية والفرنسية والصربية (لاتيني + سيريلي) والصينية والعربية. دعم تخطيط RTL. هياكل مجتمعية للعبرية واليابانية.
126
+
127
+ ---
128
+
129
+ ## التوافق مع Ollama
130
+
131
+ تم اختبارها والتحقّق منها مع **Ollama 0.33.x** (تمّ التحقّق على 0.33.3، سبتمبر ٢٠٢٦). يستخدم LLMxRay نقاط Ollama التالية:
132
+
133
+ | النقطة | الاستخدام |
134
+ |---|---|
135
+ | `/api/chat` | دردشة متدفّقة (NDJSON، مع `tools` و `think` ومخطّط `format`) |
136
+ | `/api/generate` | التوليد والإكمال في الوسط عبر `suffix` |
137
+ | `/api/tags` | قائمة النماذج والقدرات وطول السياق وعرض التضمين |
138
+ | `/api/show` | المعاملات والقالب والترخيص وبيانات البنية |
139
+ | `/api/embed` | تضمينات متّجهة لـ RAG |
140
+ | `/api/pull`، `/api/delete`، `/api/ps`، `/api/version` | إدارة النماذج وحالتها |
141
+ | `/v1/chat/completions` | مسار متوافق مع OpenAI يستخدمه المعيار الجراحي للحصول على logprobs حقيقية |
142
+ | `/v1/messages` | مسار متوافق مع Anthropic يستخدمه مرصد البروتوكولات |
143
+
144
+ **متوافق مع:** Ollama 0.20 وما بعده (الإصدارات الأقدم تعمل للدردشة/التوليد لكن تفتقر إلى `think` ومخطّط `format` بصيغة JSON Schema). **مُوصى به:** Ollama 0.33.3+ — يُبلَّغ عن إعادة استخدام ذاكرة المُوجّه المؤقتة (`prompt_eval_cached_count`، و`usage.prompt_tokens_details.cached_tokens` على النقطة المتوافقة مع OpenAI)، فيُقاس معدّل التعبئة المسبقة على الرموز المُقيَّمة فعلياً. منذ 0.32: تصل القدرات وطول السياق مع قائمة النماذج، ويقبل `think` مستويات جهد متدرّجة، وتقبل التضمينات عرض `dimensions`.
145
+
146
+ ---
147
+
148
+ ## لقطات الشاشة
149
+
150
+ <table>
151
+ <tr>
152
+ <td width="50%">
153
+
154
+ **دردشة ببث الرموز ومؤشّر الثقة**
155
+ ![Chat](docs/public/screenshots/chat-diagnostics.png)
156
+
157
+ </td>
158
+ <td width="50%">
159
+
160
+ **مقارنة النماذج — جنباً إلى جنب**
161
+ ![Compare](docs/public/screenshots/compare-sidebyside.png)
162
+
163
+ </td>
164
+ </tr>
165
+ <tr>
166
+ <td width="50%">
167
+
168
+ **تشريح الجلسة — مقاييس وتوقيت**
169
+ ![Session](docs/public/screenshots/session-details.png)
170
+
171
+ </td>
172
+ <td width="50%">
173
+
174
+ **معيار مع رادار الثقة**
175
+ ![Benchmark](docs/public/screenshots/benchmark.png)
176
+
177
+ </td>
178
+ </tr>
179
+ <tr>
180
+ <td width="50%">
181
+
182
+ **التضمينات — تشابه جيب التمام**
183
+ ![Embeddings](docs/public/screenshots/embed-similarity.png)
184
+
185
+ </td>
186
+ <td width="50%">
187
+
188
+ **مراقب النظام — العتاد وحالة Ollama**
189
+ ![System](docs/public/screenshots/my-system.png)
190
+
191
+ </td>
192
+ </tr>
193
+ </table>
194
+
195
+ ---
196
+
197
+ ## لمن هذه الأداة
198
+
199
+ | أنت... | LLMxRay يساعدك على... |
200
+ |---|---|
201
+ | **مطوّر** | تنقيح المطالبات، توصيف التأخير، مقارنة النماذج، فحص استدعاءات الأدوات، تتبّع التكاليف |
202
+ | **باحث** | إجراء تجارب مضبوطة بإعدادات متناسقة عبر النماذج ودرجات الحرارة |
203
+ | **طالب / معلّم** | استكشاف سلوك النموذج بصرياً — حزمة المعلّمين المدمجة بـ ٩ وحدات تفاعلية |
204
+ | **قائد فريق ذكاء اصطناعي** | فهم اتجاهات الجودة وأنماط الأخطاء واستخدام الموارد عبر أسطولك المحلي |
205
+
206
+ ---
207
+
208
+ ## خيارات التثبيت
209
+
210
+ ### npx (مُوصى به)
211
+ ```bash
212
+ npx llmxray
213
+ npx llmxray --port 3000
214
+ npx llmxray --ollama-url http://192.168.1.50:11434
215
+ ```
216
+
217
+ ### Docker
218
+ ```bash
219
+ docker run -p 5174:5174 djovaneli/llmxray
220
+ docker run -p 5174:5174 -e OLLAMA_URL=http://host.docker.internal:11434 djovaneli/llmxray
221
+ ```
222
+
223
+ ### من الكود المصدري
224
+ ```bash
225
+ git clone https://github.com/LogneBudo/llmxray.git
226
+ cd llmxray
227
+ npm install
228
+ npm run dev # http://localhost:5173
229
+ ```
230
+
231
+ ---
232
+
233
+ ## الحزمة التقنية
234
+
235
+ | الطبقة | التقنية |
236
+ |---|---|
237
+ | إطار العمل | Vue 3.5 + Composition API |
238
+ | اللغة | TypeScript 5.9 (وضع صارم) |
239
+ | البناء | Vite 7.3 |
240
+ | التنسيق | Tailwind CSS 4.2 |
241
+ | إدارة الحالة | Pinia 3 (متجر لكل اهتمام) |
242
+ | الرسوم البيانية | Chart.js 4، D3.js 7 |
243
+ | اللوحة | Vue Flow (محرّر عُقَد بصري) |
244
+ | محرّر الكود | CodeMirror 6 |
245
+ | التخزين | IndexedDB (أصلي للمتصفّح) |
246
+ | واجهة LLM الخلفية | Ollama (محلي) |
247
+
248
+ ---
249
+
250
+ ## المعمارية
251
+
252
+ **البثّ** — يقرأ NDJSON من Ollama عبر `fetch()` + `ReadableStream`. تحدّث الرموز الواجهة تفاعلياً عبر متاجر Pinia.
253
+
254
+ **ثقة الرمز** — تُقدَّر من التأخير بين الرموز (الأسرع = الأكثر ثقة). موسومة بوضوح على أنها تقريب. تستخدم المعايير logprobs حقيقية عبر النقطة المتوافقة مع OpenAI.
255
+
256
+ **متجر لكل اهتمام** — لكل مجال متجر Pinia خاص به: tokens و sessions و metrics و reasoning و comparison و embeddings و quality و cost وغيرها.
257
+
258
+ **اكتشاف العتاد** — مكوّن Vite مخصّص يستعلم نظام التشغيل مباشرة (PowerShell/proc/sysctl) للحصول على مواصفات دقيقة للعتاد.
259
+
260
+ ---
261
+
262
+ ## التطوير
263
+
264
+ | الأمر | ما يفعله |
265
+ |---|---|
266
+ | `npm run dev` | خادم تطوير (المنفذ 5173) |
267
+ | `npm run build` | فحص الأنواع + بناء الإنتاج |
268
+ | `npm run test` | اختبارات وحدة (Vitest) |
269
+ | `npm run test:e2e` | اختبارات شاملة (Playwright) |
270
+
271
+ ---
272
+
273
+ ## المساهمة
274
+
275
+ المساهمات مرحَّب بها! راجِع [CONTRIBUTING.md](CONTRIBUTING.md) للإعداد والإرشادات.
276
+
277
+ **ترجمات المجتمع مرحَّب بها بصفة خاصّة** — ملفات الهياكل جاهزة للعبرية واليابانية.
278
+
279
+ ---
280
+
281
+ ## الرخصة
282
+
283
+ [Apache License 2.0](LICENSE)
284
+
285
+ ## العلامة التجارية
286
+
287
+ **LLMxRay** علامة تجارية لـ Ivan Stankovic ([LogneBudo](https://github.com/LogneBudo)). راجِع [TRADEMARK.md](TRADEMARK.md).
288
+
289
+ ---
290
+
291
+ <p align="center">
292
+ <strong>إن ساعدك LLMxRay على فهم ذكائك الاصطناعي بشكل أفضل، فكّر في منح المشروع نجمة.</strong><br/>
293
+ هذا يساعد آخرين على اكتشاف المشروع.
294
+ </p>
295
+
296
+ <p align="center">
297
+ <a href="https://github.com/LogneBudo/llmxray">
298
+ <img src="https://img.shields.io/github/stars/LogneBudo/llmxray?style=social" alt="GitHub stars" />
299
+ </a>
300
+ </p>
301
+
302
+ </div>