Skip to content

Repository files navigation

AI Model Manager (aimanager)

مكتبة بايثون احترافية لإدارة وتنزيل وتقديم نماذج الذكاء الاصطناعي من مصادر متعددة (Hugging Face و Ollama) مع خادم FastAPI مدمج.

الميزات الرئيسية ✨

  • دعم متعدد المصادر: إدارة النماذج من Hugging Face Hub و Ollama.
  • خادم FastAPI: واجهة برمجة تطبيقات REST شاملة لإدارة النماذج والاستدلال.
  • نفق عام: كشف خادمك المحلي تلقائيًا على الإنترنت باستخدام pyngrok.
  • إدارة Ollama: التثبيت التلقائي، بدء التشغيل، الإيقاف، وسحب النماذج.
  • جودة إنتاجية: مبني على مبادئ SOLID، بنية نظيفة، ومعالجة قوية للأخطاء.
  • دعم غير متزامن: عمليات غير متزامنة بالكامل لأداء عالٍ.

التثبيت 🛠️

pip install fastapi uvicorn huggingface_hub transformers ollama pyngrok pydantic-settings

البدء السريع 🚀

بدء تشغيل الخادم

from aimanager.main import start_server

# Start the server on port 8000 with a public tunnel
start_server(
    port=8000, 
    public=True, 
    auto_install_ollama=True, 
    initial_models=["llama3", "sentence-transformers/all-MiniLM-L6-v2"]
)

استخدام المكتبة برمجياً

import asyncio
from aimanager.managers.factory import ManagerFactory

async def main():
    # Get the Hugging Face manager
    hf_manager = ManagerFactory.get_manager("huggingface")
    
    # Download a model
    await hf_manager.download_model("sentence-transformers/all-MiniLM-L6-v2")
    
    # List downloaded models
    models = await hf_manager.list_downloaded_models()
    print(f"Downloaded models: {models}")

if __name__ == "__main__":
    asyncio.run(main())

نقاط نهاية API 🌐

إدارة النماذج

  • GET /models: سرد جميع النماذج التي تم تنزيلها.
  • GET /models/{model_id}: الحصول على معلومات مفصلة عن النموذج.
  • POST /models/download: تنزيل نموذج من Hugging Face أو Ollama.
  • DELETE /models/{model_id}: حذف نموذج من التخزين المحلي.
  • POST /models/load: تحميل نموذج في الذاكرة.
  • POST /models/unload: إلغاء تحميل نموذج من الذاكرة.

إدارة Ollama

  • GET /ollama/status: التحقق من تثبيت Ollama وحالة الخدمة.
  • POST /ollama/install: تثبيت Ollama على النظام.
  • POST /ollama/start: بدء خدمة Ollama.
  • POST /ollama/stop: إيقاف خدمة Ollama.
  • GET /ollama/models: سرد جميع النماذج في Ollama.
  • POST /ollama/models/pull: سحب نموذج من مكتبة Ollama.
  • DELETE /ollama/models/{model_name}: إزالة نموذج من Ollama.
  • POST /ollama/run: تشغيل مطالبة (prompt) مقابل نموذج Ollama.

إدارة الخادم

  • GET /server/status: الحصول على حالة خادم API.
  • POST /server/restart: إعادة تشغيل خادم API.
  • POST /server/refresh: تحديث تكوين الخادم.

البنية المعمارية 🏗️

تتبع المكتبة بنية نظيفة مع فصل واضح للمسؤوليات:

  • Core: التكوين، التسجيل، والاستثناءات المخصصة.
  • Managers: فئة أساسية مجردة وتطبيقات محددة لمصادر النماذج المختلفة.
  • API: تطبيق FastAPI مع مسارات معيارية ومخططات Pydantic.
  • Utils: وظائف مساعدة للأنفاق العامة ومهام المساعدة الأخرى.

الترخيص 📄

MIT License

حقوق النشر ©

Copyright © 2026 Abdulaziz Alqudimi. All rights reserved.

About

A professional Python library for managing, downloading, and serving AI models from Hugging Face and Ollama with a FastAPI server

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages