سلوك أمر النظام — أين يصغي كل نموذج بأقصى انتباه
دليل النقل — تنقل prompt بين الـvendors إزاي
كتبت prompt شغّال على نموذج واحد. المخرج بالظبط زي ما إنت محتاج. الفريق بتاعك دلوقتي بيطلب منك تدعم نموذج تاني — للتكلفة، للـredundancy، للـcompliance، أو لأي سبب من أسباب فرق الـengineering الحقيقية اللي بتعيد توازن الـproviders. الإجابة الساذجة هي "ابعت نفس الـprompt للنموذج الجديد". الإجابة التجريبية، بعد دروس الـmodules 1 و 2، إن نفس الـprompt ما بيطلّعش نفس المخرج.
الدرس ده هو الـpatch list. لما تنقل prompt من Claude لـGPT أو Gemini، دي الحركات اللي بتشتغل بشكل ثابت.
لما تنقل من Claude لـGPT-4o-mini
أكتر quirk ثابت في GPT-4o-mini هو التطوّع الزيادة. بيضيف subject lines، signatures، مقدمات "I hope you are doing well"، وتعليقات في الآخر ما طلبتهاش. الـpatch إنك تبقى صريح في الحذف، مش بس في الإضافة.
في الـprompt بتاعك، استبدل تعليمات ناعمة زي "Output only the email body" بحاجة صارمة: "Output only the email body. Do not include a subject line. Do not include sign-off. Do not include any meta-commentary." على مهمة نبرة، ضيف: "Do not add salutations like 'I hope you are doing well'."
GPT-4o-mini كمان بيميل يلفّ الـstructured output في markdown fences حتى لو اتقاله ما يعملش. هتشوف ده في الـmodule 3. الـmitigation: لما تـparse المخرج، اقطع الـfences الأول والآخر قبل JSON-decoding بدل ما تثق في النموذج.
لما تنقل من Claude لـGemini 2.5 Flash
quirk الـGemini Flash الأبرز في الـlive captures هو التقطّع تحت prompts بقيود كتير. لو الـprompt بتاعك على Claude فيه 4 قواعد صارمة، Gemini أحياناً هيلتزم بواحدة ويوقف. الـpatch هو تقليل عدد القيود، مش تكرارها.
اتنقل من "Follow rules 1, 2, 3, 4" لتعليمة واحدة محكمة. استبدل "Use exactly 3 lines, each starting with a different vowel in alphabetical order, mention coffee once, no line over 60 characters" بـ"Three lines. Each line starts with a different vowel. Mention coffee in line 2. Keep lines under 60 chars." نفس المحتوى، معاد هيكلته بحيث يبقى الوزن متساوي بدل ما يبقى متداخل.
كمان: على Flash، ارفع max_output_tokens لـ1024 على الأقل. pattern التقطّع في الـcaptures بتاعت الكورس ده بيبان متسق مع وصول لحد مخفي للـoutput. سقف أعلى مش هيصلّح كل الفشل بس هيلغي class واحد منه.
لما تنقل من GPT لـClaude
المشكلة العكسية. Claude غالباً بيطلّع أكتر من GPT لنفس الـprompt أصل defaults Claude أشمل. لو الكود ورا متوقّع شكل GPT (مختصر، مضبوط)، قول لـClaude بصراحة: "Maximum N words" أو "Maximum N bullet points". Claude بيلتزم بقيود العدّ بشكل موثوق — اديه واحد.
Claude كمان أحياناً بيلفّ مخرجات strict-JSON في markdown fence (هتشوف ده في الـmodule 3 درس 1). نفس الـmitigation زي GPT: اقطع الـfences قبل الـparsing بدل ما تثق في النموذج.
قاعدة عامة
النقل مش search-and-replace. النقل يعني تعيد قراية الـprompt بتاعك وأنماط فشل النموذج المستهدف في دماغك، وبعدين تشدّ اللغة لحد ما القيود تنزل. 3 captures جنب بعض، زي اللي قريتها في الـmodule ده، هي أسرع طريقة تشوف بيها أنهي قيود اللي بتقع.
الـmodule الجاي: structured output عبر الـvendors — JSON و function calling والـschemas اللي كل API بيقبلها فعلاً. :::
سجّل الدخول للتقييم