عند تطوير تطبيقات نماذج اللغة الكبيرة (LLM)، يكمن الفرق غالبًا بين نموذج أولي ونظام جاهز للإنتاج في عنصر محدد واحد: أمر النظام. على عكس أوامر المستخدم، التي تكون عابرة ومحددة بالسياق، تعمل أوامر النظام كإطار دستوري لسلوك الذكاء الاصطناعي. فهي تحدد الشخصية، والقيود، والحدود التشغيلية التي تضمن الاتساق عبر آلاف التفاعلات.
بالنسبة للمطورين من المستوى المتوسط إلى المتقدم، يعد تجاوز تعليمات "تصرف كـ X" البسيطة أمرًا بالغ الأهمية. يجب أن يتعامل أمر النظام القوي مع الحالات الحدية، ويفرض تنسيقات مخرجات صارمة، ويخفف من الهلوسة (Hallucinations). تستكشف هذه المقالة المكونات المعمارية لأوامر النظام الفعالة وتوفر أنماطًا عملية للتنفيذ.
تحديد الهوية والنطاق
الخطوة الأولى هي إنشاء هوية واضحة. ومع ذلك، لا يتعلق الأمر فقط بتقمص الأدوار؛ بل يتعلق بتحديد نطاق معرفة النموذج وحدوده السلوكية. يجب عليك بيان ما هو النموذج بوضوح، وبشكل equally مهم، ما هو ليس.
فكّر في روبوت دعم. بدون تعريف صارم للنطاق، قد ينحرف النموذج إلى تقديم نصائح عامة أو حتى توصيات مالية، مما قد يشكل مخاطر قانونية. من خلال تحديد القيود السلبية، تقلل من مساحة الخطأ.
SYSTEM_PROMPT = """
أنت وكيل دعم تقني خبير لواجهة برمجة تطبيقات Python الخاصة بشركة Acme Corp.
## الهوية
- النبرة: احترافية، متعاطفة، ومختصرة.
- الدور: استكشاف أخطاء مشاكل الشرح وشرح استخدام الواجهة البرمجية (API).
## القيود
- يجب أن تناقش فقط واجهة برمجة تطبيقات Python الخاصة بشركة Acme Corp.
- إذا سأل مستخدم عن لغات أو مكتبات أخرى، ارفض بلطف واقترح التحقق من التوثيق الرسمي.
- لا تختلق أكواد أخطاء أو نقاط نهاية API أبدًا. إذا لم تكن تعرف الإجابة، فاذكر ذلك بوضوح وقم بالتصعيد إلى وكيل بشري.
"""
الهيكلية من أجل قابلية التنبؤ
نماذج اللغة الكبيرة حساسة للهيكل. استخدام عناوين Markdown، والنقاط، والفواصل الواضحة داخل أمر النظام يساعد النموذج على تحليل التعليمات بشكل أكثر فعالية. وهذا مهم بشكل خاص عند طلب تنسيقات مخرجات محددة، مثل JSON.
إذا كان تطبيقك يعتمد على تحليل البيانات المهيكلة، فيجب أن يعرّف أمر النظام المخطط (Schema) بوضوح. الغموض هنا يؤدي إلى أخطاء تحليل في نظامك الخلفي. قم دائمًا بتضمين مثال "few-shot" في أمر النظام إذا كان تنسيق المخرجات معقدًا.
SYSTEM_PROMPT = """
حلل سجل المستخدم وتصنيف المشكلة.
## تنسيق المخرجات
أعد JSON صالح فقط مع المخطط التالي:
{
"severity": "low" | "medium" | "high",
"category": "auth" | "database" | "network" | "unknown",
"summary": "ملخص موجز من جملة واحدة للمشكلة"
}
## أمثلة
الإدخال: "فشل الاتصال بقاعدة البيانات على المنفذ 5432"
الإخراج: {"severity": "high", "category": "database", "summary": "انتهاء مهلة الاتصال بمنفذ قاعدة البيانات."}
الإدخال: "رفض محاولة تسجيل الدخول للمستخدم 1234"
الإخراج: {"severity": "medium", "category": "auth", "summary": "فشل المصادقة للمستخدم 1234."}
"""
السياق الديناميكي والتسلسل
أوامر النظام الثابتة قوية، لكن الديناميكية أكثر مرونة. في التطبيقات المعقدة، قد تقوم بحقن متغيرات ديناميكية في أمر النظام باستخدام محركات القوالب (مثل Jinja2 في Python). يتيح لك ذلك تعديل سلوك النموذج بناءً على مستويات المستخدمين، أو الوقت الحالي، أو السياق المسترجع (RAG).
from string import Template
template_str = """
أنت مساعد لـ $user_role.
التاريخ الحالي: $current_date
السياق: $retrieved_documents
أجب على استفسار المستخدم باستخدام السياق المقدم. إذا لم يحتوي السياق على الإجابة، فقل "لا أعرف".
"""
def build_system_prompt(user_role, current_date, retrieved_docs):
template = Template(template_str)
return template.safe_substitute(
user_role=user_role,
current_date=current_date,
retrieved_documents=retrieved_docs
)
الخلاصة
أوامر النظام هي العمود الفقري لتطبيقات نماذج اللغة الكبيرة الموثوقة. فهي ليست مجرد نص؛ بل هي كود يشكل مسار استدلال النموذج. من خلال تحديد الهوية بدقة، واستخدام تنسيقات مهيكلة، والاستفادة من القوالب الديناميكية، يمكن للمطورين تقليل الهلوسة بشكل كبير وتحسين تجربة المستخدم. عند بناء ميزة الذكاء الاصطناعي التالية، عامل أمر النظام بنفس الصرامة التي تطبقها على عقود الواجهة البرمجية (API): بوضوح، وتحديد، وتكرار.