الگوهای طراحی پرامپت: زنجیرهسازی پرامپت (Prompt Chaining) چیست و چرا اهمیت دارد؟
زنجیرهسازی پرامپت (Prompt Chaining) یکی از الگوهای مهم (Design Pattern) کار با مدلهای زبانی بزرگ (LLM) است. در این روش به جای نوشتن یک پرامپت طولانی برای حل یک مسئله پیچیده، کار به چند بخش کوچکتر تقسیم میشود. هر بخش با یک پرامپت جداگانه حل میگردد و خروجی هر مرحله به مرحله بعد منتقل میشود.
این کار باعث افزایش دقت، کاهش خطا و مدیریت سادهتر فرآیند میشود.

چرا یک پرامپت واحد کافی نیست؟
استفاده از یک پرامپت واحد برای مسائل پیچیده معمولا مشکلات زیر را به همراه دارد:
- نادیده گرفتن بخشی از دستورها
- از دست دادن زمینه (context)
- انتشار خطا در مراحل بعدی
- محدودیت پنجره context
- افزایش hallucination
با استفاده از زنجیرهسازی پرامپت، مسئله سادهتر و خروجی مدل قابل اعتمادتر خواهد شد.
ساختار زنجیرهسازی پرامپت
سه اصل کلیدی در این الگو:
۱. Sequential Decomposition
شکستن کار به مراحل متوالی (مثلا: خلاصهسازی → شناسایی ترندها → نوشتن ایمیل).
۲. Structured Output
تعیین خروجی استاندارد (مثل JSON) برای جلوگیری از ابهام.
۳. Role Assignment
دادن نقش مشخص به مدل در هر مرحله (تحلیلگر بازار، نویسنده گزارش، و غیره).

مثال کاربردی: تحلیل گزارش بازار
مرحلهها:
- خلاصهسازی گزارش
- شناسایی ترندها و دادههای پشتیبان
- نوشتن یک ایمیل برای تیم مارکتینگ
خروجی نمونه در قالب JSON:
{
"trends": [
{
"trend_name": "AI-Powered Personalization",
"supporting_data": "۷۳٪ از مشتریان ترجیح میدهند با برندهایی تعامل کنند که تجربه خرید را شخصیسازی میکنند."
},
{
"trend_name": "Sustainable and Ethical Brands",
"supporting_data": "فروش محصولات با ادعاهای ESG طی پنج سال گذشته ۲۸٪ رشد داشته است."
}
]
}
این روش باعث میشود دادهها بدون ابهام به مرحله بعد منتقل شوند.
کد نمونه با LangChain
در ادامه یک مثال ساده از زنجیرهسازی پرامپت با LangChain:
import os
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
llm = ChatOpenAI(temperature=0)
# Prompt 1: استخراج مشخصات
prompt_extract = ChatPromptTemplate.from_template(
"Extract the technical specifications from the following text:\n\n{text_input}"
)
# Prompt 2: تبدیل به JSON
prompt_transform = ChatPromptTemplate.from_template(
"Transform the following specifications into a JSON object with 'cpu', 'memory', and 'storage' as keys:\n\n{specifications}"
)
# زنجیره
extraction_chain = prompt_extract | llm | StrOutputParser()
full_chain = (
{"specifications": extraction_chain}
| prompt_transform
| llm
| StrOutputParser()
)
input_text = "The new laptop model features a 3.5 GHz octa-core processor, 16GB of RAM, and a 1TB NVMe SSD."
final_result = full_chain.invoke({"text_input": input_text})
print("\n--- Final JSON Output ---")
print(final_result)
در این کد ابتدا مشخصات فنی از متن استخراج میشوند و سپس به JSON تبدیل میگردند.
Context Engineering در برابر Prompt Engineering
علاوه بر زنجیرهسازی پرامپت، مفهومی به نام Context Engineering نیز وجود دارد.
- Prompt Engineering: تمرکز روی نگارش پرامپت
- Context Engineering: ساخت محیط اطلاعاتی شامل system prompt، دادههای خارجی (مثل API)، و تاریخچه تعاملات
این رویکرد کمک میکند مدل خروجیهای کاربردیتر و شخصیسازیشدهتر تولید کند.

جمعبندی
- زنجیرهسازی پرامپت روشی برای مدیریت کارهای پیچیده LLM است.
- با تقسیم کار به مراحل ساده، دقت و کیفیت خروجی بهبود مییابد.
- این الگو پایهای برای توسعهی Agentic AI و سیستمهای چندمرحلهای است.

منابع

دیدگاهتان را بنویسید