عن المشروع

يوفر هذا المستودع بوابة FastAPI محايدة للمزودين مصممة لتجريد التبعيات المباشرة على مزودي LLM محددين مثل Gemini أو OpenAI. بدلاً من كتابة أسماء النماذج بشكل ثابت مثل 'gemini-3.5-flash' أو 'gpt-5.6-terra'، تطلب التطبيقات القدرات عبر أسماء مستعارة مستقرة مثل 'fast' أو 'reasoning' أو 'cheap' أو 'embedding'. تتولى البوابة عملية اختيار المزود، ومنطق إعادة المحاولة مع تراجع أسي واهتزاز (jitter)، وتوجيه البدائل، وفرض مهلة الانتظار، وتوحيد الأخطاء، وتتبع استخدام الرموز (tokens)، وتقدير التكلفة، والتخزين المستمر لأحداث الاستخدام في SQLite. تشمل الميزات الرئيسية ما يلي: - توجيه قائم على الأسماء المستعارة للنماذج مع سلاسل بديلة مرتبة - محولات المزودين لـ Gemini و OpenAI - مخرجات JSON مهيكلة باستخدام قيود JSON Schema - تضمينات نصية (Text embeddings) مع بيانات وصفية موحدة - انتشار معرف الطلب (Request ID) ورؤوس زمن الاستجابة - كتالوج تسعير قابل للتكوين لتقدير التكلفة - نقطة نهاية لتحليلات الاستخدام مع تفصيل حسب المزود/النموذج - اختبارات Async، ودعم Docker، و GitHub Actions CI/CD - ضوابط أمنية تشمل مصادقة مفتاح API في بيئة الإنتاج تفرض البنية فصلاً نظيفاً بين منطق التطبيق وتعقيدات مزود LLM. وهي تتضمن برمجيات وسيطة (middleware) لسياق الطلب، واستجابات Pydantic المحددة النوع، وتسجيلاً مفصلاً. يتم حفظ المحاولات الفاشلة جنباً إلى جنب مع الناجحة للحفاظ على الشفافية التشغيلية. النظام قابل للتوسيع ولكنه يتجنب عمداً الميزات المتقدمة مثل مصادقة JWT أو البث (streaming) أو تحديد معدل الطلبات الموزع للتركيز على التجريد الأساسي والموثوقية. يتضمن الإعداد استنساخ المستودع، وإنشاء بيئة افتراضية، وتثبيت التبعيات، وتكوين ملف .env بمفاتيح API، والتشغيل عبر uvicorn أو Docker. تتوفر وثائق Swagger على /docs. يستخدم المشروع Ruff و pytest و CodeQL و Dependabot لجودة الكود والأمان. يشرح ملف NOTES.md بالتفصيل قرارات التصميم وأهداف التعلم لمشاريع هندسة الذكاء الاصطناعي.