0Pricing
AI Prompt Engineering · درس

ما تسلسل المطالبات

مفهوم التنفيذ التسلسلي للمطالبات وتمرير المعلومات بينها

ما تسلسل المطالبات درس مجاني في AI Prompt Engineering على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في AI Prompt Engineering، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة AI Prompt Engineering 4 دروس في المجموع.

سقف المطالبة الواحدة

يمكن لمطالبة واحدة إنجاز الكثير، لكنها محدودة. فالمهام المعقدة التي تتطلب مهام فرعية متعددة ومتخصصة، أو سياقًا طويلًا جدًا، أو تحسينًا تكراريًا، غالبًا ما تتجاوز ما يمكن لمطالبة واحدة إنجازه بشكل موثوق.

علامات بلوغك سقف المطالبة الواحدة:

  • يتخطى النموذج خطوات في مهمة متعددة الخطوات
  • تنخفض الجودة في الأجزاء اللاحقة من مهمة طويلة
  • تكون المخرجات طويلة جدًا بحيث لا تتسع لها نافذة سياق واحدة
  • تتطلب أجزاء مختلفة من المهمة خبرات أو نبرات مختلفة

ما هو تسلسل المطالبات؟

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

الخطوة 1 → المخرجات → الخطوة 2 → المخرجات → الخطوة 3 → النتيجة النهائية

يمكن تحسين كل خطوة بشكل مستقل، أو استخدام نماذج مختلفة فيها، أو تطبيق قيود مختلفة.

مثال بسيط على تسلسل المطالبات

لنفترض أنك تكتب منشورًا لمدونة. بدلًا من مطالبة واحدة، صِل ثلاث مطالبات معًا:

import anthropic

client = anthropic.Anthropic(api_key='YOUR_API_KEY')

def call(prompt):
    r = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=1000,
        messages=[{'role': 'user', 'content': prompt}]
    )
    return r.content[0].text

# Step 1: Generate outline
outline = call('Create a 5-point outline for a blog post about prompt engineering for beginners.')

# Step 2: Expand outline into draft
draft = call(f'Write a full blog post based on this outline:\n\n{outline}')

# Step 3: Edit for clarity
final = call(f'Edit this blog post for clarity and conciseness. Remove jargon:\n\n{draft}')

print(final[:500])

متى يفيد التسلسل: تعقيد المهمة

يتفوق التسلسل عندما تكون المهمة معقدة أكثر من أن تتعامل معها مطالبة واحدة بجودة عالية. يتيح تقسيم التعقيد إلى خطوات متخصصة لكل خطوة التفوق في مهمتها المحددة.

مثال: تحليل ملاحظات العملاء على نطاق واسع

  • الخطوة 1: استخراج جميع المشكلات المذكورة (استخراج)
  • الخطوة 2: تصنيف كل مشكلة (تصنيف)
  • الخطوة 3: تحديد الأولويات حسب التكرار والشدة (ترتيب)
  • الخطوة 4: كتابة ملخص تنفيذي (تركيب)

تستخدم كل خطوة مطالبة مركزة ومحسّنة لمهمتها الفرعية.

متى يفيد التسلسل: الجودة من خلال التخصص

تتفوق المطالبات المتخصصة على المطالبات العامة في مهامها الفرعية المحددة. يتيح لك التسلسل استخدام نمط المطالبة المناسب لكل مرحلة:

# Each step uses a prompt optimized for its role

step1_prompt_template = '''
<task>Extract all named entities from the text below. Return JSON:
{"people": [], "companies": [], "locations": []}</task>
<text>{text}</text>
'''

step2_prompt_template = '''
<task>For each company in the list below, classify it as:
startup, enterprise, government, or nonprofit.
Return JSON: [{"company": str, "type": str}]</task>
<companies>{companies}</companies>
'''

# Each prompt is simpler, more focused, and easier to debug
# than a single prompt trying to do both tasks at once.
print('Specialized prompts per step.')

متى يفيد التسلسل: حدود نافذة السياق

حتى مع نوافذ السياق الكبيرة (أكثر من 100K رمز)، تؤدي معالجة المستندات الطويلة جدًا دفعة واحدة إلى تراجع الجودة بسبب تأثير الضياع في المنتصف. ويوفر التسلسل حلًا لذلك:

  • الخطوة 1: معالجة كل جزء بشكل مستقل → إنتاج ملخص أو عملية استخراج لكل جزء
  • الخطوة 2: دمج مخرجات الأجزاء → تركيب إجابة نهائية

يُعد نمط map-reduce هذا استراتيجية أساسية للتسلسل عند التعامل مع المستندات الطويلة.

def map_reduce_summarize(document, chunk_size=3000):
    chunks = [document[i:i+chunk_size] for i in range(0, len(document), chunk_size)]

    # Map: summarize each chunk
    summaries = []
    for i, chunk in enumerate(chunks):
        summary = call(f'Summarize this section of a document in 3 bullet points:\n\n{chunk}')
        summaries.append(summary)

    # Reduce: synthesize all summaries
    combined = '\n\n'.join(f'Section {i+1}:\n{s}' for i, s in enumerate(summaries))
    final = call(f'Combine these section summaries into a single executive summary:\n\n{combined}')
    return final

التسلسلات المتزامنة مقابل المتوازية

لا تكون التسلسلات خطية دائمًا. إذ يمكن تشغيل بعض الخطوات بالتوازي عندما تكون مستقلة:

import concurrent.futures

def parallel_step(topics):
    # Each topic can be researched in parallel — they do not depend on each other
    def research_topic(topic):
        return call(f'List 5 key facts about: {topic}')

    with concurrent.futures.ThreadPoolExecutor() as executor:
        results = list(executor.map(research_topic, topics))

    # Then synthesize in a sequential step
    combined = '\n\n'.join(f'{t}:\n{r}' for t, r in zip(topics, results))
    synthesis = call(f'Write a comparative analysis of these topics:\n\n{combined}')
    return synthesis

print('Parallel steps can reduce total latency.')

التسلسلات مقابل الوكلاء

ترتبط سلاسل المطالبات والوكلاء المعتمدون على الذكاء الاصطناعي، لكنهما مختلفان:

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

بالنسبة إلى معظم حالات الاستخدام في بيئات الإنتاج، ابدأ بالسلاسل. ولا تستخدم الوكلاء إلا عندما تكون المهمة مفتوحة النهاية فعلًا ولا يمكن تحديد بنية السلسلة مسبقًا.

اعتبارات التكلفة في السلاسل

كل خطوة في السلسلة هي استدعاء API منفصل له تكلفته الخاصة. صمّم السلاسل مع مراعاة التكلفة:

  • استخدم نماذج أرخص وأصغر للخطوات البسيطة (الاستخراج والتصنيف)
  • وفّر النماذج المكلفة (GPT-4o وClaude Opus) للخطوات التي تتطلب استدلالًا عالي المستوى
  • خزّن النتائج الوسيطة مؤقتًا لتجنب إعادة تشغيل الخطوات المكلفة للمدخلات المتطابقة
  • افشل بسرعة — تحقّق من مخرجات كل خطوة قبل تمريرها إلى الخطوة التالية
import anthropic
import functools

client = anthropic.Anthropic(api_key='YOUR_API_KEY')

@functools.lru_cache(maxsize=128)
def cached_call(prompt, model='claude-haiku-4-5'):
    r = client.messages.create(
        model=model,
        max_tokens=500,
        messages=[{'role': 'user', 'content': prompt}]
    )
    return r.content[0].text

# Cheap model for extraction, expensive for synthesis
def smart_chain(text):
    entities = cached_call(f'Extract entities from: {text}', model='claude-haiku-4-5')
    synthesis = cached_call(f'Analyze these entities: {entities}', model='claude-opus-4-5')
    return synthesis

توثيق سلسلتك

تكون السلسلة الموثقة جيدًا سهلة الصيانة. استخدم بنية بسيطة لوصف كل خطوة:

chain_spec = {
    'name': 'Blog Post Generator',
    'steps': [
        {
            'id': 'step_1',
            'name': 'Outline Generation',
            'model': 'claude-haiku-4-5',
            'input': 'topic (string)',
            'output': 'outline (string, 5 bullet points)',
            'prompt_template': 'outline_prompt.txt'
        },
        {
            'id': 'step_2',
            'name': 'Draft Writing',
            'model': 'claude-opus-4-5',
            'input': 'outline from step_1',
            'output': 'draft (string, ~800 words)',
            'prompt_template': 'draft_prompt.txt'
        },
        {
            'id': 'step_3',
            'name': 'Editorial Polish',
            'model': 'claude-haiku-4-5',
            'input': 'draft from step_2',
            'output': 'final post (string)',
            'prompt_template': 'polish_prompt.txt'
        }
    ]
}

print('Chain documented with step specs.')

سلسلة واقعية: التحليل التنافسي

سلسلة عملية من ثلاث خطوات للتحليل التنافسي:

def competitive_analysis_chain(competitor_list, product_description):
    # Step 1: Research each competitor (parallel)
    def research(competitor):
        return call(f'List key features, pricing model, and target market for: {competitor}')

    with concurrent.futures.ThreadPoolExecutor() as ex:
        research_results = dict(zip(competitor_list, ex.map(research, competitor_list)))

    # Step 2: Compare against our product
    comparison_input = '\n\n'.join(f'{k}:\n{v}' for k, v in research_results.items())
    comparison = call(f'Compare these competitors against our product:\nOur product: {product_description}\n\nCompetitors:\n{comparison_input}')

    # Step 3: Strategic recommendations
    recommendations = call(f'Based on this competitive analysis, provide 3 strategic recommendations:\n\n{comparison}')
    return recommendations

تحقق سريع

أي سيناريو يناسب استخدام تسلسل المطالبات أكثر من استخدام مطالبة واحدة؟

تسلسل المطالبات — الخلاصات الأساسية

يُعد تسلسل المطالبات أساس أنظمة الذكاء الاصطناعي في بيئات الإنتاج:

  • تنفيذ متتابع تصبح فيه مخرجات كل مطالبة مدخلًا للمطالبة التالية
  • يتيح التخصص — إذ تستخدم كل خطوة مطالبة محسّنة لمهمتها الفرعية المحددة
  • يحل مشكلة حدود نافذة السياق باستخدام أنماط map-reduce
  • يمكن تشغيل الخطوات المستقلة بالتوازي لتقليل زمن الاستجابة
  • أكثر قابلية للتنبؤ وتصحيح الأخطاء من الأنظمة الوكيلة بالكامل
  • حسّن التكاليف باستخدام نماذج أرخص للخطوات البسيطة ونماذج مكلفة للاستدلال المعقد
  • وثّق سلسلتك دائمًا باستخدام معرّفات الخطوات ومواصفات المدخلات والمخرجات وتعيينات النماذج

الأسئلة الشائعة

هل درس «ما تسلسل المطالبات» مجاني؟

نعم — نص درس «ما تسلسل المطالبات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة AI Prompt Engineering، انتقل إلى CoddyKit PRO. تتضمن دورة AI Prompt Engineering 4 دروس في المجموع.

ماذا ستتعلم في «ما تسلسل المطالبات»؟

مفهوم التنفيذ التسلسلي للمطالبات وتمرير المعلومات بينها تتمرن على AI Prompt Engineering مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ AI Prompt Engineering؟

لا تُشترط خبرة سابقة. AI Prompt Engineering على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «ما تسلسل المطالبات»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس AI Prompt Engineering هذا؟

نعم. كل درس في AI Prompt Engineering يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. ما تسلسل المطالبات
  2. أنماط تحويل المخرجات إلى مدخلات
  3. سلاسل التحويل التسلسلية
  4. معالجة الأخطاء في سلاسل المطالبات
← العودة إلى AI Prompt Engineering