LLMxRay

LLMxRay

انظر ما الذي يفعله ذكاؤك الاصطناعي المحلّي فعلاً.

وجّه VS Code Copilot أو Open WebUI أو Continue أو n8n أو وكيلك الخاص إلى LLMxRay بدلاً من Ollama، وشاهد كل دور:
ما كان في الذاكرة المؤقتة، وما أُعيدت قراءته، وما قصّه الخادم بصمت، وأي أداة أزاحت أي نموذج. لا سحابة. لا مفاتيح API. لا تكلفة.

npm Docker License Ollama

🌐 English • Français • 中文 • العربية • Srpski

البدء السريع • ما ترسله أدواتك • الاحتفاظ والإرسال • للوكلاء • وفي الصندوق أيضاً • لمن هذه الأداة • التثبيت • التوافق مع Ollama • سجلّ التغييرات

عرض LLMxRay: دور محادثة يصل رمزاً برمز، ثم مقاييس الجلسة

--- ## البدء السريع تحتاج إلى تشغيل [Ollama](https://ollama.com/download) مع نموذج واحد مُنزَّل على الأقل (`ollama pull llama3.2`). ثم: ```bash npx llmxray ``` أو باستخدام Docker: ```bash docker run -p 5174:5174 -p 11435:11435 djovaneli/llmxray ``` الآن وجّه أدواتك إلى **http://localhost:11435** بدلاً من المنفذ 11434 الخاص بـ Ollama: VS Code Copilot وOpen WebUI وContinue وn8n وسكربتاتك الخاصة. يتصرّف تماماً مثل Ollama ويمرّر كل شيء. افتح **http://localhost:5174**، واذهب إلى **Live**، وشاهد أدوارها وهي تصل. تريد فقط تجربة نموذج؟ افتح صفحة المحادثة، واختر نموذجاً، وأرسل رسالة. --- ## ما ترسله أدواتك حقاً محرّرك ووكلاؤك وسكربتاتك كلها تتحدّث إلى Ollama نفسه. تُظهر هذه الصفحات ما ترسله كل أداة، وما يفعله الخادم به، وما يكلّفه ذلك للأدوات الأخرى. ### Live: ما ترسله أدواتك الأخرى يفتح LLMxRay منفذاً ثانياً، **11435**، يتصرّف تماماً مثل Ollama ويمرّر إليه كل شيء. وجّه VS Code Copilot أو Open WebUI أو Continue أو n8n أو سكربتك الخاص إلى `http://localhost:11435` وسيظهر هنا كل دور ترسله: العميل، النموذج، حجم المُوجّه، كم جاء من الذاكرة المؤقتة، سرعة التعبئة المسبقة والتوليد، استدعاءات الأدوات. ``` VS Code Copilot ─┐ Open WebUI ──────┤ ┌─ Live: كل دور، Continue / n8n ──┼─► http://localhost:11435 ─► Ollama ┤ إصابات الذاكرة المؤقتة، سرعة التعبئة، your scripts ────┘ (LLMxRay) └─ أين انكسرت الذاكرة المؤقتة ``` ![Live: أدوار من عميلين، مع النتائج](https://raw.githubusercontent.com/LogneBudo/llmxray/master/docs/public/screenshots/live.png) اختر دوراً لترى ممّ يتكوّن المُوجّه والنقطة الدقيقة التي توقّف فيها عن مطابقة الدور السابق، وهي حيث انكسرت الذاكرة المؤقتة. النتائج جمل بسيطة، كل منها مرتبطة بالدور الذي يثبتها: عميل يعيد قراءة مُوجّهه كاملاً في كل دور، نموذج يعمل جزئياً على المعالج، مخطّطات أدوات تشغل 40% من كل مُوجّه. لا يُحفظ إلا الأعداد والأزمنة، على هذا الجهاز لمدة 30 يوماً، فيكمل إعادة التشغيل من حيث توقّف. نصّ المُوجّه خيار يُكتب في ملف محلّي. لا شيء يغادر جهازك، إلا إذا أرسلت الأدوار إلى عارض التتبّع الخاص بك. افتراضياً لا يجيب المنفذان إلا هذا الجهاز، لأن سجلّ Live يحتفظ بما أرسلته أدواتك. شغّل `npx llmxray --host 0.0.0.0` لتسمح لأجهزة أخرى على شبكتك بالوصول إليهما، لصفحة Live على شاشة ثانية أو جهاز GPU مشترك. ### أشعة المُوجّه: المُوجّه نفسه مرسوماً بمقياسه كل دور أرسلته أداتك، على شكل شريط. يدلّ اللون على ما كان عليه كل جزء من المُوجّه: مُوجّه النظام، مخطّطات الأدوات، الأدوار السابقة، الرسالة الجديدة. ويدلّ السطوع على ما حدث له: الباهت كان في ذاكرة النموذج أصلاً ولم يكلّف شيئاً، والساطع اضطُرّ النموذج إلى قراءته من جديد، والمخطّط قصّه الخادم ولم يُرَ قط. كدّس أدوار محادثة واحدة فترى الذاكرة المؤقتة تكبر، وترى الدور الذي أفرغها فيه طابع زمني في مُوجّه النظام، والدور الذي تجاوزت فيه المحادثة السياق فأسقط Ollama أقدم الرسائل بصمت وأجاب مع ذلك. وإذا كان مُوجّه النظام وحده أطول من السياق، فبدايته هي التي تسقط. انقر على جزء فيُفتح الطلب عند ذلك الموضع من النص. ![أشعة المُوجّه: كل دور من تشغيل وكيل حقيقي مرسوم بمقياسه، الأجزاء المخزّنة باهتة والمعاد حسابها ساطعة](https://raw.githubusercontent.com/LogneBudo/llmxray/master/docs/public/screenshots/xray.png) ### التشغيلات: عمل أداة واحدة من أوله إلى آخره استدعاءات أداة واحدة للنموذج مرتّبة في الزمن، على شكل شلال. يُقسَّم كل استدعاء بحسب ما يُبلغ عنه Ollama: الانتظار، تحميل النموذج، قراءة المُوجّه، كتابة الجواب. وبين استدعاءين، وقت الأداة نفسها، مسمّى بأسماء الأدوات التي طلبها النموذج. تبدأ الخطوات حيث بدأت الأداة محادثة جديدة، فيظهر من النظرة الأولى الوكيل الذي يرمي ذاكرته المؤقتة في كل خطوة، وكذلك النموذج الذي لم يكن في الذاكرة عند بدء التشغيل. انقر على أي سطر لترى ما أرسله ذلك الاستدعاء وما عاد به، بما في ذلك تفكير النموذج واستدعاءاته للأدوات مع وسائطها، أو ما طُلب من أداة وما أعادته. لكل سطر رابطه الخاص. فعّل *احتفظ بنص المحثّات* في صفحة Live لترى النص؛ الأزمنة لا تحتاج إلى شيء. ![التشغيلات: تشغيل وكيل من 36 استدعاءً على شكل شلال، مع مدخلات أداة ونتيجتها](https://raw.githubusercontent.com/LogneBudo/llmxray/master/docs/public/screenshots/runs.png) ### الجهاز المشترك: لماذا Ollama بطيء الآن، وأي أداة السبب سطر لكل أداة، مرتّب بحسب ما كلّفته للأدوات الأخرى بالثواني: الأداة التي ترسل `keep_alive: 0` فتُفرغ النموذج بعد كل تشغيل، والتي تطلب سياقاً بحجم 128K لمُوجّهات بحجم 4K فتُنزل الخادم إلى طلب واحد في كل مرة، والتي انتظرت 22 ثانية خلفهما. ومع كل واحدة الإعداد الذي ينبغي تغييره. والأداة التي لم تكلّف شيئاً مذكورة أيضاً، لترى كيف يبدو السلوك الجيد. ![الجهاز المشترك: ما طلبته أداة من الخادم وما كلّفه ذلك للأدوات الأخرى](https://raw.githubusercontent.com/LogneBudo/llmxray/master/docs/public/screenshots/shared-box.png) ### خريطة GPU: ما في ذاكرة الفيديو، وما الذي يتّسع أيضاً شريط واحد بعرض بطاقتك: كل نموذج محمَّل كتلة مقسومة بين أوزانه وما يكلّفه سياقه فوقها، ثم المساحة الحرّة. وتحته كل نموذج مُنزَّل مع أحد ثلاثة أحكام: يتّسع الآن، يتّسع فقط إذا أُفرغ المحمَّل أولاً، أكبر من البطاقة. ![خريطة GPU: نموذج محمَّل بحجمه الحقيقي، مع ما يتّسع أيضاً](https://raw.githubusercontent.com/LogneBudo/llmxray/master/docs/public/screenshots/gpu-map.png) ### استدعاءات الأدوات: هل يستطيع هذا النموذج قيادة وكيل؟ ثلاثة عشر شكلاً من الطلبات يرسلها الوكلاء طوال اليوم، مُقيَّمة على ما أعاده الخادم: الأداة الصحيحة، والوسائط الصحيحة، والعدد الصحيح من الاستدعاءات، ولا استدعاء حين لا حاجة إليه. كل خانة جملة واحدة: «الوسيط path مفقود»، «كتب الاستدعاء في نص الجواب»، «استدعى search_web ولم تكن هناك حاجة إلى أداة». انقر عليها لترى ما أعاده النموذج. ![استدعاءات الأدوات: ثلاثة عشر شكلاً من طلبات الوكلاء مُقيَّمة على gemma4](https://raw.githubusercontent.com/LogneBudo/llmxray/master/docs/public/screenshots/tool-calls.png) ### مختبر الذاكرة المؤقتة لا يعيد النموذج المحلّي استخدام ذاكرة المُوجّه المؤقتة إلا ما دام المُوجّه مطابقاً من أول رمز. طابع زمني واحد قرب الأعلى يُهدر كل ما تحته. يجد المختبر القيم التي تتغيّر بين الأدوار، ويُظهر أين تموت إعادة الاستخدام، ثم **يقيس** على خادمك الخاص ما يوفّره نقلها إلى النهاية. ![مختبر الذاكرة المؤقتة: التشخيص والنتيجة المقيسة](https://raw.githubusercontent.com/LogneBudo/llmxray/master/docs/public/screenshots/cache-lab.png) مقيس على مُوجّه حقيقي من 324 رمزاً: 4 رموز معاد استخدامها و64.6 مللي ثانية تعبئة مسبقة مع الطابع الزمني في المقدّمة، و290 رمزاً معاد استخدامها و18.6 مللي ثانية معه في النهاية. **أسرع 3.5 مرّة، بالكلمات نفسها.** ### مرصد البروتوكولات المُوجّه نفسه عبر بروتوكولات Ollama الثلاثة بالتوازي: الأصلي `/api/chat`، والمتوافق مع OpenAI `/v1/chat/completions`، والمتوافق مع Anthropic `/v1/messages`. بثّ جنباً إلى جنب، مقاييس لكل بروتوكول، وفرق للغلاف يُظهر كيف يصوغ كلٌّ منها أسباب الانتهاء وأعداد الرموز والأخطاء. ![مرصد البروتوكولات: ثلاثة بروتوكولات جنباً إلى جنب](https://raw.githubusercontent.com/LogneBudo/llmxray/master/docs/public/screenshots/protocols.png) --- ## احتفظ بها، وأرسلها أبعد يبقى سجلّ كل دور (الرموز، الذاكرة المؤقتة، الأزمنة، العميل، النموذج، ولا نصّ أبداً) على جهازك 30 يوماً، فيكمل إعادة التشغيل من حيث توقّف. تواصل Live والتشغيلات وأشعة المُوجّه وأدوات MCP عملها كأن شيئاً لم يحدث. إذا كان فريقك يقرأ التتبّعات أصلاً، فأرسل الأدوار إلى هناك: يصبح كل استدعاء للنموذج span في OpenTelemetry يحمل سمات GenAI التي تقرؤها العارضات أصلاً، وكل تشغيل trace، ووقت الأدوات بين استدعاءين span مستقلاً، الشلال نفسه الذي تعرضه التشغيلات. اكتب عنواناً في صفحة Live، أو استخدم `OTEL_EXPORTER_OTLP_ENDPOINT`. | العارض | العنوان | |---|---| | Jaeger (`docker run -p 16686:16686 -p 4318:4318 jaegertracing/jaeger`) | `http://localhost:4318` | | Arize Phoenix (`docker run -p 6006:6006 arizephoenix/phoenix`) | `http://localhost:6006` | | Langfuse | `https://cloud.langfuse.com/api/public/otel`، مع ترويسة Basic من مفاتيحك | | Grafana Tempo، أو OpenTelemetry Collector | عنوان OTLP HTTP الخاص به، عادةً المنفذ 4318 | لا يُرسَل نصّ المُوجّه إلا إذا فعّلت كلاً من *احتفظ بنص المحثّات* و*ضمّن نص المحثّات في كل span*. --- ## للوكلاء إذا كنت وكيلاً يعمل على نموذج محلي، يستطيع LLMxRay أن يخبرك بما حدث من خطأ في استدعاءاتك أنت. خطوتان. 1. أرسل استدعاءاتك لـ Ollama إلى المنفذ **11435** بدلاً من 11434. يتصرّف تماماً مثل Ollama ويمرّر كل شيء؛ لا يفعل LLMxRay سوى تسجيل ما يمرّ. 2. أضف خادم MCP الخاص بـ LLMxRay إلى أدواتك: ```json { "mcpServers": { "llmxray": { "command": "npx", "args": ["-y", "-p", "llmxray", "llmxray-mcp"] } } } ``` سبع أدوات، كلها للقراءة فقط، ولا شيء يغادر الجهاز: | الأداة | تجيب عن | |---|---| | `diagnose_my_turns` | ما يبرز في أدوارك الأخيرة، جملاً مع الإصلاح: مُوجّه رُفض لأنه تجاوز السياق المحمَّل، فقدان الذاكرة المؤقتة للمُوجّه في كل دور أو في دور واحد، نموذج يعمل جزئياً على المعالج، مخطّطات أدوات تزاحم المُوجّه. | | `read_my_last_turn` | دورك الأخير بالأرقام: رموز المُوجّه والحصة المخزّنة، وقت التعبئة المسبقة وسرعتها، الرموز المولّدة وسرعتها، سبب توقّف التوليد، ممّ يتكوّن المُوجّه، وهل اتّسع النموذج في ذاكرة الفيديو. | | `list_local_models` | أي النماذج مُنزَّلة، وحجمها وتكميمها، وأيها محمَّل الآن وبأي سياق، وهل يتّسع كل منها في ذاكرة الفيديو. | | `list_my_turns` | السجلّ: سطر لكل دور فيه الرموز والحصة المخزّنة والتعبئة المسبقة وسرعة التوليد وسبب التوقّف والإشارات. | | `compare_my_turns` | هل ساعد تغيير ما: وسيطات الحصة المخزّنة والتعبئة المسبقة والسرعة وحجم المُوجّه قبل لحظة وبعدها، مع حكم. | | `estimate_my_prompt` | قبل الإرسال: هل يتّسع مُوجّه من N رمزاً في السياق المحمَّل، وكم يبقى من هامش، وهل النموذج في ذاكرة الفيديو، وكم ستعيد الذاكرة المؤقتة استخدامه. | | `read_llmxray_status` | أين يعمل LLMxRay، ومنفذ المراقبة، وأي Ollama يمرّر إليه، وكم دوراً يحتفظ به. | يجب أن يكون LLMxRay نفسه قيد التشغيل (`npx llmxray`). يقرأ خادم MCP منه عبر localhost. الإجراء نفسه على شكل [Agent Skill](https://agentskills.io) يستطيع وكيلك تحميلها: `npx skills add LogneBudo/llmxray` (skills.sh) أو `clawhub install llmxray-diagnose-ollama-calls` (ClawHub). المصدر: [skills/diagnose-ollama-calls/SKILL.md](skills/diagnose-ollama-calls/SKILL.md). سمِّ نفسك لتكون أدوارك لك: أرسل الترويسة `X-LLMxRay-Client: my-agent`، أو استخدم `http://localhost:11435/?client=my-agent` عنواناً أساسياً، ومرّر `my-agent` على أنه `client` إلى الأدوات. --- ## وفي الصندوق أيضاً أنت تشغّل نموذجاً محلياً. تتحدّث معه. يجيب LLMxRay عن الأسئلة التي تأتي بعد ذلك: كم استغرق كل رمز، كم كلّف المُوجّه، هل أفادت الذاكرة المؤقتة، أيّ إعداد كان الأفضل فعلاً، وما الذي ترسله أدواتك *الأخرى* إلى النموذج نفسه. كل صفحة أدناه هي إحدى هذه الإجابات. ### المحادثة، رمزاً برمز يُرسم كل رمز فور وصوله، ملوّناً حسب احتمال النموذج له، من logprobs في Ollama. ترى أين تردّد النموذج وأين كان واثقاً. Markdown، محادثات متعدّدة الأدوار، مرفقات ملفات وصور، أوامر الشرطة المائلة، وميزانية تفكير لنماذج الاستدلال (معطّلة، أو باختيار النموذج، أو low / medium / high / max). يُفحص كل ردّ أيضاً عند وصوله. لا تظهر الشارة إلا عندما يكون هناك خلل: تكرار، رفض، كلام غير مفهوم، إجابة فارغة، أو ردّ مقطوع عند حدّ الرموز.
لقطة شاشة ![المحادثة: ردّ يُبثّ، كل رمز ملوّن حسب احتماله](https://raw.githubusercontent.com/LogneBudo/llmxray/master/docs/public/screenshots/chat-streaming.png)
### الجلسة بالتفصيل افتح أيّ دور لتراه كخطّ زمني: الوقت حتى الرمز الأول، الفواصل بين الرموز، كتلة الاستدلال إن وُجدت، استدعاءات الأدوات، والمُوجّه الذي أُرسل بالضبط.
لقطة شاشة ![تفاصيل الجلسة: الخط الزمني للبثّ والمقاييس](https://raw.githubusercontent.com/LogneBudo/llmxray/master/docs/public/screenshots/session.png)
### المقارنة المُوجّه نفسه على ما يصل إلى أربع خانات، لكلّ منها نموذجها ودرجة حرارتها ومُوجّهها النظامي، تُبثّ جنباً إلى جنب. إعدادات مسبقة بنقرة واحدة: مسح درجات الحرارة، زوج حتمي، مقارنة اللغات. فرق على مستوى الكلمة يُظهر بالضبط ما تغيّر بين إجابتين.
لقطة شاشة ![المقارنة: مسح درجات الحرارة على نموذج واحد](https://raw.githubusercontent.com/LogneBudo/llmxray/master/docs/public/screenshots/compare.png)
### المعيار الجراحي قيّم النماذج على مجموعات أسئلة منتقاة (MMLU-Pro، ARC-Challenge، HellaSwag، GSM8K، TruthfulQA) اعتماداً على **logprobs الحقيقية للرموز**، لا على ما إذا كانت الإجابة تبدو صحيحة. الثقة مقابل الدقة لكل فئة، لترى أين يخطئ النموذج بثقة. استورد مجموعاتك الخاصة بصيغة JSON.
لقطة شاشة ![المعيار: الثقة مقابل الدقة](https://raw.githubusercontent.com/LogneBudo/llmxray/master/docs/public/screenshots/benchmark.png)
### مختبر القرار تجيب نماذج القرار (nimble، tev1، clef) عن الأسئلة المصنّفة باحتمالات بدلاً من النثر. أعطِ المختبر موقفاً واطلب اختياراً بين مرشّحين، أو احتمال نعم/لا، أو درجة على مقياس. تعود كل إجابة على شكل توزيع النموذج نفسه، مرسوماً كأعمدة.
لقطة شاشة ![مختبر القرار: أعمدة الاحتمال خلف كل إجابة](https://raw.githubusercontent.com/LogneBudo/llmxray/master/docs/public/screenshots/decision-lab.png)
### قاعدة المعرفة والتضمينات أضف ملفات PDF أو DOCX أو Markdown أو CSV. تُقسَّم وتُضمَّن وتصبح قابلة للبحث، فترى ما يعيده الاسترجاع فعلاً قبل أن يراه أيّ نموذج. تتيح صفحة التضمينات مقارنة أيّ نصّين بتشابه جيب التمام، وتصوّر المتّجهات، وتُظهر ما يكلّفه اقتطاع Matryoshka. كل شيء يبقى في IndexedDB في متصفّحك.
لقطة شاشة
![قاعدة المعرفة: نتائج البحث مع الدرجات](https://raw.githubusercontent.com/LogneBudo/llmxray/master/docs/public/screenshots/knowledge-base.png) ![التضمينات: تشابه جيب التمام بين نصّين](https://raw.githubusercontent.com/LogneBudo/llmxray/master/docs/public/screenshots/embeddings.png)
### إكمال الكود الإكمال في الوسط لنماذج Qwen-Coder وCodeLlama وCodestral وDeepSeek-Coder وStarCoder: بادئة ولاحقة، ويملأ النموذج الفجوة. تُظهر المعاينة المجمّعة النتيجة كما سيعرضها محرّرك.
لقطة شاشة ![إكمال الكود: البادئة واللاحقة والمعاينة المجمّعة](https://raw.githubusercontent.com/LogneBudo/llmxray/master/docs/public/screenshots/fim.png)
### ورشة الأدوات لوحة عُقد لبناء تعريفات الأدوات، مع TypeScript متزامن في الاتجاهين: عدّل العُقد أو عدّل الكود. استكشف واجهة API، ولّد المخطّط، واختبر الأداة باستدعاء حقيقي.
لقطة شاشة ![ورشة الأدوات: لوحة العُقد مع لوحة الكود مفتوحة](https://raw.githubusercontent.com/LogneBudo/llmxray/master/docs/public/screenshots/tools.png)
### التحليلات والتكاليف النسب المئوية للتأخير (P50 / P95 / P99) للطلبات والرموز الأولى، الجودة عبر الأدوار، الأخطاء حسب النموذج، خريطة حرارية للاستخدام، ودرجة الحرارة مقابل الرموز في الثانية. تسعّر صفحة التكاليف استخدامك المحلّي بأسعار السحابة، لترى ما يوفّره التشغيل المحلّي.
لقطة شاشة
![التحليلات: النسب المئوية للتأخير والجودة](https://raw.githubusercontent.com/LogneBudo/llmxray/master/docs/public/screenshots/analytics.png) ![التكاليف: المكافئ السحابي لكل نموذج](https://raw.githubusercontent.com/LogneBudo/llmxray/master/docs/public/screenshots/costs.png)
### جهازي والنماذج العتاد وبيئة التشغيل والاستدلال في صفحة واحدة: المعالج، الذاكرة، بطاقة الرسوميات، أيّ النماذج محمّلة وأين. يعرض تبويب النماذج كل نموذج مثبّت مع معلماته وقالبه ومشغّله، ويسحب نماذج جديدة من الفهرس.
لقطة شاشة
![جهازي: العتاد وحالة Ollama](https://raw.githubusercontent.com/LogneBudo/llmxray/master/docs/public/screenshots/system.png) ![النماذج: النماذج المثبّتة والفهرس](https://raw.githubusercontent.com/LogneBudo/llmxray/master/docs/public/screenshots/models.png)
### والمزيد - **خط أنابيب التدريب.** انتقِ أزواجاً من محادثاتك، وسمها وراجعها، وصدّرها بصيغة JSONL للضبط الدقيق. - **قاعدة بيانات التاريخ المحلّية.** تُؤرشف كل محادثة ومقارنة ومعيار في IndexedDB مع مرشّحات واتجاهات وتصدير وقواعد احتفاظ. - **حقيبة المعلّمين.** تسع وحدات دراسية على [موقع التوثيق](https://lognebudo.github.io/llmxray/docs/community/educators/)، كل منها مبنية حول صفحة من LLMxRay. - **خمس لغات.** الإنجليزية والفرنسية والصربية (لاتينية وسيريلية) والصينية والعربية، مع تخطيط من اليمين إلى اليسار. الهياكل جاهزة للعبرية واليابانية. --- ## لمن هذه الأداة | أنت... | يساعدك LLMxRay على... | |---|---| | **مطوّر** | تنقيح المُوجّهات، قياس التأخير، مقارنة النماذج، فحص استدعاءات الأدوات، رؤية ما يرسله محرّرك | | **باحث** | إجراء تجارب مضبوطة بالإعدادات نفسها عبر النماذج ودرجات الحرارة | | **طالب / معلّم** | مراقبة سلوك النماذج بدل القراءة عنه، مع [حقيبة المعلّمين](https://lognebudo.github.io/llmxray/docs/community/educators/) ذات الوحدات التسع | | **قائد فريق ذكاء اصطناعي** | منح كل مطوّر الإعداد المحلّي نفسه، وجمع نتائج المعايير وأزواج التدريب التي يصدّرونها | --- ## التثبيت ### npx (مُوصى به) ```bash npx llmxray npx llmxray --port 3000 npx llmxray --ollama-url http://192.168.1.50:11434 npx llmxray --observe-port 11436 # منفذ Live، الافتراضي 11435 ``` ### Docker ```bash docker run -p 5174:5174 -p 11435:11435 djovaneli/llmxray docker run -p 5174:5174 -p 11435:11435 -e OLLAMA_URL=http://host.docker.internal:11434 djovaneli/llmxray ``` ### من الكود المصدري ```bash git clone https://github.com/LogneBudo/llmxray.git cd llmxray npm install npm run dev # http://localhost:5173 ``` --- ## التوافق مع Ollama مُختبَر على **Ollama 0.40.x** (تم التحقّق على 0.40.10، أكتوبر 2026). يعمل مع 0.20 وما بعده؛ الإصدارات الأقدم تتحادث لكنها تفتقر إلى `think` و`format` بمخطّط JSON. **مُوصى به: 0.33.3 أو أحدث**، إذ يبلّغ عن إعادة استخدام ذاكرة المُوجّه المؤقتة، فتُقاس سرعة التعبئة المسبقة على الرموز المُقيَّمة فعلاً. | النقطة | تُستخدم لـ | |---|---| | `/api/chat` | المحادثة المبثوثة (NDJSON، مع `tools` ومستويات جهد `think` ومخطّط `format`) | | `/api/generate` | التوليد والإكمال في الوسط عبر `suffix` | | `/api/tags`، `/api/show` | قائمة النماذج، القدرات، طول السياق، المعلمات، القالب | | `/api/embed` | التضمينات المتّجهية لقاعدة المعرفة، مع اقتطاع `dimensions` اختياري | | `/api/pull`، `/api/delete`، `/api/ps`، `/api/version` | إدارة النماذج والحالة | | `/v1/chat/completions` | المسار المتوافق مع OpenAI، يستخدمه المعيار الجراحي للحصول على logprobs حقيقية | | `/v1/messages` | المسار المتوافق مع Anthropic، يستخدمه مرصد البروتوكولات | | `/v1/systemone` | نماذج القرار، يستخدمها مختبر القرار | --- ## تحت الغطاء Vue 3.5، TypeScript 6 (صارم)، Vite 8، Tailwind CSS 4، متجر Pinia لكل اهتمام، Chart.js وD3 للرسوم، Vue Flow للوحة الأدوات، CodeMirror 6 للكود. يحتفظ التطبيق ببياناته الخاصة (المحادثات والمقارنات والمعايير وقاعدة المعرفة) في IndexedDB في المتصفّح؛ أما سجلّات أدوار Live فتعيش في `~/.llmxray` على الجهاز الذي يشغّل LLMxRay. الخلفية هي Ollama، محلياً. يقرأ البثّ NDJSON من Ollama عبر `fetch()` و`ReadableStream`، وتحدّث الرموز الواجهة عبر Pinia. تلوّن المحادثة والمقارنة الرموز بحسب logprobs الحقيقية التي يعيدها Ollama؛ ومن دونها يبقى الرمز بلا لون، وتسمّي واجهة الرموز الزمن «إيقاعاً»، لا ثقة أبداً. وتستخدم المعايير logprobs حقيقية أيضاً. اكتشاف العتاد مكوّن Vite صغير يسأل نظام التشغيل مباشرة. منفذ Live وكيل شفّاف: يمرّر كل طلب إلى Ollama دون تعديل، ولا يترجم شيئاً (Ollama نفسه يخدم المسارات المتوافقة مع OpenAI وAnthropic)، ويسجّل الأعداد والأزمنة ويحتفظ بها 30 يوماً. | الأمر | ما يفعله | |---|---| | `npm run dev` | خادم التطوير (المنفذ 5173) | | `npm run build` | فحص الأنواع وبناء الإنتاج | | `npm run test` | اختبارات الوحدة (Vitest) | | `npm run test:e2e` | اختبارات شاملة (Playwright) | --- ## المساهمة المساهمات مرحَّب بها. انظر [CONTRIBUTING.md](CONTRIBUTING.md) للإعداد والإرشادات. ترجمات المجتمع مرحَّب بها بصفة خاصّة: ملفات الهياكل جاهزة للعبرية واليابانية. --- ## الرخصة [Apache License 2.0](LICENSE) --- ## العلامة التجارية **LLMxRay** علامة تجارية لإيفان ستانكوفيتش ([LogneBudo](https://github.com/LogneBudo)). انظر [TRADEMARK.md](TRADEMARK.md). ---

إن ساعدك LLMxRay على فهم ذكائك الاصطناعي بشكل أفضل، فكّر في منح المشروع نجمة.
هذا يساعد آخرين على اكتشاف المشروع.

GitHub stars