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

في هذه الصفحة
الرسائل الأولى في المحادثة رخيصة. الرسالة الخمسون تكلّف أكثر بشكل ملحوظ من الرسالة العاشرة، رغم أنك كتبت نفس القدر. لا شيء معطّل: هكذا تعمل واجهات برمجة تطبيقات المحادثة.
الإجابة المختصرة#
النموذج لا يتذكر طلباتك السابقة. توثيق OpenAI يقولها مباشرة: "كل طلب توليد نص مستقل وبلا حالة"، ولإجراء محادثة متعددة الأدوار تُضمّن الرسائل السابقة وإجابة النموذج السابقة في الطلب التالي. واجهة Messages API من Anthropic تصف النمط نفسه: محادثات متعددة الأدوار بلا حالة، حيث تُمرَّر الأدوار السابقة في المعامل messages.
إذن نافذة المحادثة التي تراها في التطبيق وهم يبنيه التطبيق. خلفها، كل رسالة جديدة هي طلب جديد يحمل المحادثة كاملة حتى تلك اللحظة. تدفع مقابل رموز الإدخال في كل طلب، والسجل جزء من ذلك الإدخال. إن كنت جديدًا على المصطلحات، اقرأ ما هو الرمز ورموز الإدخال مقابل الإخراج أولًا.
تذكر OpenAI جانب الفوترة صراحةً لسلاسل الاستجابات: كل رموز الإدخال السابقة في السلسلة تُحتسب كرموز إدخال. المبدأ نفسه ينطبق على أي واجهة ترسل فيها السجل بنفسك: ما ترسله هو ما يُحتسب.
مثال محلول بأرقام افتراضية#
الأرقام أدناه مثال تعليمي وليست قياسًا. افترض أن كل رسالة منك نحو 200 رمز وكل إجابة نحو 300 رمز. كل تبادل مكتمل يضيف 500 رمز إلى السجل.
قم بتمرير الجدول لليمين →
| الدور | السجل السابق المُعاد إرساله | الرسالة الجديدة | إدخال هذا الطلب | الإخراج |
|---|---|---|---|---|
| 1 | 0 | 200 | 200 | 300 |
| 5 | 500 × 4 = 2,000 | 200 | 2,200 | 300 |
| 10 | 500 × 9 = 4,500 | 200 | 4,700 | 300 |
| 20 | 500 × 19 = 9,500 | 200 | 9,700 | 300 |
تبقى الإجابة بالطول نفسه، لكن إدخال الدور 20 يقارب خمسين ضعف إدخال الدور 1. الإخراج لا ينمو؛ الإدخال هو الذي ينمو.
الآن الإجمالي لمحادثة من 20 دورًا. يُعاد إرسال السجل 0، 1، 2 ... 19 مرة بعدد التبادلات، وهو مجموع بسيط:
- التبادلات القديمة المُعاد إرسالها: 500 × 190 = 95,000 رمز (190 هي 0 + 1 + 2 + ... + 19).
- الرسائل الجديدة: 200 × 20 = 4,000 رمز.
- إجمالي إدخال المحادثة: 95,000 + 4,000 = 99,000 رمز.
- إجمالي الإخراج: 300 × 20 = 6,000 رمز.
لو تذكّر النموذج كل شيء مجانًا، لكان الإدخال 200 × 20 = 4,000 رمز فقط. والباقي هو السجل المُعاد إرساله. مضاعفة عدد الأدوار لا تضاعف تكلفة السجل، بل تضاعفها نحو أربع مرات، لأن المجموع ينمو بمربع عدد الأدوار.
كم تكلّف بالأسعار الحية#
إليك المحادثة نفسها من 20 دورًا (99,000 إدخال، 6,000 إخراج) بالأسعار الحالية. الجدول حي ويتحدث عند تغيّر التعرفات؛ والعمود الأخير هو سعر OpenRouter المرجعي للمقارنة.
| النموذج | الإدخال $/1M | الإخراج $/1M | التكلفة | OpenRouter |
|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.0022 | $0.0045 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.0021 | $0.0056 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.0059 | $0.0369 |
99,000 رمز إدخال و6,000 رمز إخراج إجمالًا. الأسعار لكل مليون رمز حالية وتتغير مع تعريفاتنا؛ يعرض عمود OpenRouter أسعارًا مرجعية لنفس حجم العمل.
لفحص سريع نصيًا: على MiniMax-M2.7 تكلّف هذه المحادثة كاملة $0.0059. في محادثة كهذه، حيث يغلب الإدخال، سعر الإدخال هو الأهم: على MiniMax-M2.7 هو أرخص من سعر OpenRouter المرجعي. لكل 1M رمز، MiniMax-M2.7 بسعر $0.05 للإدخال و$0.15 للإخراج.
ثلاث طرق لإبقائها منخفضة#
1. ابدأ محادثة جديدة عند تغيّر الموضوع#
أرخص سجل هو السجل الفارغ. إن انتهيت من تصحيح دالة وتريد الآن وصفة، فمحادثة جديدة ترسل 200 رمز بدل 9,700. في التطبيق هذا زر واحد؛ وفي الكود هو history = []. افعل ذلك كلما لم يعد السياق السابق يفيد السؤال التالي.
2. قلّم السجل#
احتفظ بآخر رسائل قليلة وأسقط الباقي. لنفترض أنك تحتفظ بآخر ثلاثة تبادلات، فلا يتجاوز السجل 500 × 3 = 1,500 رمز:
- الأدوار 1-3 تنمو طبيعيًا: 0 + 500 + 1,000 = 1,500 رمز من السجل.
- الأدوار 4-20 يحمل كل منها الحد الأقصى 1,500: 1,500 × 17 = 25,500 رمز.
- إجمالي السجل: 1,500 + 25,500 = 27,000 رمز، زائد 4,000 من الرسائل الجديدة = 31,000 رمز من الإدخال.
هذا 31,000 بدل 99,000 لنفس العشرين دورًا، وعلى MiniMax-M2.7 يبلغ $0.0025. ثمن التقليم أن النموذج ينسى الجزء المبكر من المحادثة، لذا أبقِ موجه النظام وأي حقائق لا يجوز فقدانها خارج الجزء المقلَّم.
3. استبدل الأدوار القديمة بملخص#
عندما يطول السجل، اطلب من النموذج مرة واحدة تلخيصه، ثم تابع بالملخص بدل النص الكامل. في المثال أعلاه، تسعة تبادلات تساوي 4,500 رمز؛ وملخص بنحو 300 رمز يحمل النقاط الرئيسية إلى الأمام. تدفع مقابل طلب إضافي واحد لكتابة الملخص، وكل طلب لاحق يصبح أخف. هذا يحفظ معنى أكثر من التقليم المجرد، بثمن قليل من التفصيل.
نافذة السياق حد منفصل: تحدّ عدد الرموز التي قد يحملها طلب واحد، بما في ذلك الإجابة. سيصطدم السجل بهذا السقف في النهاية؛ لماذا تتوقف إجابة الذكاء الاصطناعي في منتصف الجملة؟ يشرح ذلك.
شاهده في كودك الخاص#
تحتوي الاستجابة على كائن usage، فيمكنك مراقبة النمو بنفسك. هذا مثال: استبدل المفتاح وخذ معرّف النموذج من توثيق CheapTokens، لأن المعرّفات تختلف بين المزوّدين.
from openai import OpenAI
client = OpenAI(base_url='https://api.cheaptokens.dev/v1', api_key='YOUR_KEY')
system = {'role': 'system', 'content': 'You are a helpful assistant.'}
history = []
KEEP = 7 # new message + last 3 exchanges (6 messages); None keeps everything
def ask(text):
history.append({'role': 'user', 'content': text})
r = client.chat.completions.create(
model='MODEL_ID_FROM_DOCS',
messages=[system] + (history[-KEEP:] if KEEP else history),
)
answer = r.choices[0].message.content
history.append({'role': 'assistant', 'content': answer})
print(r.usage.prompt_tokens, r.usage.completion_tokens)
return answerاستدعِ ask() عدة مرات متتالية واطبع prompt_tokens: مع KEEP = None يصعد في كل دور، ومع KEEP = 7 يستقر. بالنسبة للوكلاء الذين يمرون عبر خطوات كثيرة ينطبق الأثر نفسه على كل خطوة؛ كيف تقدّر تكلفة وكيل ذكاء اصطناعي يوضح كيفية وضع ميزانية لذلك.
أين تشغّل المحادثات الطويلة#
الحوارات الطويلة وحلقات الوكلاء هي بالضبط أحمال العمل التي يغلب فيها حجم الإدخال، لذا تهم كل من نافذة السياق الكبيرة والمساحة للإجابات الطويلة:
- MiniMax-M2.7: سياق 180K، حتى 8,192 رمز لكل إجابة، والإدخال والإخراج كلاهما أرخص من سعر OpenRouter المرجعي.
- DeepSeek-V4-Flash: سياق 380K، حتى 32,768 رمز لكل إجابة، والإخراج أرخص من سعر OpenRouter المرجعي.
لدى CheapTokens رصيد واحد لكل النماذج، وسعر ثابت لكل نموذج بلا ساعات ذروة، وواجهة متوافقة مع OpenAI Chat Completions وAnthropic Messages، لذا يعمل الكود أعلاه بتغيير عنوان URL الأساسي. اشحن الرصيد وأرسل طلبك الأول باتباع طلبك الأول عبر واجهة CheapTokens.



