LeapfrogAI عبارة عن منصة ذكاء اصطناعي مستضافة ذاتيًا ومصممة للنشر في بيئات ذات فجوات هوائية. يهدف هذا المشروع إلى تقديم حلول الذكاء الاصطناعي المتطورة للبيئات ذات الموارد المحدودة، من خلال تمكين استضافة جميع المكونات المطلوبة لمكدس الذكاء الاصطناعي.
تشمل خدماتنا قواعد بيانات المتجهات والواجهات الخلفية للنماذج وواجهة برمجة التطبيقات (API) وواجهة المستخدم. يمكن الوصول إلى هذه الإمكانات بسهولة ودمجها مع البنية الأساسية الحالية لديك، مما يضمن إمكانية تسخير قوة الذكاء الاصطناعي بغض النظر عن قيود البيئة الخاصة بك.
تعد نماذج اللغات الكبيرة (LLMs) مصدرًا قويًا لاتخاذ القرارات المستندة إلى الذكاء الاصطناعي وإنشاء المحتوى وغير ذلك الكثير. كيف يمكن لـ LeapfrogAI جلب الذكاء الاصطناعي إلى مهمتك؟
استقلالية البيانات : قد لا يكون إرسال معلومات حساسة إلى خدمة خارجية مناسبًا أو مسموحًا به لجميع أنواع البيانات أو المؤسسات. من خلال استضافة LLM الخاصة بك، فإنك تحتفظ بالتحكم الكامل في بياناتك.
قابلية التوسع : يمكن أن تصبح خدمات الذكاء الاصطناعي للدفع عند الاستخدام باهظة الثمن، خاصة عندما تتضمن كميات كبيرة من البيانات وتتطلب اتصالاً مستمرًا. غالبًا ما يكون تشغيل LLM الخاص بك حلاً أكثر فعالية من حيث التكلفة للمهام بجميع أحجامها.
تكامل المهمة : من خلال استضافة LLM الخاصة بك، لديك القدرة على تخصيص معلمات النموذج وبيانات التدريب والمزيد، وتخصيص الذكاء الاصطناعي وفقًا لاحتياجاتك المحددة.
تم بناء LeapfrogAI على أساس خدمة Unicorn Delivery Service (UDS)، وبيئة التشغيل الآمنة الخاصة بـ Defense Unicorns، وتتضمن العديد من الميزات مثل:
يتبع مستودع LeapfrogAI بنية monorepo تعتمد على واجهة برمجة التطبيقات (API) مع تضمين كل مكون من المكونات في دليل packages
المخصص. حزم UDS التي تتعامل مع التطوير وأحدث عمليات النشر لـ LeapfrogAI موجودة في دليل bundles
. يبدو الهيكل كما يلي:
leapfrogai/
├── src/
│ ├── leapfrogai_api/ # source code for the API
│ ├── leapfrogai_evals/ # source code for the LeapfrogAI evaluation framework
│ ├── leapfrogai_sdk/ # source code for the SDK
│ └── leapfrogai_ui/ # source code for the UI
├── packages/
│ ├── api/ # deployment infrastructure for the API
│ ├── llama-cpp-python/ # source code & deployment infrastructure for the llama-cpp-python backend
│ ├── repeater/ # source code & deployment infrastructure for the repeater model backend
│ ├── supabase/ # deployment infrastructure for the Supabase backend and postgres database
│ ├── text-embeddings/ # source code & deployment infrastructure for the text-embeddings backend
│ ├── ui/ # deployment infrastructure for the UI
│ ├── vllm/ # source code & deployment infrastructure for the vllm backend
│ └── whisper/ # source code & deployment infrastructure for the whisper backend
├── bundles/
│ ├── dev/ # uds bundles for local uds dev deployments
│ └── latest/ # uds bundles for the most current uds deployments
├── Makefile
├── pyproject.toml
├── README.md
└── ...
الطريقة المفضلة لتشغيل LeapfrogAI هي نشر Kubernetes محليًا باستخدام UDS.
يرجى الرجوع إلى قسم البدء السريع في موقع وثائق LeapfrogAI للتعرف على متطلبات النظام وتعليماته.
يوفر LeapfrogAI واجهة برمجة تطبيقات تتطابق بشكل وثيق مع واجهة OpenAI. تسمح هذه الميزة للأدوات التي تم إنشاؤها باستخدام OpenAI/ChatGPT بالعمل بسلاسة مع الواجهة الخلفية لـ LeapfrogAI.
توفر LeapfrogAI SDK مجموعة قياسية من الأدوات المساعدة لـ protobufs وPython لتنفيذ الواجهات الخلفية باستخدام gRPC.
يوفر LeapfrogAI واجهة مستخدم مع دعم لحالات الاستخدام الشائعة مثل الدردشة العامة و"الأسئلة والأجوبة مع مستنداتك".
يوفر LeapfrogAI العديد من الواجهات الخلفية لمجموعة متنوعة من حالات الاستخدام. فيما يلي مصفوفة دعم وتوافق الواجهات الخلفية:
الخلفية | AMD64 | أرم64 | كودا | عامل ميناء | كوبيرنيتيس | يو دي إس |
---|---|---|---|---|---|---|
اللاما-CPP-بيثون | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
الهمس | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
تضمينات النص | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
vllm | ✅ | ❌ 1 | ✅ | ✅ | ✅ | ✅ |
يعد "نموذج" المكرر بمثابة "واجهة خلفية" أساسية تعمل على نسخ جميع المدخلات التي يتلقاها مرة أخرى إلى المستخدم. لقد تم تصميمه بنفس الطريقة التي يتم بها إنشاء جميع الواجهات الخلفية الفعلية ويتم استخدامه بشكل أساسي لاختبار واجهة برمجة التطبيقات (API).
يأتي LeapfrogAI مع إطار تقييم متكامل مع DeepEval. لمزيد من المعلومات حول تشغيل التقييمات واستخدامها في LeapfrogAI، يرجى الاطلاع على الملف التمهيدي الخاص بـ Evals.
يحتوي كل مكون على صور وقيم مختلفة تشير إلى سجل صور محدد و/أو مصدر تقوية. يتم تجميع هذه الصور باستخدام نكهات Zarf:
upstream
: يستخدم صور البائعين المنبع من سجلات ومستودعات الحاويات مفتوحة المصدرregistry1
: يستخدم صور IronBank المقواة من سجل ميناء Repo1فيما يلي قائمة النكهات المكونة الحالية:
عنصر | upstream | registry1 |
---|---|---|
واجهة برمجة التطبيقات | ✅ | ✅ |
ui | ✅ | ؟ |
com.supabase | ✅ | ؟ |
الهجرات | ✅ | ؟ |
اللاما-CPP-بيثون | ✅ | ؟ |
الهمس | ✅ | ؟ |
تضمينات النص | ✅ | ؟ |
vllm | ✅ | ؟ |
vllm | ✅ | ؟ |
النكهات التي تحتوي على أي مكونات تحمل علامة ? ليست متاحة كبداية سريعة لنشر الحزمة حتى الآن. الرجاء الرجوع إلى DEVELOPMENT.md للحصول على إرشادات حول كيفية إنشاء حزمة Zarf الخاصة بالمكون للاختبار المحلي.
لإنشاء حزمة LeapfrogAI UDS ونشرها، يرجى الرجوع إلى موقع وثائق LeapfrogAI. في موقع التوثيق، ستجد متطلبات النظام والتعليمات الخاصة بكل ما يتعلق بـ LeapfrogAI غير المرتبطة بالتنمية المحلية والمساهمة.
للمساهمة والنشر والتطوير المحلي لكل مكون في بيئة Python أو Node.js المحلية، يرجى المتابعة إلى القسم التالي.
ملحوظة
يرجى البدء بموقع توثيق LeapfrogAI قبل محاولة التطوير المحلي
يمكن أيضًا تشغيل كل مكون من مكونات LeapfrogAI بشكل فردي خارج بيئة Kubernetes أو بيئة الحاويات. يعد هذا مفيدًا عند اختبار التغييرات على مكون معين، ولكنه لن يساعد في النشر الكامل لـ LeapfrogAI. يرجى الرجوع إلى القسم أعلاه للحصول على تعليمات النشر. يرجى الرجوع إلى القسم التالي للتعرف على قواعد المساهمة في LeapfrogAI.
قم أولاً بالرجوع إلى مستند DEVELOPMENT.md للحصول على تفاصيل التطوير العامة.
ثم ارجع إلى ملفات README المرتبطة لتعليمات التطوير المحلية لكل دليل فرعي على حدة.
يجب على جميع المساهمين المحتملين والحاليين التأكد من أنهم قد قرأوا وثائق المساهمة وسياسات الأمان ومدونة قواعد السلوك قبل فتح إصدار أو سحب الطلب إلى هذا المستودع.
عند إرسال إصدار أو فتح تقرير علاقات عامة، يرجى التأكد أولاً من أنك بحثت في موضوعك المحتمل أو تقرير العلاقات العامة مقابل الإصدارات الحالية أو المغلقة والعلاقات العامة. سيتم إغلاق التكرارات الملحوظة، لذا يرجى الإشارة إلى مساهماتك وتمييزها عن القضايا العرضية أو المشابهة والعلاقات العامة.
يتم دعم LeapfrogAI من قبل مجتمع من المستخدمين والمساهمين، بما في ذلك:
هل تريد إضافة مؤسستك أو شعارك إلى هذه القائمة؟ افتح العلاقات العامة!
يتطلب vLLM PyTorch الذي يدعم CUDA والمصمم لـ ARM64، وهو غير متوفر عبر النقطة أو conda ↩
إن SDK ليست وحدة مستقلة وظيفيًا، ولا تصبح وحدة وظيفية إلا عند دمجها وتعبئتها مع واجهة برمجة التطبيقات (API) والواجهات الخلفية باعتبارها تبعية. ↩
يرجى العلم أن واجهة برمجة التطبيقات (API) وواجهة المستخدم (UI) تحتويان على عناصر ضمن دليلين فرعيين. تركز الدلائل الفرعية المتعلقة packages/
على مخططات التعبئة والتغليف Zarf وHelm، في حين تحتوي الدلائل الفرعية المرتبطة بـ src/
على كود المصدر الفعلي وتعليمات التطوير. ↩ ↩ 2