تحسين التكلفةدليل
توجيه النماذج لتقليل تكلفة API: النموذج الرخيص أولاً، ثم التصعيد
أرسل الطلبات السهلة إلى نموذج رخيص وصعّد الطلبات الصعبة فقط. شاهد التكلفة المختلطة لـ 10,000 طلب بنسب تصعيد 10% و30% و50%، بالإضافة إلى موجه Python قصير.

في هذه الصفحة
يمكن أن يقلل التوجيه من الفاتورة عندما تكون الجولة الأولى من النموذج الرخيص أرخص بكثير من النموذج الثاني ولا يُصعّد سوى عدد قليل من الطلبات: أرسل كل طلب إلى النموذج الرخيص أولاً وأعد إرسال الطلبات الصعبة فقط إلى نموذج ثانٍ. ما إذا كنت توفر فعلاً يعتمد على نسبة الطلبات التي تصعّدها. فيما يلي الحساب لـ 10,000 طلب بنسب 10% و30% و50%، ودالة Python يمكنك لصقها في مشروعك.
النمط ليس جديداً. منشور Anthropic الهندسي "Building effective agents" (19 ديسمبر 2024) يسميه سير عمل التوجيه: الأسئلة الشائعة والسهلة تذهب إلى نموذج أصغر وأقل تكلفة، والأسئلة غير المعتادة والصعبة تذهب إلى نموذج أكثر قدرة. لا يذكر المنشور أسعاراً، لذا الأرقام هنا خاصة بنا، على أسعار CheapTokens الحية.
أي من طلباتك سهل؟#
التوجيه يعمل فقط إذا استطعت أن تقول، في قاعدة، ما معنى "صعب". ليس في إحساس، بل في قاعدة يمكن للكود التحقق منها. اختر الحالة الأقرب لحالتك:
اختر حالتك
اختر حالتك
اختر خيارًا لعرض الإجابة
روبوت دعم
معظم التذاكر أسئلة شائعة قصيرة: أين طلبي، كيف أعيد تعيين كلمة المرور. القليل منها يحتاج إجابة طويلة ودقيقة. سهل: النموذج الأول يجيب ولا يرد UNSURE. صعب: يقول UNSURE، أو الإجابة مقطوعة (finish_reason هو length).
خط أنابيب المستندات
كل مستند يمر عبر الاستخراج أولاً. سهل: النتيجة تُحلل كـ JSON صالح مع جميع الحقول المطلوبة. صعب: يفشل التحليل أو يكون حقل فارغاً. فقط تلك المستندات تُعاد على النموذج الثاني.
وكيل البرمجة
التعديلات البسيطة تذهب إلى النموذج الرخيص. صعّد خطوة عندما تفشل نفس الخطوة مرتين متتاليتين، أو عندما تكون الإجابة مقطوعة (finish_reason هو length).
لا تصعّد بناءً على "النموذج يبدو غير متأكد" إلا إذا أخبرته كيف يقول ذلك. تعليمة من سطر واحد ("رد بالضبط UNSURE إذا لم تستطع الإجابة") تحول الإحساس إلى شيء يمكن لـ if قراءته.
تكلفة 10,000 طلب: التتالي مقابل الموجه#
لنفترض أنك تشغل روبوت دعم بـ 10,000 طلب شهرياً. الطلب المتوسط 800 رمز إدخال و300 رمز إخراج. هذه افتراضات؛ استبدلها بأرقامك من usage (مقالنا عن عد الرموز يوضح من أين تقرأها).
هناك طريقتان لتوصيل التوجيه، وتختلف فاتورتهما:
- التتالي. كل طلب يذهب إلى النموذج الرخيص. نسبة p تفشل في الفحص وتُرسل مرة أخرى إلى النموذج الثاني. تلك الطلبات تُدفع مرتين: التكلفة = N × [رخيص + p × ثانٍ].
- الموجه. استدعاء مصنف صغير يقرر مسبقاً. السهلة تذهب إلى النموذج الرخيص، والصعبة مباشرة إلى الثاني: التكلفة = N × [(1 − p) × رخيص + p × ثانٍ]، بالإضافة إلى المصنف على كل طلب.
سنستخدم التتالي، لأنه لا يحتاج مصنفاً وهو الأسهل للبدء. الجولة الأولى هي GLM-5.3-Flash (zai-، سياق 390K، حتى 8,192 رمز إخراج). الجولة الثانية هي DeepSeek-V4-Flash إصدار 0731 (deepseek-، سياق 380K، حتى 32,768 رمز إخراج)، لذا الإجابة التي لم تتسع في 8,192 رمز لديها مساحة لإكمالها. كلاهما أرخص من OpenRouter إجمالاً، مع احتساب الإدخال والإخراج معاً؛ الجدول الحي أدناه يظهر عمود OpenRouter بجانب عمودنا.
الجولة الأولى تغطي دائماً جميع الـ 10,000 طلب: 8,000,000 إدخال و3,000,000 إخراج. الجولة الثانية تغطي فقط النسبة المصعّدة. العمود الأخير هو البديل: جميع الـ 10,000 طلب مباشرة على النموذج الثاني.
قم بتمرير الجدول لليمين →
| النسبة المصعّدة | رموز الجولة الثانية (إدخال / إخراج) | الجولة الأولى، كل الـ 10,000 | الجولة الثانية، المصعّدة فقط | كل شيء على النموذج الثاني، كل الـ 10,000 |
|---|---|---|---|---|
| 10% | 800,000 / 300,000 | $0.28 | $0.042 | $0.42 |
| 30% | 2,400,000 / 900,000 | $0.28 | $0.126 | $0.42 |
| 50% | 4,000,000 / 1,500,000 | $0.28 | $0.21 | $0.42 |
اجمع عمودي الجولة الأولى والجولة الثانية في كل صف للحصول على تكلفة الشهر للتتالي، ثم قارن ذلك المجموع بالعمود الأخير. الجولة الأولى تكلفة ثابتة، والجولة الثانية فقط تنمو مع p. هذه هي قصة التتالي بأكملها: كلما صعّدت أكثر، اقتربت من دفع تكلفة العمل مرتين.
إليك نفس الحمل لكل نموذج في وقت واحد، لترى أين تقع الخيارات أحادية النموذج:
| النموذج | الإدخال $/1M | الإخراج $/1M | لكل طلب | 10,000 طلبات | OpenRouter، 10,000 طلبات |
|---|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.000028 | $0.28 | $0.517 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.000042 | $0.42 | $0.98 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.000085 | $0.85 | $10.20 |
800 رمز إدخال و300 رمز إخراج لكل طلب. الأسعار لكل مليون رمز حالية وتتغير مع تعريفاتنا؛ يعرض عمود OpenRouter أسعارًا مرجعية لنفس حجم العمل.
متى لا يستحق التتالي؟ عندما تكلف الجولة الأولى زائد النسبة المصعّدة أكثر من إرسال كل شيء إلى النموذج الثاني. بالرموز: رخيص + p × ثانٍ < ثانٍ، مما يعني p < 1 − رخيص/ثانٍ. لهذا الزوج، تكلف الجولة الأولى حصة ملحوظة من سعر النموذج الثاني على هذا الحمل، لذا يتقلص الربح من التتالي، وعند نسبة تصعيد عالية يختفي. عند 50% قد يخسر التتالي أمام إرسال جميع الـ 10,000 طلب ببساطة إلى النموذج الثاني، لذا تحقق من مجموع الجولتين مقابل العمود الأخير قبل الالتزام. تعتمد النسبة على مزيج الإدخال/الإخراج لديك، لأن النموذجين يسعران الجانبين بشكل مختلف، لذا اقرأها من صفك الخاص.
متغير الموجه يضيف شيئاً واحداً: المصنف. افترض أنه يقرأ 300 رمز إدخال ويجيب في 5 رموز على النموذج الرخيص، لكل طلب. لـ 10,000 طلب، هذا 3,000,000 إدخال و50,000 إخراج، أو $0.062 شهرياً إضافية. قارن هذا السطر مع نسبة p من عمود الجولة الأولى (10% أو 30% أو 50% منه): هذا ما يهدره التتالي بتشغيل الجولة الأولى على طلبات ثم تصعّدها. إذا كان سطر المصنف أكبر، فالتتالي هو البداية الأرخص؛ وإذا كان أصغر، فالموجه يوفر أكثر.
جرب أرقامك الخاصة قبل أن تبني أي شيء:
حاسبة التكلفة
شهر واحد من روبوت دعم، كل شيء على نموذج واحد
رموز الإدخال لكل طلب: 800 · رموز الإخراج لكل طلب: 300 · الطلبات يوميًا: 10,000
| النموذج | يوميًا | شهريًا |
|---|---|---|
| GLM-5.3-Flash$0.02$0.04 | $0.28 | $8.40 |
| DeepSeek-V4-Flash$0.015$0.10 | $0.42 | $12.60 |
| MiniMax-M2.7$0.05$0.15 | $0.85 | $25.50 |
غيّر runs إلى حجمك واقرأ الإجمالي لكل نموذج. ثم استخدم الجدول أعلاه لترى كم ستضيف الجولة الثانية إليه.
موجه في Python: استدعاءان وفحص واحد#
كلا النموذجين خلف عنوان URL أساسي واحد متوافق مع OpenAI ورصيد واحد، لذا لا يحتاج التوجيه إلى حساب أو مفتاح ثانٍ. الكود أدناه مثال: الأرقام فيه (max_tokens، قاعدة UNSURE) لك لضبطها. الاستدعاء الثاني يحصل على max_tokens أعلى، لذا إجابة مقطوعة عند 600 رمز يمكنها الإكمال. عنوان URL الأساسي ومعرفات النماذج والباقي في وثائق CheapTokens.
import os
from openai import OpenAI
client = OpenAI(
base_url='https://api.cheaptokens.dev/v1',
api_key=os.environ['CHEAPTOKENS_API_KEY'],
)
CHEAP = 'zai-org/GLM-5.3-Flash'
SECOND = 'deepseek-ai/DeepSeek-V4-Flash-0731'
SYSTEM = 'Answer briefly. If you cannot answer well, reply exactly UNSURE.'
def ask(model, question, max_tokens):
r = client.chat.completions.create(
model=model,
max_tokens=max_tokens,
messages=[
{'role': 'system', 'content': SYSTEM},
{'role': 'user', 'content': question},
],
)
choice = r.choices[0]
return choice.message.content or '', choice.finish_reason
def needs_escalation(text, finish_reason):
return finish_reason == 'length' or not text.strip() or 'UNSURE' in text
def answer(question):
text, why = ask(CHEAP, question, 600)
if needs_escalation(text, why):
text, why = ask(SECOND, question, 4000)
if 'UNSURE' in text:
text = 'Sorry, I could not answer this one.'
return text
ثلاث عادات تجعل هذا صادقاً وليس مجرد رخيص:
- احسب التصعيدات. سجل عدد مرات إطلاق
needs_escalation. تلك هي p الخاصة بك، وهي الرقم الذي يقرر ما إذا كان التتالي يستحق. - اختر النموذج الثاني على مجموعة اختبارك الخاصة. خذ 50 طلباً صعباً من سجلاتك، شغلها عبر كلا النموذجين واحتفظ بالنموذج الثاني فقط إذا أصلح ما فاته الأول. ميزته الموثقة هي حد الإجابة 32,768 رمزاً، ومجموعتك الخاصة تظهر ما إذا كانت تلك هي الميزة التي تحتاجها.
- أرسل نفس الطلب، وليس طلباً أطول. إذا لصقت الإجابة الفاشلة في الاستدعاء الثاني، فأنت تدفع مقابلها كإدخال. ابدأ الجولة الثانية نظيفة إلا إذا كانت الإجابة الأولى سياقاً مفيداً حقاً.

اختبر نفسك#
فحص سريع
في تتالٍ، 30% من الطلبات تفشل في الفحص على النموذج الأول. ماذا تكلف تلك الطلبات؟
إظهار الإجابة
الإجابة: سعر النموذج الأول زائد سعر النموذج الثاني
الاستدعاء الأول محسوب بالفعل عندما ترمي إجابته. الطلبات المصعّدة تدفع مرتين، ولهذا النسبة p تقرر كل شيء.
إلى أين تذهب بعد ذلك#
إذا لم تكن متأكداً أي نموذج يجب أن يأخذ الجولة الأولى، MiniMax-M2.7 مقابل DeepSeek-V4-Flash يقارنهما حسب المهمة. للحصول على عرض لكل مهمة بدلاً من لكل رمز، راجع السعر لكل 1M رمز مقابل التكلفة لكل مهمة، وللحلقات ذات الخطوات الكثيرة، كيفية تقدير تكلفة وكيل AI. الأسعار الحية لكل نموذج على صفحة التسعير، وصفحات النماذج هي DeepSeek وGLM.



