العودة إلى المدونة

RAG والبياناتدليل

كم يكلف سؤال RAG: كم عدد القطع التي يجب إرسالها

قدّر التوكنات في سؤال RAG واحد، وشاهد تكلفة 1,000 و100,000 سؤال بأسعار حية، واختر عدد القطع الذي يناسب ميزانيتك.

بواسطة CheapTokens Teamنُشر في 5 دقيقة قراءة

رسم تخطيطي: سؤال وقطع مسترجعة تتدفق إلى النموذج، التكلفة تعتمد على عدد القطع
في هذه الصفحة
  1. ما الذي يدخل في طلب RAG واحد
  2. تكلفة 1,000 سؤال
  3. Top-k: كل قطعة تضيف نفس المقدار
  4. المستند كله في الموجه، أم أربع قطع
  5. أرسل الطلب
  6. أربع طرق لتقليص الإدخال

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

هذا الدليل يحسب طلبًا واحدًا، ويسعّر 1,000 و100,000 طلب بأسعار حية، ويوضح ما يتغير عند نقل top-k من 3 إلى 10. الاسترجاع نفسه (مخزن المتجهات الخاص بك، وتقسيمك للقطع) يبقى على جانبك؛ فقط استدعاء التوليد النهائي يذهب إلى واجهة برمجة النماذج. إذا كانت فاتورة الإدخال والإخراج جديدة عليك، ابدأ بـ توكنات الإدخال مقابل الإخراج.

ما الذي يدخل في طلب RAG واحد#

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

  • موجه نظام: "أجب فقط من السياق. إذا لم يكن موجودًا، قل ذلك." — حوالي 300 توكن بعد إضافة قواعد التنسيق؛
  • السؤال مع قليل من سياق المحادثة — حوالي 200 توكن؛
  • 5 قطع بحوالي 500 توكن لكل منها — 5 × 500 = 2,500 توكن؛
  • الإجابة: فقرتان أو ثلاث قصيرة — حوالي 300 توكن إخراج.

جانب الإدخال هو 2,500 + 300 + 200 = 3,000 توكن، وجانب الإخراج حوالي 300. هذه افتراضات المؤلف لروبوت دعم نموذجي؛ استبدلها بأرقامك. كل ما يلي يستخدم هذا الطلب الواحد كوحدة.

الطريقة السريعة لرؤية الشكل: القطع تشكل حوالي خمسة أسداس الإدخال بأكمله، والإدخال عشرة أضعاف الإجابة. جرّب التقدير بنفسك:

خمّن الرقم

كم عدد توكنات الإدخال التي يرسلها الطلب أعلاه؟

إظهار الإجابة

الإجابة: 3,000

3,000: 5 قطع × 500 = 2,500، بالإضافة إلى 300 لموجه النظام و200 للسؤال. القطع هي المهيمنة.

تكلفة 1,000 سؤال#

طلب واحد صغير جدًا لتشعر به، لذا قم بقياسه. مع 3,000 توكن إدخال و300 إخراج، ترسل 1,000 سؤال 3,000,000 توكن إدخال وتولد 300,000 توكن إخراج. اسحب أشرطة التمرير أدناه لتطابق روبوتك؛ يعيد الموقع الحساب بأسعار حية لكل نموذج.

حاسبة التكلفة

يوم واحد من روبوت دعم

رموز الإدخال لكل طلب: 3,000 · رموز الإخراج لكل طلب: 300 · الطلبات يوميًا: 1,000

النموذجيوميًاشهريًا
GLM-5.3-Flash$0.072$2.16
DeepSeek-V4-Flash$0.075$2.25
MiniMax-M2.7$0.195$5.85

يعرض الجدول نفس عبء العمل لجميع النماذج الثلاثة، مع مرجع OpenRouter بجانبه. محسوبًا بالإجمالي، مع الإدخال والإخراج معًا، يخرج كل منها أرخص من OpenRouter هنا.

النموذج لكل طلب 1,000 طلبات OpenRouter، 1,000 طلبات
GLM-5.3-Flash $0.000072 $0.072 $0.147
DeepSeek-V4-Flash $0.000075 $0.075 $0.19
MiniMax-M2.7 $0.0002 $0.195 $1.26

3,000 رمز إدخال و300 رمز إخراج لكل طلب. الأسعار لكل مليون رمز حالية وتتغير مع تعريفاتنا؛ يعرض عمود OpenRouter أسعارًا مرجعية لنفس حجم العمل.

وعند 100,000 سؤال؟ هذا 300,000,000 توكن إدخال و30,000,000 إخراج. على DeepSeek-V4-Flash هذا $7.50، وعلى GLM-5.3-Flash $7.20، وعلى MiniMax-M2.7 $19.50. الأسعار ثابتة لكل نموذج، بدون ساعات ذروة، لذا تكلفة دفعة ليلية ومحادثة نهارية هي نفسها لكل توكن. راجع قائمة الأسعار الكاملة على صفحة الأسعار.

Top-k: كل قطعة تضيف نفس المقدار#

إليك السيناريو الثاني: مساعد ويكي داخلي. يقترح شخص ما: "لنرسل 10 قطع بدلاً من 3، احتياطًا." ينمو الإدخال في خط مستقيم: كل قطعة هي 500 توكن إضافية في كل طلب.

ثلاث قطع مقابل عشر: نفس السؤال، حجم إدخال مختلف
توكنات الإدخال لكل طلب عند top-k 3 وtop-k 10، بافتراض 500 توكن لكل قطعة

2,000 مقابل 5,500 توكن: الإجابة بنفس الطول، لذا الفرق كله في فاتورة مساعد الويكي هو الإدخال. ما إذا كان ذلك يشتري لك إجابة أفضل هو سؤال جودة: بعد النقطة التي يكون فيها المقطع الصحيح موجودًا بالفعل في السياق، تضيف القطع الإضافية في الغالب ضوضاء وتكلفة. طريقة عملية لاختيار k هي أخذ مجموعة من الأسئلة الحقيقية، والتحقق عند أي k يظهر المقطع الصحيح، والتوقف فوق ذلك بقليل.

نافذة السياق هي الحد الآخر. جميع النماذج الثلاثة هنا لديها مساحة كبيرة لـ top-k العادي: 180K توكن لـ MiniMax-M2.7، و380K لـ DeepSeek-V4-Flash و390K لـ GLM-5.3-Flash. تختلف حدود الإخراج: حتى 8,192 توكن لكل إجابة لـ GLM-5.3-Flash وMiniMax-M2.7، وحتى 32,768 لـ DeepSeek-V4-Flash، وهذا مهم إذا كانت إجاباتك تقارير طويلة بدلاً من ردود قصيرة.

اختر حالتك

ما هي حالة RAG الخاصة بك؟

إجابات قصيرة من بضع قطع

روبوت دعم أو أسئلة شائعة مع top-k من 3–6 وإجابات من بضع مئات من التوكنات تناسب أيًا من النماذج الثلاثة. اختر حسب الجودة على أسئلتك، ثم دع جدول التكلفة أعلاه يقرر.

إجابات طويلة وملخصات

إذا كانت الإجابات تصل إلى آلاف التوكنات، يسمح DeepSeek-V4-Flash بما يصل إلى 32,768 توكن إخراج لكل إجابة وسياق 380K.

مستندات كثيرة لكل طلب

إذا كنت تريد دمج مقاطع كثيرة أو أقسام كاملة، فإن GLM-5.3-Flash لديه أكبر سياق من الثلاثة، 390K.

المستند كله في الموجه، أم أربع قطع#

السيناريو الثالث: أسئلة وأجوبة العقود. النسخة الكسولة تلصق ملف PDF كامل بـ 30,000 توكن في كل سؤال. نسخة الاسترجاع ترسل السؤال والتعليمات وأربع قطع ذات صلة بحوالي 650 توكن لكل منها، أي حوالي 3,000 توكن إجمالاً. نفس 1,000 سؤال، ونفس إجابات 300 توكن:

تكلفة 1,000 سؤال عقد على DeepSeek-V4-Flash
  • المستند الكامل 30,000 توكن في كل طلب$0.48
  • السؤال والتعليمات و4 قطع مسترجعة، حوالي 3,000 توكن$0.075

المستند الكامل يرسل عشرة أضعاف الإدخال، 30,000 ÷ 3,000 = 10، لنفس السؤال. لا يزال منطقيًا لسؤال واحد لمرة واحدة حول مستند يتناسب مع السياق. بالنسبة لروبوت يجيب طوال اليوم، فهو الخيار الافتراضي المكلف. إذا كان الكثير من هذا الإدخال هو نفس النص في كل مرة، اقرأ عن التخزين المؤقت للموجه.

أرسل الطلب#

أدناه خطوة التوليد. جزء الاسترجاع لك: chunks هو ما أعاده مخزن المتجهات الخاص بك. نفس الكود يعمل مع OpenAI SDK أو curl العادي.

اطرح سؤالاً مع القطع المسترجعة

Python

python
from openai import OpenAI

client = OpenAI(
    base_url="https://api.cheaptokens.dev/v1",
    api_key="YOUR_CHEAPTOKENS_KEY",
)

chunks = ["Chunk 1 text...", "Chunk 2 text...", "Chunk 3 text..."]
context = "\n\n---\n\n".join(chunks)

resp = client.chat.completions.create(
    model="deepseek-ai/DeepSeek-V4-Flash-0731",
    max_tokens=400,
    messages=[
        {"role": "system", "content": "Answer only from the context. If the answer is not there, say so."},
        {"role": "user", "content": f"Context:\n{context}\n\nQuestion: How do I reset two-factor login?"},
    ],
)
print(resp.choices[0].message.content)
print(resp.usage.prompt_tokens, resp.usage.completion_tokens)

curl

bash
curl https://api.cheaptokens.dev/v1/chat/completions \
  -H "Authorization: Bearer YOUR_CHEAPTOKENS_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-ai/DeepSeek-V4-Flash-0731",
    "max_tokens": 400,
    "messages": [
      {"role": "system", "content": "Answer only from the context. If the answer is not there, say so."},
      {"role": "user", "content": "Context:\nChunk 1...\n\nQuestion: How do I reset two-factor login?"}
    ]
  }'

السطر الأخير من مثال Python هو المفيد. usage.prompt_tokens هو إدخالك الحقيقي لكل سؤال؛ قارنه بتقدير 3,000 واستبدل افتراضاتي بأرقامك. استخدم معرف النموذج الكامل، كما في المثال: deepseek-ai/DeepSeek-V4-Flash-0731. المعرفات مدرجة في الوثائق. الإعداد الكامل في الوثائق، وإذا كنت تريد رؤية كيف تتراكم توكنات روبوت عبر حوار، فإن لماذا تكلف محادثة طويلة أكثر يغطي جزء السجل.

أربع طرق لتقليص الإدخال#

ابدأ بـ max_tokens، الذي يحدد الإجابة ويحميك من رد جامح. ثم قلل k إلى أصغر قيمة لا تزال تجد المقطع الصحيح. اجعل القطع أكثر إحكامًا، بحيث تحمل 500 توكن 500 توكن من المعنى وليس رؤوسًا ونصوصًا متكررة. أسقط القطع المكررة قبل الإرسال: مقطعان متطابقان تقريبًا يكلفان ضعفًا ويقولان مرة واحدة. وقس باستخدام usage على حركة المرور الحقيقية، لأن التخمين حول قطع 500 توكن هو مجرد تخمين. لنظرة أوسع على أين تذهب التوكنات في استدعاء API، راجع كم عدد التوكنات التي يستخدمها الطلب.

ضع توكناتك لكل طلب في الحاسبة أعلاه لتسعير روبوتك على النماذج الثلاثة؛ إذا كانت إجاباتك طويلة، فإن DeepSeek-V4-Flash هو أول ما يجب النظر إليه.