AR ▾

مقارنة واجهة برمجة تطبيقات Ollama بواجهة برمجة تطبيقات OpenAI: أيهما يناسب مشروعك

تشغل Ollama النماذج على جهازك الخاص، بينما تشغل OpenAI نماذجها على خوادمها. تقارن هذه الصفحة بين الاثنين من حيث الاستضافة، وتنسيق الطلب، والتكلفة، والحدود، وقواعد المحتوى، ثم تظهر خيارًا ثالثًا في المنتصف.

محدّث

رسم توضيحي بإيزومتري لجهاز كمبيوتر محلي وخادم سحابي مرتبطين بخط بيانات متوهج

نقاط رئيسية

  1. تعد Ollama وقت تشغيل محلي تستضيفه بنفسك؛ بينما تعد واجهة برمجة تطبيقات OpenAI خدمة مستضافة تُفوتَر لكل رمز.
  2. كلاهما يقبل طلبات دردشة على طراز OpenAI، لذا يمكن لعميل واحد التحدث مع أي منهما عن طريق تغيير عنوان URL الأساسي.
  3. التشغيل المحلي يكلف العتاد والوقت، والتشغيل المستضاف يكلف الرموز؛ ويعتمد نقطة التعادل على حجم استخدامك.
  4. توفر لك نقطة النهاية المستضافة المتوافقة مع OpenAI مع نموذج مفتوح الأوزان الدفع عند الاستخدام دون الحاجة لامتلاك بطاقة رسومات (GPU).

الإجابة المختصرة

إن سؤال مقارنة واجهة برمجة التطبيقات الخاصة بـ Ollama مع واجهة برمجة التطبيقات الخاصة بـ OpenAI هو في الغالب سؤال حول مكان تشغيل النموذج. مع Ollama، يعيش النموذج على جهاز تتحكم فيه، ويقوم كودك بالاتصال بـ localhost. مع OpenAI، يعيش النموذج في مركز بيانات شخص آخر، ويقوم كودك بالاتصال بعنوان HTTPS عام باستخدام مفتاح وفاتورة في نهاية الشهر.

كل شيء آخر ينتج عن هذا الاختلاف الوحيد: هيكل التكلفة، وزمن الاستجابة الذي يمكنك ضبطه، ومن يرى الموجّهات الخاصة بك، والنماذج التي يمكنك اختيارها، وما يحدث عندما ترسل مئة طلب في وقت واحد. يوضح الجدول الحقائق التي تنطبق على كليهما.

الموضوعOllamaOpenAI API
مكان التشغيلجهاز الكمبيوتر المحمول أو محطة العمل أو الخادم الخاص بكخوادم OpenAI
من يهيئ النموذجتقوم بسحب وتحديث الأوزان بنفسكتختار OpenAI وتحديث نماذجها
الفوترةلا توجد رسوم لكل رمز من وقت التشغيل المحلي؛ تدفع مقابل الأجهزة والطاقةلكل رمز، من حساب به فواتير
تنسيق الطلبمسارات أصلية بالإضافة إلى طبقة /v1 على غرار OpenAIتنسيق OpenAI الأصلي
الإنتاجيةمحدود بعتادكمحدودة بحدود معدل الحساب

إذا كنت تريد مسارًا متوسطًا، فإن نقطة النهاية المستضافة التي تتحدث بتنسيق OpenAI نفسه ولكن تقدم نموذجًا مفتوح الأوزان مغطاة في نهاية هذه الصفحة.

ما هي واجهة برمجة التطبيقات فعليًا

Ollama

Ollama هو برنامج يقوم بتنزيل النماذج مفتوحة الأوزان ويقدمها عبر HTTP على جهازك. بشكل افتراضي، يستمع على المنفذ 11434. لديه مسارات خاصة به مثل /api/chat و /api/generate، كما أنه يعرض طبقة على غرار OpenAI تحت /v1 بحيث يمكن لكود عميل OpenAI الموجود توجيهه إليه. لا يوجد حساب ولا مفتاح في الإعداد المحلي المعتاد. العملاء الذين يصرّون على وجود حقل مفتاح يحصلون على سلسلة نصية بديلة.

تختار النموذج، والتكميم وإعدادات نافذة السياق. هذه الحرية هي الجاذبية الرئيسية، وهي أيضًا التكلفة: إذا لم يتسع النموذج في ذاكرتك، فسيكون بطيئًا أو لن يتم تحميله على الإطلاق.

واجهة برمجة التطبيقات الخاصة بـ OpenAI

واجهة برمجة التطبيقات (API) الخاصة بـ OpenAI هي خدمة مستضافة. تنشئ حسابًا، وتضيف معلومات الفوترة، وتولّد مفتاحًا، وترسل الطلبات إلى عنوان OpenAI. تحصل على النماذج التي تقدمها OpenAI، وفقًا لسياسات الاستخدام الخاصة بـ OpenAI، مع أي حدود تسمح بها فئة حسابك. السعة والترقيات وتوفر الخدمة هي مسؤوليتهم هم، وليس مسؤوليتك. تنسيق الطلب الذي تراه في معظم البرامج التعليمية، مع مصفوفة messages ومصفوفة choices في الرد، يأتي من هذه الواجهة.

سبب المقارنة بينهما

توجد المقارنة لأن كلاهما يمكن الوصول إليه باستخدام نفس كود العميل. تتيح لك مكتبات OpenAI الرسمية تجاوز عنوان URL الأساسي، وطبقة /v1 الخاصة بـ Ollama تفهم إكمال الدردشة. لذا، غالبًا ما يمكن توجيه سكريبت مكتوب لأحدهما إلى الآخر في سطر واحد. هذا مريح، ولكنه يخفي أيضًا الاختلافات الحقيقية، والتي سنستعرضها في الأقسام التالية.

نفس كود العميل، عنوانان أساسيان

هذا هو الجزء الذي يجعل التبديل رخيص التكلفة. مقتطف الكود أدناه يتحدث مع خادم Ollama المحلي. فقط عنوان URL الأساسي والمفتاح واسم النموذج هما المحددان للهدف المستهدف.

from openai import OpenAI

# Local Ollama through its OpenAI-style layer
client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")

reply = client.chat.completions.create(
    model="llama3.2",  # whatever model you pulled locally
    messages=[{"role": "user", "content": "Summarize what a base URL is."}],
)
print(reply.choices[0].message.content)

لإرسال نفس الطلب إلى نقطة نهاية متوافقة مع OpenAI مستضافة، تقوم بتغيير ثلاث قيم. إليك النسخة الخاصة بهذا الموقع، بمعرف النموذج uncensored.

from openai import OpenAI

client = OpenAI(base_url="https://api.ollamaapi.com/v1", api_key="YOUR_KEY")

reply = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Summarize what a base URL is."}],
)
print(reply.choices[0].message.content)

نفس الطلب يعمل مع curl، وهو أمر مفيد لإجراء اختبار سريع قبل لمس أي رمز تطبيق.

curl https://api.ollamaapi.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"uncensored","messages":[{"role":"user","content":"Hello"}]}'

ينطبق تحذير واحد على أي تبديل بين هذه الأهداف. التوافق يغطي شكل الطلب والاستجابة، وليس السلوك. تتبع النماذج المختلفة التعليمات بشكل مختلف، وتتفاعل مع استدعاءات الأدوات بشكل مختلف، وتنتج تنسيقات مختلفة. شغّل الموجّهات الخاصة بك عبر الهدف الجديد قبل أن تثق به.

التكلفة: عتاد تملكه مقابل رموز تشتريها

الاستدلال المحلي يبدو مجانيًا لأنه لا تصلك فاتورة. إنه ليس مجانيًا. تدفع مقابل بطاقة رسوميات (GPU) أو جهاز ذاكرة كبيرة، وعن الكهرباء، وعن الساعات التي تقضيها في تثبيت برامج التشغيل، واختيار التكميم، وإعادة تشغيل خادم نفدت ذاكرته. إذا كنت تملك بالفعل عتادًا قادرًا وتشغّل بضع موجّهات في اليوم، فإن هذا التكلفة تكون قريبة من الصفر عمليًا. إذا كان عليك شراء بطاقة فقط لتشغيل النموذج الذي تريده، فإن الحساب يتغير.

التسعير المستضاف هو الشكل المعاكس: لا شيء مقدم، ورسوم تزداد مع الاستخدام. في هذا الموقع، السعر هو $0.15 لكل مليون رمز إدخال و$0.50 لكل مليون رمز إخراج، من رصيد مسبق الدفع بدون اشتراك. بالنسبة إلى OpenAI، تحقق من صفحة التسعير الحالية لديهم، لأنها تختلف حسب النموذج وتتغير مع مرور الوقت.

إليك كيف يعمل الحساب المستضاف لوظيفة واقعية على نقطة النهاية هذه. لنفترض أن تطبيقًا يرسل 40,000 طلب في شهر، كل منها يحتوي على 1,500 رمز إدخال و400 رمز إخراج.

  • الإدخال: 40,000 × 1,500 = 60,000,000 رمز، أو 60M. بسعر $0.15 لكل مليون، هذا $9.00.
  • الإخراج: 40,000 × 400 = 16,000,000 رمز، أو 16M. بسعر $0.50 لكل مليون، هذا $8.00.
  • المجموع: $17.00 للشهر.

يمكنك مقارنة هذا الرقم بما يكلفك شراء وتشغيل وصيانة جهاز مناسب. لحركة المرور الخفيفة أو المتقطعة، يكون الدفع لكل رمز هو الخيار الأفضل عادةً. لحركة المرور الثقيلة الثابتة على عتاد تملكه بالفعل، يكون الخيار المحلي هو الأفضل عادةً. انظر صفحة التسعير لمبالغ الشحن والمكافآت.

النماذج، قواعد المحتوى والخصوصية

مع Ollama، تقرر أي نموذج مفتوح الأوزان لتشغيله، ولا أحد يجلس بين الموجّه والأوزان. سلوك المحتوى هو ما يفعله ذلك النموذج. بعض نماذج المجتمع مضبوطة للرفض أقل، وبعضها ليس كذلك، ويمكنك تبديلها بحرية.

يطبق البائع المستضاف سياسات الاستخدام الخاصة به وفلاتره الخاصة. هذا موقف معقول لخدمة عامة الأغراض، وهو أيضًا السبب في أن بعض الكتاب ومطوري لعب الأدوار والباحثين العاملين مع الخيال الناضج يجدون إجابات المستضافة مقطوعة. اقرأ سياسة أي مزود تخطط للاعتماد عليه، وتحقق من قواعده الحالية بدلاً من الافتراض.

هذا الموقع موجود في موقع مختلف. يقدم نموذجًا واحدًا مفتوح الأوزان، تشغله جهة مستقلة ومُعدّ للإجابة دون رفض المحتوى للاستخدام القانوني للبالغين. ليس واجهة برمجة التطبيقات الرسمية لـ OpenAI أو Meta أو Mistral أو أي مورد آخر، وليس وسيطًا بين عدة موردين. هناك حدّ واحد صارم: لا محتوى جنسي يتضمن القاصرين. لا تُستخدم الموجّهات للتدريب. الطلبات الفاشلة أو المرفوضة لا يتم تحصيل رسوم عنها.

من حيث الخصوصية، يحافظ Ollama المحلي على الموجّهات على جهازك، وهو ما لا يمكن لأي خدمة مستضافة مطابقته. إذا كان يجب ألا تغادر بياناتك المبنى أبدًا، فقم بتشغيلها محليًا وتوقف عن المقارنة. إذا كان بإمكانك إرسال نص إلى خدمة مستضافة، اقرأ صفحة الخصوصية الخاصة بالمزود أولاً. صفحتنا هي /privacy/.

الحدود، التزامن والميزات

الحدود المحلية هي فيزيائية. بطاقة رسوميات واحدة تخدم بضع طلبات متزامنة قبل أن يتباطأ كل منها، وسياق طويل يستهلك الذاكرة بسرعة. الحدود المستضافة هي سياسة. في نقطة النهاية هذه، يسمح المفتاح الكامل بـ 8 طلبات متزامنة و300 طلب في الدقيقة، ويسمح مفتاح التجربة بـ 2 متزامن و60 في الدقيقة. نافذة السياق هي 100,000 رمز، تحسب الموجّه والإكمال معًا، ويمكن أن يكون جسم الطلب حتى 8 ميجابايت.

إذا تجاوزت حدًا، تحصل على HTTP 429. رمز الخطأ هو rate_limited للطلبات في الدقيقة وconcurrency لعدد كبير جدًا من الطلبات في وقت واحد. يعني 429 مع رأس Retry-After: 5 زيادة مؤقتة في الحمل، لذا انتظر خمس ثوانٍ وأعد المحاولة. يحتفظ الطلب المتدفق بمكان التزامن الخاص به حتى ينتهي البث، وهو أمر مهم إذا فتحت العديد من التيارات بالتوازي.

تغطية الميزات من الجانب المستضاف تركز على المحادثات. تحصل على البث المتدفق عبر SSE مع الاستخدام في النهاية، استدعاء الدوال، وضع JSON، وتمرير درجة الحرارة، top_p، stop، seed والعقوبات. لا يوجد توليد صور أو صوت أو فيديو، لا تضميدات ولا تدريب دقيق. إذا كنت بحاجة إلى تلك، خطط للحصول عليها من مكان آخر. تسرد الوثائق حقول الطلب الدقيقة.

تتضمن رؤوس الاستجابة X-Request-Id وX-Balance-USD، مما يتيح لك تسجيل طلب ومراقبة رصيدك المتبقي دون الحاجة إلى إجراء استدعاء إضافي.

كيفية الاختيار

اختر بناءً على القيد الذي يسبب أكبر تأثير.

  • يجب أن تبقى الموجّهات على عتادك. استخدم Ollama محلياً.
  • تملك بالفعل بطاقة رسومات (GPU) قوية وتريد التجربة. استخدم Ollama محلياً، ثم انتقل إلى الحل المستضاف لاحقاً إذا تجاوز حجم الحركة قدراته.
  • تحتاج إلى نموذج رائد من مورد معين أو نظامه البيئي. استخدم API الخاص بذلك المورد. إن مزوّد آخر ليس بديلاً عن نموذج محدد.
  • تريد الوصول إلى نموذج مفتوح الأوزان مستضاف وادفع حسب الاستخدام، مع عدم وجود رفض للاستخدام القانوني للبالغين، ودون الحاجة لإدارة العتاد. استخدم نقطة نهاية متوافقة مع OpenAI مستضافة مثل هذه.

تستخدم العديد من الفرق خيارين: Ollama على الحاسوب المحمول أثناء التطوير، ونقطة نهاية مستضافة لأي شيء يجب أن يكون متاحًا من خادم أو متصفح العميل. نظرًا لأنهما يتشاركان نفس تنسيق الطلب، فإن التبديل يتم عبر قيمة إعدادات وليس إعادة كتابة. إذا أردت تجربة الجانب المستضاف، يمكن للمستخدمين الجدد الحصول على رصيد تجريبي بقيمة $0.50 بنقرة واحدة من صفحة مفتاح API بعد تسجيل الدخول. لا يتطلب الأمر بطاقة، وهو صالح لمدة 7 أيام. تبدأ الشحنات المدفوعة من $20 وتقبل البطاقة أو العملات المشفرة.

أسئلة وأجوبة

هل يتوافق واجهة برمجة تطبيقات Ollama مع SDK الخاص بـ OpenAI؟

يكشف Ollama عن طبقة على غرار OpenAI تحت المسار /v1 تتعامل مع إكمالات المحادثة، لذا يمكن لـ OpenAI SDK الرسمية التوجيه إليها عن طريق تغيير عنوان URL الأساسي. تحقق من وثائق Ollama لمعرفة الحقول التي تدعمها إصدارتك.

هل يعد Ollama أرخص من OpenAI API؟

يعتمد ذلك على عتادك وحجم الاستخدام. لا يوجد رسوم لكل رمز في وقت التشغيل المحلي، لكنك تدفع مقابل الجهاز وصيانته. للاستخدام الخفيف أو غير المنتظم، غالبًا ما تكون الفوترة لكل رمز أرخص من شراء GPU.

هل يمكنني استخدام نقطة النهاية الخاصة بهذا الموقع بدلاً من Ollama المحلي؟

نعم، إذا كنت تريد نقطة نهاية متوافقة مع OpenAI مستضافة. اضبط عنوان URL الأساسي إلى https://api.ollamaapi.com/v1 والنموذج إلى uncensored. إنه ليس Ollama ولا يعمل على جهازك.

هل تدعم نقطة النهاية المستضافة استدعاء الدوال والبث المتدفق؟

نعم. يدعم البث المتدفق عبر SSE، واستدعاء الدوال، ووضع JSON، مع نافذة سياق بحجم 100,000 رمز.

مفتاحك على بُعد استمارة واحدة

أنشئ حساباً، وانسخ المفتاح، ثم غيّر URL الأساسي. هذه هي الإعدادات الكاملة.

احصل على مفتاح APIاقرأ التوثيق