اختيار مزود LLM بناءً على درجات المعايير يشبه اختيار مطعم بناءً على صور قائمة الطعام. النموذج مهم، لكن كل ما يحيط بالنموذج مهم أيضًا، والأمور المحيطة هي ما يضرك فعليًا في بيئة الإنتاج. هذه هي قائمة المراجعة التي أفحص بها أي مزود قبل أن أوجه أي شيء حقيقي نحوه.
وقت التشغيل واتفاقية مستوى الخدمة
اتفاقية مستوى الخدمة (SLA) هي وعد مرفق بأرقام، لذا اقرأ الأرقام. نسب وقت التشغيل تبدو متقاربة بشكل مضلل حتى تحولها:
| SLA | وقت التوقف سنويًا | وقت التوقف شهريًا |
|---|---|---|
| 99.9% | 8.76 ساعة | 43.8 دقيقة |
| 99.95% | 4.38 ساعة | 21.9 دقيقة |
| 99.99% | 52.6 دقيقة | 4.4 دقيقة |
99.9% تبدو ممتازة ومع ذلك تسمح بما يقارب ساعة من الانقطاع شهريًا. إذا كان منتجك يعتمد على نقطة النهاية، فإن الفرق بين 99.9% و99.99% هو الفرق بين "مزعج" و"قابل للنسيان". تحقق أيضًا من أمرين يتجاوزان الرقم الرئيسي:
•ما الذي يُعتبر وقت توقف. بعض الاتفاقيات تغطي فقط الانقطاعات الكاملة، وليس انخفاض معدل النقل أو ارتفاع معدلات الأخطاء.
•ما الذي تحصل عليه عند الإخفاق. الرصيد التعويضي لا قيمة له إذا كان محدودًا أو يتطلب منك تقديم مطالبة. يجب أن يكون التعويض ملموسًا.
المزود الذي يرفض نشر اتفاقية مستوى خدمة على الإطلاق يخبرك بشيء، وهذا الشيء ليس جيدًا.
زمن الاستجابة ومعدل النقل
لزمن الاستجابة رقمان يهمانك وهما يقيسان شيئين مختلفين:
•الوقت حتى أول رمز (TTFT). المدة قبل أن يبدأ الرد بالتدفق. هذا ما يشعر به المستخدم كـ"سرعة استجابة".
•الرموز في الثانية (معدل النقل). مدى سرعة وصول بقية الرد. هذا ما يحدد ما إذا كانت الإجابة الطويلة تبدو بطيئة.
كلاهما يتغير حسب النموذج وحسب الحمل، لذا لا تثق برقم تسويقي. قِسه بنفسك:
import time
from openai import OpenAI
client = OpenAI(base_url="https://api.token8341.com/v1",
api_key="sk-your-key")
start = time.perf_counter()
stream = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": "Write 200 words about caching"}],
stream=True,
)
ttft = None
tokens = 0
for chunk in stream:
if ttft is None:
ttft = time.perf_counter() - start
tokens += 1
elapsed = time.perf_counter() - start
print(f"TTFT: {ttft:.2f}s, total: {elapsed:.2f}s, "
f"{tokens / elapsed:.1f} tok/s")شغّل ذلك في أوقات مختلفة من اليوم وتحت التزامن المتوقع لديك. المزود السريع في الساعة 10 صباحًا والبطيء في الساعة 7 مساءً لديه مشكلة في السعة تحتاج إلى معرفتها.
التكلفة
سعر الرمز الواحد هو الجزء السهل. صورة التكلفة الكاملة تشمل:
•أسعار الإدخال مقابل الإخراج، لأن الإخراج عادة يكلف عدة أضعاف الإدخال.
•تسعير إصابة الذاكرة المؤقتة. لأعباء العمل المتكررة، يمكن لذاكرة الإدخال المؤقتة أن تخفض التكلفة أكثر من أي خصم.
•حدود المعدل وتقييد الطلبات. نقطة نهاية رخيصة لا يمكنك الوصول إليها إلا بشكل محدود ليست رخيصة بمجرد إضافة الطوابير وإعادة المحاولات.
•العملة وعراقيل الدفع. رسوم البطاقات عبر الحدود وتكاليف التحويل حقيقية للفرق الصغيرة.
اطلب سعر عبء العمل الفعلي لديك، وليس السعر لكل مليون رمز بمعزل عن السياق.
تغطية النماذج والتوافق
•هل واجهة برمجة التطبيقات متوافقة مع OpenAI؟ إذا كانت كذلك، يمكنك استخدام مكتبات SDK القياسية والتبديل لاحقًا دون إعادة الكتابة. إذا كانت خاصة، فأنت ترتبط بالمزود ارتباطًا دائمًا.
•هل يمكنك الوصول إلى عدة عائلات نماذج عبر مفتاح واحد؟ كتالوج بنموذج أو نموذجين يقيّدك بقدر ما تفعله واجهة برمجة تطبيقات خاصة. كتالوج بنماذج كثيرة يمنحك بديلًا احتياطيًا ومسارًا نحو توجيه أرخص.
•هل التضمينات واستدعاء الدوال والتدفق مدعومة، وليس مجرد محادثة عادية؟ هذه هي الميزات التي تحدد ما إذا كانت نقطة النهاية تناسب تطبيقًا حقيقيًا أم مجرد عرض توضيحي.
التعامل مع البيانات والدعم
•الاحتفاظ بالبيانات. هل يحتفظ المزود بمدخلاتك ومخرجاتك للتدريب؟ احصل على ذلك كتابةً.
•المنطقة والإقامة. أين تُعالج الطلبات؟ لبعض المستخدمين هذا متطلب قانوني، وليس تفضيلًا.
•جودة الدعم. جرّب فتح تذكرة دعم قبل الالتزام. سرعة وفائدة الرد الأول مؤشر قوي على ما سيكون عليه الانقطاع.
•شفافية الحالة. صفحة الحالة العامة وسجل الحوادث يخبرانك ما إذا كان المزود صادقًا بشأن موثوقيته.
النسخة المختصرة
مرّر كل مرشح عبر هذه الأسئلة الخمسة:
1.ما هي اتفاقية مستوى الخدمة، وما هو التعويض عند الإخفاق فيها؟
2.ما هي قيم TTFT ومعدل النقل المقاسة تحت الحمل الخاص بي؟
3.كم يكلف عبء العمل الفعلي لدي، بما في ذلك إصابات الذاكرة المؤقتة؟
4.هل واجهة برمجة التطبيقات متوافقة مع OpenAI، مع عدة نماذج خلف مفتاح واحد؟
5.هل سيخبرونني أين تُعالج البيانات وكيف يستجيب الدعم؟
لا شيء من هذه يتطلب خبرة عميقة. إنها تتطلب أن تسأل قبل الانقطاع، لا بعده. المزودون الذين يجيبون عليها بارتياح يميلون إلى أن يكونوا أولئك الذين شغّلوا حركة إنتاج فعلية، وليس مجرد أدرجوا نموذجًا.
SiCore TokenWorks يتوافق بسهولة مع معظم هذه القائمة: اتفاقية مستوى خدمة بنسبة 99.9%، ونقطة نهاية متوافقة مع OpenAI على https://api.token8341.com/v1، ومفتاح واحد يغطي GPT-4o وClaude وGemini وDeepSeek وQwen وERNIE وDoubao وSpark وPangu، وفوترة مقاسة لكل رمز مع تسعير إصابة الذاكرة المؤقتة.