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

في هذه الصفحة
لقد لصقت نصين في رسالة واحدة وطلبت من النموذج مقارنتهما. ما لم تحدد أيّهما أيّ، فسيتعيّن عليه التخمين. الإصلاح بسيط: أعطِ كل نص اسمًا ومهمة، وغلّف كلًا منهما بوسم خاص به. يوصي دليل كتابة الأوامر من Anthropic (صفحة حيّة، تم التحقق منها في 31 أكتوبر 2026) بوسم كل نوع من المحتوى حتى لا يسيء النموذج فهم ما هو تعليمة وما هو خلفية وما هو مدخل. فيما يلي أمر قبل/بعد وطلب إكمال محادثة جاهز للعمل يمكنك إرساله إلى CheapTokens API.
ما الذي يفسد عندما تلصق فقط#
خذ أبسط حالة. يرسل مورّد وصف منتج جديد، وتريد معرفة ما تغيّر مقارنةً بالوصف الموجود على صفحة متجرك. تلصق كليهما تحت "ما الذي تغيّر؟" وتضغط إرسال. بالنسبة لك الترتيب واضح. أما بالنسبة للنموذج فهما كتلتا نص لا شيء بينهما، والسؤال لا يذكر أيّهما القديم. قد يخمّن صحيحًا. وقد يسمّي النص الجديد القديم ويسلّمك قائمة تغييرات تسير بالاتجاه المعاكس، بنبرة واثقة تمامًا.
الفخ نفسه يختفي في المهام اليومية:
- نسختان من عقد، وتسأل عمّا غيّره الطرف الآخر؛
- ثلاث ملاحظات اجتماعات، وتسأل أي القرارات تتناقض مع بعضها؛
- نموذج أسلوب مع مسودة: أيّهما تقلّد وأيّهما تعيد كتابته؟
- سجل أخطاء ملصوق مع الكود، والسؤال هو "أصلح هذا".
في كل منها يحتاج النموذج شيئين لكل نص: اسمًا (ما هو ومن أين جاء) ودورًا (ما تريد فعله به).
أعطِ كل نص اسمًا ومهمة#
ثلاث خطوات صغيرة:
- ضع كل نص في وسمه الخاص. يقترح دليل Anthropic غلافًا
<documents>مع<document index="1">واحد لكل نص، وداخله<source>للاسم و<document_للنص نفسه.content> - قل ما هو كل واحد في التعليمة، خارج الوسوم: "المستند 1 هو النص القديم من متجرنا. المستند 2 هو النص الجديد من المورّد."
- اطرح السؤال بالكلمات نفسها. "اسرد كل حقيقة تغيّرت، بصيغة قديم -> جديد" أصبح له الآن قديم وجديد يمكن الإشارة إليهما.
إليك مثال الزجاجة قبل وبعد:
قارن
الطلب نفسه، قبل وبعد
قبل
What changed?
Steel water bottle, 500 ml. Keeps drinks cold for 12 hours. Dishwasher safe.
Steel water bottle, 750 ml. Keeps drinks cold for 24 hours. Hand wash only.بعد
Document 1 is the OLD text from our shop. Document 2 is the NEW text from the supplier. List every fact that changed, one per line, as old -> new.
<documents>
<document index="1">
<source>old description (current shop page)</source>
<document_content>
Steel water bottle, 500 ml. Keeps drinks cold for 12 hours. Dishwasher safe.
</document_content>
</document>
<document index="2">
<source>new description (from the supplier)</source>
<document_content>
Steel water bottle, 750 ml. Keeps drinks cold for 24 hours. Hand wash only.
</document_content>
</document>
</documents>
تكلّف التسميات بضعة رموز وتزيل التخمين. كتبت Anthropic هذه النصيحة لنماذج Claude الخاصة بها، لكن التسميات نص عادي، فلا شيء يمنعك من إرسال التخطيط نفسه إلى نموذج محادثة آخر.
أرسله كطلب حقيقي#
إليك أمر "بعد" كاستدعاء API. العنوان هو https:/، والـ API متوافق مع OpenAI، والنموذج هو deepseek-. خذ معرّفات النماذج من وثائق CheapTokens: الأسماء تختلف بين المزوّدين. يمتلك DeepSeek-V4-Flash نافذة سياق 380K وما يصل إلى 32,768 رمز إخراج لكل إجابة، ما يترك متسعًا لكمية من النصوص الطويلة. يأتي المفتاح من متغير بيئة، لا من الكود أبدًا.
الطلب نفسه في أداتين
Python
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.cheaptokens.dev/v1",
api_key=os.environ["CHEAPTOKENS_API_KEY"],
)
old = "Steel water bottle, 500 ml. Keeps drinks cold for 12 hours. Dishwasher safe."
new = "Steel water bottle, 750 ml. Keeps drinks cold for 24 hours. Hand wash only."
prompt = f"""Document 1 is the OLD text from our shop. Document 2 is the NEW text from the supplier. List every fact that changed, one per line, as old -> new.
<documents>
<document index="1">
<source>old description (current shop page)</source>
<document_content>
{old}
</document_content>
</document>
<document index="2">
<source>new description (from the supplier)</source>
<document_content>
{new}
</document_content>
</document>
</documents>"""
response = client.chat.completions.create(
model="deepseek-ai/DeepSeek-V4-Flash-0731",
messages=[{"role": "user", "content": prompt}],
max_tokens=300,
)
print(response.choices[0].message.content)
print(response.usage)curl
curl https://api.cheaptokens.dev/v1/chat/completions \
-H "Authorization: Bearer $CHEAPTOKENS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-ai/DeepSeek-V4-Flash-0731",
"max_tokens": 300,
"messages": [{
"role": "user",
"content": "Document 1 is the OLD text from our shop. Document 2 is the NEW text from the supplier. List every fact that changed, one per line, as old -> new.\n\n<documents>\n<document index=\"1\">\n<source>old description (current shop page)</source>\n<document_content>\nSteel water bottle, 500 ml. Keeps drinks cold for 12 hours. Dishwasher safe.\n</document_content>\n</document>\n<document index=\"2\">\n<source>new description (from the supplier)</source>\n<document_content>\nSteel water bottle, 750 ml. Keeps drinks cold for 24 hours. Hand wash only.\n</document_content>\n</document>\n</documents>"
}]
}'الرد نص عادي في choices[0].، وusage بجانبه يعدّ الرموز. الإجابة الجيدة تسرد ثلاثة تغييرات: 500 ml -> 750 ml، و12 hours -> 24 hours، وdishwasher safe -> hand wash only. إذا سارت الأسهم في الاتجاه الآخر، فقد النموذج تتبّع التسميات. تحقق من أن التعليمة تسمّي المستندات بالأسماء نفسها التي تستخدمها الوسوم.
ماذا تكلّف التسميات#
الوسوم نص، والنص يُحتسب. لنفترض أن قائد فريق يُدخل ثلاث ملاحظات اجتماعات بحجم 2,000 رمز تقريبًا لكل منها ويسأل أي القرارات تتناقض. ثلاث ملاحظات: 3 × 2,000 = 6,000 رمز. أضف نحو 150 رمزًا للتعليمة والوسوم (افتراض) فيحمل الطلب 6,150 رمزًا داخلاً، مع إجابة من 300 رمز خارجًا. على DeepSeek-V4-Flash يكلّف هذا الطلب الواحد $0.00012، والوسوم نفسها خطأ تقريب مهمل بجانب الملاحظات. إليك الطلب نفسه مُرسلًا 1,000 مرة، مع OpenRouter إلى جانبه:
| النموذج | الإدخال $/1M | الإخراج $/1M | لكل طلب | 1,000 طلبات | OpenRouter، 1,000 طلبات |
|---|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.00014 | $0.135 | $0.231 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.00012 | $0.122 | $0.473 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.00035 | $0.353 | $4.23 |
6,150 رمز إدخال و300 رمز إخراج لكل طلب. الأسعار لكل مليون رمز حالية وتتغير مع تعريفاتنا؛ يعرض عمود OpenRouter أسعارًا مرجعية لنفس حجم العمل.
تتسع كل الرموز الـ 6,150 داخل نافذة 380K مع متسع فائض (ما هي نافذة السياق). محسوبًا بالإجمالي، المدخل والمخرج معًا، يخرج الطلب أرخص من OpenRouter. يُحتسب المدخل والمخرج بمعدلين مختلفين، ورموز المدخل مقابل المخرج يشرح السبب. الأرقام الحالية لكل نموذج على صفحة الأسعار.
عادات لكميات أكبر من النصوص#
بمجرد أن يصبح هناك أكثر من نصين، لا تكفي الأرقام وحدها: يحتاج كل واحد إلى اسمه الخاص. تُظهر الصورة أدناه التخطيط من المثال: التعليمة مع السؤال أولًا، ثم كل مستند في وسمه الخاص.

- سمِّ بالمحتوى، لا بالرقم وحده.
<source>contract v2, sent by the client</يتفوق علىsource> document 2عندما تقتبس الإجابة الاسم عليك. - أبقِ تعليمتك خارج الوسوم، حتى لا يُؤخذ سطر داخل نص ملصوق على أنه أمر.
- نص واحد، وسم واحد. الملف الطويل يبقى وسمًا واحدًا؛ والملفان وسمان.
- أعد استخدام الأسماء في السؤال: "أي القرارات في monday-notes تتناقض مع wednesday-notes؟"
- أعطِ الأمثلة أدوارًا أيضًا. "المستند 1 نموذج أسلوب: انسخ نبرته، لا حقائقه. المستند 2 هو المسودة المراد إعادة كتابتها."
جرّب بنفسكجرّب: لديك سجل أخطاء والكود الذي أنتجه في أمر واحد. ماذا تضيف إلى كل منهما؟إظهار الإجابة
اسمًا ومهمة. للسجل: <source>error log from the last run</ مع "هذا هو العَرَض، لا تعدّله". وللكود: <source>app. مع "هذا ما يجب إصلاحه". ثم اطلب الإصلاح بهذين الاسمين.
لأساسيات بقية الأمر (الهدف، السياق، التنسيق)، راجع كيف تكتب أمرًا جيدًا.



