AI Copilot چیست؟ آموزش ساخت دستیار هوشمند داخل نرم‌افزار

AI Copilot دستیار هوشمندی است که داخل نرم‌افزار قرار می‌گیرد، اطلاعات همان محیط را درک می‌کند و برای تحلیل، تولید محتوا و انجام سریع‌تر کارها به کاربر کمک می‌کند. در این مقاله یک Copilot عملی با API درواره می‌سازیم.

Share
AI Copilot چیست؟ آموزش ساخت دستیار هوشمند داخل نرم‌افزار

نرم‌افزارهای سنتی از کاربر انتظار دارند منوها، فیلدها، گزارش‌ها و مسیر انجام هر کار را بشناسد. کاربر باید بداند برای تهیه یک گزارش به کدام صفحه برود، چگونه فیلترها را تنظیم کند و اطلاعات موردنیاز را از چند بخش جمع‌آوری کند.

AI Copilot این تجربه را تغییر می‌دهد.

در یک نرم‌افزار مجهز به Copilot، کاربر می‌تواند هدف خود را با زبان طبیعی بیان کند:

فعالیت‌های این مشتری را خلاصه کن و اقدام بعدی مناسب را پیشنهاد بده.

یا:

از اطلاعات این سفارش یک متن رسمی برای پیگیری تأمین‌کننده بنویس.

یا:

علت کاهش فروش این محصول در سه ماه گذشته را بررسی کن.

Copilot اطلاعاتی را که کاربر در حال مشاهده آن است دریافت می‌کند، درخواست را می‌فهمد و پاسخ متناسب با همان محیط تولید می‌کند. در نسخه‌های پیشرفته‌تر، می‌تواند با اجازه کاربر عملی مانند ساخت گزارش، تکمیل فرم یا ثبت پیش‌نویس را نیز انجام دهد.

این مقاله درباره Microsoft Copilot یا GitHub Copilot به‌عنوان یک محصول خاص نیست. هدف، بررسی مفهوم عمومی AI Copilot و روش ساخت یک دستیار هوشمند داخل محصولات نرم‌افزاری با استفاده از API هوش مصنوعی است.

AI Copilot چیست؟

AI Copilot یا «کمک‌خلبان هوش مصنوعی» دستیار هوشمندی است که درون یک نرم‌افزار، وب‌سایت یا اپلیکیشن قرار می‌گیرد و به کاربر در انجام وظایف همان محیط کمک می‌کند.

Copilot معمولاً به این اطلاعات دسترسی دارد:

  • صفحه‌ای که کاربر در حال مشاهده آن است
  • رکورد یا سند انتخاب‌شده
  • نقش و هدف کاربر
  • تاریخچه مرتبط با وظیفه
  • اطلاعات موجود در نرم‌افزار
  • امکانات و عملیات قابل‌اجرای برنامه
  • دستورالعمل‌ها و قواعد کسب‌وکار

برای مثال، یک Copilot در CRM می‌تواند اطلاعات سرنخ، یادداشت جلسات، پیام‌های قبلی و مرحله فعلی قیف فروش را بررسی کند و اقدام بعدی را پیشنهاد دهد.

یک Copilot در نرم‌افزار حسابداری می‌تواند گزارش را توضیح دهد، داده‌های غیرعادی را مشخص کند یا برای مدیر یک خلاصه قابل‌فهم بسازد.

یک Copilot در نرم‌افزار مدیریت پروژه نیز می‌تواند وظایف عقب‌افتاده، موانع و اقدام‌های بعدی را از روی اطلاعات همان پروژه استخراج کند.

چرا به آن Copilot گفته می‌شود؟

واژه Copilot در اصل به کمک‌خلبانی اشاره دارد که کنار خلبان اصلی قرار می‌گیرد. کمک‌خلبان اطلاعات را بررسی می‌کند، پیشنهاد می‌دهد، وظایف مشخصی را انجام می‌دهد و حجم کار را کاهش می‌دهد؛ اما کنترل اصلی همچنان در اختیار خلبان است.

همین مفهوم در محصولات هوش مصنوعی به کار می‌رود:

  • کاربر هدف را تعیین می‌کند.
  • Copilot اطلاعات مرتبط را جمع‌آوری می‌کند.
  • مدل هوش مصنوعی تحلیل یا پیشنهاد تولید می‌کند.
  • کاربر نتیجه را بررسی می‌کند.
  • عملیات نهایی با تصمیم کاربر انجام می‌شود.

بنابراین، یک Copilot مناسب نباید فقط یک پنجره چت عمومی باشد. باید به محیط نرم‌افزار، وظیفه فعلی و ابزارهای مرتبط متصل شود.

نمونه‌های شناخته‌شده AI Copilot

GitHub Copilot

GitHub Copilot در محیط توسعه نرم‌افزار فعالیت می‌کند. این ابزار می‌تواند متناسب با کد، فایل‌ها و وظیفه فعلی، کد پیشنهاد دهد، بخش‌هایی از پروژه را توضیح دهد، تست بنویسد و برای رفع خطا پیشنهاد ارائه کند.

براساس فهرست رسمی قابلیت‌های GitHub Copilot، قابلیت‌های این محصول از پیشنهاد کد فراتر رفته و بخش‌هایی مانند گفت‌وگو، بازبینی کد، اجرای وظایف عامل‌محور و استفاده از اطلاعات مرتبط با پروژه را نیز شامل می‌شود.

Microsoft Copilot

Microsoft مفهوم Copilot را در محصولاتی مانند Microsoft 365، Power BI و Dynamics به کار گرفته است. دستیار در این محصولات متناسب با برنامه و اطلاعات موجود، به تولید متن، تحلیل داده، ساخت گزارش و انجام وظایف کمک می‌کند.

Copilot Studio

Microsoft Copilot Studio محیطی کم‌کد برای ساخت و مدیریت Agentها و گردش‌های کاری هوشمند است. این ابزار نشان می‌دهد Copilotهای جدید فقط پاسخ متنی تولید نمی‌کنند و می‌توانند به اطلاعات و فرایندهای کسب‌وکار متصل شوند.

این محصولات نمونه‌های شناخته‌شده‌اند، اما برای ساخت Copilot اختصاصی الزاماً به آن‌ها نیاز ندارید. می‌توانید رابط کاربری، منطق برنامه و اتصال به مدل را متناسب با محصول خود توسعه دهید و از API درواره به‌عنوان لایه دسترسی به مدل‌های هوش مصنوعی استفاده کنید.

تفاوت Copilot با Chatbot چیست؟

هر Copilot می‌تواند رابط گفت‌وگویی داشته باشد، اما هر Chatbot یک Copilot نیست.

Chatbot معمولاً منتظر می‌ماند کاربر سؤال خود را وارد کند و سپس براساس متن پیام پاسخ می‌دهد. Copilot علاوه بر سؤال کاربر، محیط فعلی نرم‌افزار و اطلاعات مربوط به وظیفه را نیز دریافت می‌کند.

ویژگیChatbot عمومیAI Copilot
پاسخ‌گویی مکالمه‌ایدارددارد
آگاهی از صفحه فعلیمعمولاً ندارددارد
دسترسی به رکورد انتخاب‌شدهمعمولاً ندارددارد
شناخت فرایند نرم‌افزارمحدوددارد
پیشنهاد متناسب با وظیفهمحدوددارد
تکمیل فرم و پیش‌نویسمعمولاً ندارددارد
اتصال به عملیات برنامهمحدودمی‌تواند داشته باشد
حضور در جریان اصلی کارمعمولاً جداستبخشی از محصول است

برای مثال، یک Chatbot فروش ممکن است درباره روش‌های پیگیری مشتری توضیح دهد. اما Copilot فروش می‌داند کاربر در صفحه کدام مشتری قرار دارد، آخرین تماس چه زمانی انجام شده و فرصت فروش در چه مرحله‌ای است.

تفاوت Copilot با AI Assistant چیست؟

اصطلاح‌های AI Assistant و AI Copilot گاهی به‌جای یکدیگر استفاده می‌شوند. مرز قطعی و یکسانی میان آن‌ها وجود ندارد، اما معمولاً Copilot ارتباط عمیق‌تری با یک محصول یا وظیفه مشخص دارد.

  • AI Assistant می‌تواند یک دستیار عمومی برای چند نوع کار باشد.
  • AI Copilot معمولاً داخل یک نرم‌افزار یا محیط کاری مشخص قرار می‌گیرد.
  • Copilot از اطلاعات همان محیط برای پاسخ و پیشنهاد استفاده می‌کند.
  • Copilot معمولاً در کنار کاربر فعالیت می‌کند، نه به‌عنوان برنامه‌ای کاملاً جدا.

برای نمونه، یک دستیار عمومی می‌تواند متن ایمیل بنویسد. Copilot داخل CRM می‌تواند براساس مرحله فروش، آخرین گفت‌وگو و مشخصات محصول، پیش‌نویس ایمیل پیگیری همان مشتری را آماده کند.

تفاوت Copilot با AI Agent چیست؟

تفاوت اصلی در میزان استقلال سیستم است.

Copilot معمولاً در کنار کاربر فعالیت می‌کند و منتظر درخواست، انتخاب یا تأیید او می‌ماند. AI Agent می‌تواند یک هدف دریافت کند، برای رسیدن به آن برنامه بسازد، ابزار انتخاب کند و چند مرحله را به‌صورت متوالی پیش ببرد.

معیارAI CopilotAI Agent
نقش اصلیکمک به کاربرانجام یک هدف
آغاز عملیاتمعمولاً توسط کاربرتوسط کاربر یا رویداد
استقلالمحدودتربیشتر
نیاز به تأییددر بیشتر عملیاتبه طراحی سیستم بستگی دارد
تعامل با رابط نرم‌افزاربسیار مهمممکن است در پس‌زمینه باشد
مسیر انجام کارهمراه با کاربرمی‌تواند پویا باشد
نمونهپیشنهاد پاسخ در CRMرسیدگی چندمرحله‌ای به درخواست مشتری

این دو مفهوم می‌توانند با یکدیگر ترکیب شوند. Copilot ممکن است برای انجام یک وظیفه پیچیده، یک Agent را در پشت صحنه فعال کند؛ اما کاربر همچنان نتیجه و عملیات اصلی را از طریق رابط Copilot مدیریت می‌کند.

برای آشنایی بیشتر، راهنمای AI Agent و Agent Skills چیست؟ را مطالعه کنید.

Copilot چه تفاوتی با قابلیت ساده تولید متن دارد؟

اضافه‌کردن یک دکمه «تولید متن با هوش مصنوعی» به نرم‌افزار مفید است، اما الزاماً یک Copilot کامل محسوب نمی‌شود.

یک قابلیت ساده ممکن است فقط یک توضیح کوتاه دریافت و متن تولید کند. Copilot باید چند ویژگی مهم‌تر داشته باشد:

  • بداند کاربر در کدام قسمت نرم‌افزار قرار دارد.
  • اطلاعات مرتبط با وظیفه را دریافت کند.
  • هدف کاربر را از محیط فعلی تشخیص دهد.
  • خروجی مناسب همان بخش تولید کند.
  • امکان اصلاح، پذیرش یا رد پیشنهاد را فراهم کند.
  • در صورت نیاز، ابزارهای برنامه را فراخوانی کند.
  • بازخورد کاربر را برای ارزیابی کیفیت ثبت کند.

AI Copilot در چه نرم‌افزارهایی کاربرد دارد؟

Copilot برای CRM

یک Copilot فروش می‌تواند:

  • فعالیت‌های مشتری را خلاصه کند.
  • نیازهای مشتری را از یادداشت‌ها استخراج کند.
  • اقدام بعدی را پیشنهاد دهد.
  • پیش‌نویس پیام پیگیری بسازد.
  • جلسه فروش را خلاصه کند.
  • اطلاعات مهم را برای ثبت در CRM پیشنهاد دهد.
  • فرصت‌های بدون اقدام بعدی را مشخص کند.
  • گزارش کوتاه مدیریتی تولید کند.

Copilot برای ERP

در یک ERP، Copilot می‌تواند به کاربر کمک کند:

  • وضعیت سفارش‌ها را توضیح دهد.
  • گزارش موجودی را خلاصه کند.
  • اختلاف میان سفارش و تحویل را مشخص کند.
  • اطلاعات چند بخش را کنار هم قرار دهد.
  • از روی درخواست کاربر گزارش مناسب بسازد.
  • مراحل انجام یک فرایند را توضیح دهد.
  • پیش‌نویس درخواست خرید یا تأمین را تولید کند.

Copilot برای نرم‌افزار حسابداری

کاربردهای ممکن عبارت‌اند از:

  • توضیح گزارش‌های مالی به زبان ساده
  • خلاصه‌سازی تغییرات دوره‌ای
  • دسته‌بندی توضیحات اسناد
  • پیشنهاد شرح استاندارد
  • استخراج نکات مهم از گزارش
  • پاسخ‌گویی درباره روش استفاده از نرم‌افزار
  • ساخت پیش‌نویس گزارش مدیریتی

خروجی‌های عددی و ثبتی باید با داده قطعی نرم‌افزار تطبیق داده شوند. مدل زبانی برای توضیح و سازمان‌دهی اطلاعات مناسب است، اما محاسبات نهایی باید توسط منطق خود نرم‌افزار انجام شوند.

Copilot برای فروشگاه اینترنتی

یک فروشگاه می‌تواند Copilot را برای این قابلیت‌ها به کار بگیرد:

  • جست‌وجوی محصول با زبان طبیعی
  • مقایسه محصولات
  • توضیح تفاوت گزینه‌ها
  • تولید توضیحات کالا
  • پاسخ به سؤال‌های مرتبط با محصول
  • پیشنهاد فیلتر مناسب
  • خلاصه‌سازی نظرات کاربران
  • کمک به مدیر فروشگاه برای تکمیل اطلاعات محصول

Copilot برای نرم‌افزار مدیریت پروژه

Copilot می‌تواند:

  • وضعیت پروژه را خلاصه کند.
  • وظایف عقب‌افتاده را فهرست کند.
  • موانع ثبت‌شده را استخراج کند.
  • گزارش هفتگی بسازد.
  • یادداشت جلسه را به Task تبدیل کند.
  • اقدام‌های بعدی را پیشنهاد دهد.
  • اختلاف میان برنامه و وضعیت فعلی را توضیح دهد.

Copilot برای سامانه پشتیبانی

کارشناس پشتیبانی می‌تواند از Copilot برای این کارها استفاده کند:

  • خلاصه‌سازی تاریخچه تیکت
  • دسته‌بندی درخواست
  • استخراج مسئله اصلی
  • پیشنهاد پاسخ
  • یافتن مقاله مرتبط در پایگاه دانش
  • تهیه خلاصه برای ارجاع به تیم دیگر
  • تبدیل مکالمه طولانی به فهرست اقدام‌ها

Copilot برای سیستم مدیریت محتوا

در یک CMS، Copilot می‌تواند:

  • عنوان پیشنهاد دهد.
  • ساختار مقاله بسازد.
  • متن را بازنویسی کند.
  • توضیحات متا تولید کند.
  • کلمات کلیدی مرتبط پیشنهاد دهد.
  • لینک‌های داخلی مناسب را پیدا کند.
  • متن‌های قدیمی را برای به‌روزرسانی مشخص کند.
  • محتوا را برای کانال‌های مختلف بازآفرینی کند.

سطوح مختلف AI Copilot

بهتر است Copilot را از ابتدا با بیشترین میزان استقلال طراحی نکنید. می‌توان قابلیت‌ها را در چند سطح توسعه داد.

سطح اول: توضیح

Copilot فقط اطلاعات صفحه یا گزارش را توضیح می‌دهد.

نمونه:

این نمودار چه چیزی را نشان می‌دهد؟

سطح دوم: پیشنهاد

Copilot براساس اطلاعات موجود، اقدام بعدی یا چند گزینه پیشنهاد می‌کند.

نمونه:

برای پیگیری این مشتری چه اقدامی مناسب است؟

سطح سوم: تولید پیش‌نویس

Copilot یک متن، گزارش، فرم یا پاسخ آماده می‌کند؛ اما آن را مستقیماً ثبت یا ارسال نمی‌کند.

نمونه:

یک پیام پیگیری براساس آخرین جلسه آماده کن.

سطح چهارم: تکمیل رابط کاربری

Copilot فیلدهای یک فرم را پیشنهاد یا پر می‌کند و کاربر قبل از ثبت آن‌ها را می‌بیند.

سطح پنجم: اجرای عملیات با تأیید

Copilot یک عملیات مشخص را پیشنهاد می‌کند و پس از تأیید کاربر، Backend آن را اجرا می‌کند.

نمونه:

برای این فرصت فروش، یک Task پیگیری برای سه روز آینده بساز.

در بسیاری از محصولات، سطح دوم و سوم بهترین نقطه شروع هستند؛ زیرا ارزش کاربردی ایجاد می‌کنند و هم‌زمان ارزیابی کیفیت آن‌ها ساده‌تر است.

معماری AI Copilot چگونه است؟

یک Copilot واقعی فقط از یک مدل زبانی تشکیل نمی‌شود. معماری آن معمولاً شامل چند لایه است.

۱. رابط کاربری

Copilot می‌تواند در بخش‌های مختلف نمایش داده شود:

  • پنل کناری
  • پنجره گفت‌وگو
  • دکمه کنار هر رکورد
  • منوی فرمان
  • پیشنهاد داخل فرم
  • بخش خلاصه هوشمند
  • نوار جست‌وجوی زبان طبیعی

Copilot نباید همیشه به شکل Chat باشد. گاهی یک دکمه «خلاصه کن» یا کارت «اقدام بعدی پیشنهادی» تجربه بهتری ایجاد می‌کند.

۲. Context Builder

این بخش اطلاعات مرتبط با درخواست را آماده می‌کند:

  • نوع صفحه
  • وظیفه انتخاب‌شده
  • اطلاعات رکورد
  • داده‌های وابسته
  • تاریخچه مرتبط
  • دستورالعمل محصول
  • قالب مورد انتظار خروجی

ارسال تمام اطلاعات نرم‌افزار به مدل روش مناسبی نیست. Context Builder باید فقط داده‌هایی را انتخاب کند که برای همان درخواست ضروری هستند.

این موضوع در مقاله Context Engineering چیست؟ با جزئیات بیشتری بررسی شده است.

۳. لایه مدل هوش مصنوعی

Backend درخواست ساخته‌شده را برای مدل ارسال می‌کند. انتخاب مدل به وظیفه وابسته است:

  • مدل سریع برای پیشنهادهای کوتاه
  • مدل قوی‌تر برای تحلیل‌های پیچیده
  • مدل دارای Vision برای تصویر و نمودار
  • مدل دارای Context بزرگ برای اسناد طولانی
  • مدل مناسب Structured Outputs برای خروجی JSON
  • مدل مناسب Tool Calling برای اتصال به عملیات نرم‌افزار

درواره می‌تواند این لایه را با یک API سازگار با OpenAI در اختیار نرم‌افزار قرار دهد.

۴. پایگاه دانش

اگر Copilot باید براساس مستندات، راهنماها یا اطلاعات اختصاصی پاسخ دهد، می‌توان از RAG استفاده کرد.

فرایند ساده چنین است:

  1. دریافت سؤال کاربر
  2. جست‌وجوی اطلاعات مرتبط
  3. افزودن نتایج به Context
  4. تولید پاسخ براساس اطلاعات بازیابی‌شده
  5. نمایش منبع یا بخش مرتبط در رابط کاربری

۵. ابزارها و عملیات برنامه

Copilot برای انجام عملیات واقعی باید از توابع Backend استفاده کند. برای مثال:

  • create_task
  • generate_report
  • update_opportunity
  • search_products
  • get_order_status
  • draft_customer_reply

مدل فقط نام ابزار و ورودی پیشنهادی را تولید می‌کند. خود Backend باید عملیات را اجرا و نتیجه را به مدل یا رابط کاربری برگرداند.

راهنمای رسمی Function Calling نیز این قابلیت را به‌عنوان روشی برای اتصال مدل به امکانات برنامه توضیح می‌دهد.

۶. اعتبارسنجی خروجی

اگر Copilot قرار است داده‌ای را وارد نرم‌افزار کند، خروجی باید قالب مشخصی داشته باشد.

برای مثال:

{
  "summary": "مشتری درباره قیمت و زمان استقرار سؤال کرده است.",
  "suggested_action": "ارسال پیشنهاد فنی و برنامه استقرار",
  "priority": "medium",
  "draft_message": "سلام، براساس گفت‌وگوی اخیر..."
}

استفاده از JSON و Schema باعث می‌شود برنامه بتواند خروجی را بررسی و در رابط مناسب نمایش دهد.

۷. بازخورد و ارزیابی

برای هر پیشنهاد می‌توان گزینه‌هایی مانند این موارد قرار داد:

  • مفید بود
  • نیاز به اصلاح داشت
  • نامرتبط بود
  • استفاده شد
  • رد شد

این بازخورد به تیم محصول کمک می‌کند بفهمد Copilot واقعاً در کدام وظایف ارزش ایجاد می‌کند.

آموزش ساخت AI Copilot برای CRM با Python و API درواره

در این نمونه، یک Copilot ساده برای CRM می‌سازیم. سیستم اطلاعات یک فرصت فروش را دریافت می‌کند و خروجی زیر را تولید می‌کند:

  • خلاصه وضعیت
  • نیاز اصلی مشتری
  • اقدام بعدی پیشنهادی
  • اولویت
  • پیش‌نویس پیام پیگیری
  • اطلاعاتی که برای تصمیم بهتر کم است

نصب کتابخانه‌ها

pip install fastapi uvicorn openai pydantic

تنظیم متغیرهای محیطی

export DARVAREH_API_KEY="YOUR_API_KEY"
export DARVAREH_MODEL_ID="YOUR_MODEL_ID"

مدل را از فهرست فعلی مدل‌های درواره انتخاب کنید. برای این نمونه، یک مدل متنی با عملکرد مناسب در زبان فارسی و تولید خروجی ساخت‌یافته کافی است.

کد کامل Backend

import json
import os
from typing import Literal

from fastapi import FastAPI, HTTPException
from openai import OpenAI
from pydantic import BaseModel, Field, ValidationError


app = FastAPI(title="CRM AI Copilot")

client = OpenAI(
    api_key=os.environ["DARVAREH_API_KEY"],
    base_url="https://api.darvareh.ir/v1",
)

MODEL_ID = os.environ["DARVAREH_MODEL_ID"]


class OpportunityContext(BaseModel):
    company_name: str
    industry: str | None = None
    sales_stage: str
    product: str
    last_interaction: str
    interaction_summary: str
    previous_actions: list[str] = Field(default_factory=list)
    days_without_followup: int = 0


class CopilotSuggestion(BaseModel):
    status_summary: str
    customer_need: str | None = None
    suggested_action: str
    priority: Literal["low", "medium", "high"]
    draft_message: str
    missing_information: list[str] = Field(default_factory=list)


def remove_markdown_fence(content: str) -> str:
    content = content.strip()

    if content.startswith("```json"):
        content = content[7:]
    elif content.startswith("```"):
        content = content[3:]

    if content.endswith("```"):
        content = content[:-3]

    return content.strip()


def build_prompt(context: OpportunityContext) -> str:
    return f"""
شما Copilot فروش داخل یک نرم‌افزار CRM فارسی هستید.

وظیفه:
اطلاعات فرصت فروش را بررسی کن و به فروشنده برای انتخاب
اقدام بعدی کمک کن.

قواعد:
- فقط براساس اطلاعات ارائه‌شده پاسخ بده.
- اطلاعات ناموجود را حدس نزن.
- اگر اطلاعات کافی نیست، آن را در missing_information بنویس.
- پیام پیشنهادی باید کوتاه، طبیعی و حرفه‌ای باشد.
- هیچ وعده قیمت، تخفیف یا زمان تحویل جدیدی ایجاد نکن.
- فقط یک شیء JSON معتبر برگردان.
- خارج از JSON هیچ متنی ننویس.

ساختار خروجی:
{{
  "status_summary": "خلاصه وضعیت فرصت فروش",
  "customer_need": "نیاز اصلی مشتری یا null",
  "suggested_action": "اقدام بعدی پیشنهادی",
  "priority": "low | medium | high",
  "draft_message": "پیش‌نویس پیام پیگیری",
  "missing_information": [
    "اطلاعاتی که برای تصمیم بهتر لازم است"
  ]
}}

اطلاعات فرصت فروش:
نام شرکت: {context.company_name}
صنعت: {context.industry or "ثبت نشده"}
مرحله فروش: {context.sales_stage}
محصول: {context.product}
آخرین تعامل: {context.last_interaction}
خلاصه تعامل: {context.interaction_summary}
اقدام‌های قبلی: {context.previous_actions}
تعداد روز بدون پیگیری: {context.days_without_followup}
"""


@app.post(
    "/copilot/suggest-next-action",
    response_model=CopilotSuggestion,
)
def suggest_next_action(
    context: OpportunityContext,
) -> CopilotSuggestion:
    prompt = build_prompt(context)

    try:
        response = client.chat.completions.create(
            model=MODEL_ID,
            messages=[
                {
                    "role": "system",
                    "content": (
                        "شما یک دستیار فروش فارسی هستید که "
                        "خروجی ساخت‌یافته و قابل‌بررسی تولید می‌کند."
                    ),
                },
                {
                    "role": "user",
                    "content": prompt,
                },
            ],
            temperature=0.2,
        )

        raw_content = response.choices[0].message.content

        if not raw_content:
            raise ValueError("پاسخ مدل خالی است")

        json_content = remove_markdown_fence(raw_content)
        parsed_content = json.loads(json_content)

        return CopilotSuggestion.model_validate(parsed_content)

    except json.JSONDecodeError as error:
        raise HTTPException(
            status_code=502,
            detail="مدل JSON معتبر تولید نکرد.",
        ) from error

    except ValidationError as error:
        raise HTTPException(
            status_code=502,
            detail="ساختار خروجی مدل معتبر نیست.",
        ) from error

    except Exception as error:
        raise HTTPException(
            status_code=500,
            detail="پردازش درخواست Copilot ناموفق بود.",
        ) from error

اجرای برنامه

uvicorn main:app --reload

ارسال درخواست آزمایشی

curl -X POST \
  http://127.0.0.1:8000/copilot/suggest-next-action \
  -H "Content-Type: application/json" \
  -d '{
    "company_name": "شرکت نمونه",
    "industry": "نرم‌افزار سازمانی",
    "sales_stage": "جلسه معرفی انجام شده",
    "product": "API هوش مصنوعی",
    "last_interaction": "1405/06/01",
    "interaction_summary": "مشتری درباره اتصال API، پرداخت ریالی و مدل‌های مناسب برای تحلیل اسناد سؤال کرد.",
    "previous_actions": [
      "ارسال مستندات API",
      "برگزاری جلسه معرفی"
    ],
    "days_without_followup": 4
  }'

نمونه خروجی

{
  "status_summary": "جلسه معرفی انجام شده و مستندات API برای مشتری ارسال شده است.",
  "customer_need": "بررسی امکان اتصال API و انتخاب مدل مناسب برای تحلیل اسناد",
  "suggested_action": "ارسال پیام پیگیری و پیشنهاد اجرای یک آزمایش محدود با سند نمونه",
  "priority": "medium",
  "draft_message": "سلام، در ادامه جلسه معرفی و مستندات ارسال‌شده، در صورت تمایل می‌توانیم یک نمونه از فرایند تحلیل سند شما را با مدل‌های موجود بررسی کنیم تا انتخاب مدل و برآورد مصرف دقیق‌تر انجام شود.",
  "missing_information": [
    "حجم تقریبی اسناد",
    "نوع فایل‌های ورودی",
    "خروجی مورد انتظار"
  ]
}

چگونه خروجی Copilot را در رابط کاربری نمایش دهیم؟

نمایش پاسخ به شکل یک پاراگراف طولانی معمولاً بهترین تجربه نیست. هر بخش را در جزء مناسب رابط قرار دهید.

برای مثال:

خروجیمحل نمایش پیشنهادی
خلاصه وضعیتکارت بالای صفحه مشتری
اقدام بعدیبخش پیشنهاد Copilot
اولویتنشان رنگی
پیام پیشنهادیویرایشگر قابل‌اصلاح
اطلاعات ناقصچک‌لیست تکمیل اطلاعات
ثبت Taskدکمه جداگانه پس از پیشنهاد

کاربر باید بتواند:

  • پیشنهاد را بپذیرد.
  • متن را ویرایش کند.
  • پیشنهاد دیگری دریافت کند.
  • دلیل پیشنهاد را ببیند.
  • نتیجه را رد کند.
  • عملیات بعدی را خودش آغاز کند.

چگونه Copilot را به ابزارهای نرم‌افزار متصل کنیم؟

در نسخه اولیه، Copilot فقط پیشنهاد تولید می‌کند. در مرحله بعد می‌توان Function Calling را اضافه کرد.

برای نمونه، ابزار ساخت Task می‌تواند چنین ساختاری داشته باشد:

{
  "name": "create_followup_task",
  "description": "ساخت وظیفه پیگیری برای یک فرصت فروش",
  "parameters": {
    "type": "object",
    "properties": {
      "opportunity_id": {
        "type": "string"
      },
      "title": {
        "type": "string"
      },
      "due_date": {
        "type": "string"
      }
    },
    "required": [
      "opportunity_id",
      "title",
      "due_date"
    ]
  }
}

جریان مناسب اجرای ابزار:

  1. کاربر از Copilot اقدام بعدی را می‌خواهد.
  2. مدل ساخت یک Task را پیشنهاد می‌کند.
  3. رابط کاربری جزئیات Task را نمایش می‌دهد.
  4. کاربر آن را بررسی و تأیید می‌کند.
  5. Backend تابع واقعی را اجرا می‌کند.
  6. نتیجه در صفحه CRM نمایش داده می‌شود.

مدل نباید مستقیماً پایگاه داده را تغییر دهد. مدل درخواست ابزار را پیشنهاد می‌کند و Backend مسئول اعتبارسنجی و اجرای عملیات است.

Structured Outputs چه کمکی به Copilot می‌کند؟

Copilot معمولاً باید نتیجه را در چند بخش رابط کاربری نمایش دهد. خروجی ساخت‌یافته این کار را ساده‌تر می‌کند.

Structured Outputs می‌تواند خروجی مدل را به یک JSON Schema مشخص محدود کند. این قابلیت برای سناریوهایی مانند موارد زیر مفید است:

  • تکمیل فرم
  • پیشنهاد اقدام بعدی
  • استخراج اطلاعات
  • ساخت کارت رابط کاربری
  • انتخاب نوع عملیات
  • تولید داده برای نمودار
  • دسته‌بندی درخواست
  • ساخت فهرست وظایف

پشتیبانی و تنظیمات Structured Outputs را برای مدل انتخابی بررسی کنید. اگر مدل این قابلیت را نداشت، خروجی JSON را در Backend با Pydantic یا ابزار مشابه اعتبارسنجی کنید.

چگونه Context مناسب برای Copilot بسازیم؟

کیفیت Copilot بیش از آنکه به طول پرامپت وابسته باشد، به کیفیت Context بستگی دارد.

برای هر درخواست فقط اطلاعات ضروری را ارسال کنید.

Context عمومی محصول

این بخش شامل اطلاعات نسبتاً ثابت است:

  • نقش Copilot
  • اصطلاحات نرم‌افزار
  • قواعد پاسخ
  • انواع عملیات
  • قالب خروجی
  • محدودیت‌های هر قابلیت

Context صفحه

اطلاعاتی که از صفحه فعلی به دست می‌آیند:

  • نوع صفحه
  • رکورد انتخاب‌شده
  • تب فعال
  • فیلترهای اعمال‌شده
  • عملیات قابل‌انجام

Context وظیفه

هدف فعلی کاربر:

  • خلاصه‌سازی
  • مقایسه
  • تولید پیش‌نویس
  • پیشنهاد اقدام
  • توضیح گزارش
  • تکمیل فیلد
  • ساخت Task

Context بازیابی‌شده

اگر پاسخ به اطلاعات بیشتری نیاز دارد، فقط بخش‌های مرتبط از پایگاه دانش یا داده‌های نرم‌افزار بازیابی شوند.

Context مکالمه

لازم نیست تمام تاریخچه Copilot در هر درخواست ارسال شود. پیام‌های اخیر، خلاصه تعامل قبلی و وضعیت فعلی معمولاً مفیدتر از تاریخچه طولانی و پراکنده هستند.

بهترین شکل رابط کاربری برای Copilot چیست؟

یک رابط ثابت برای تمام محصولات وجود ندارد. طراحی باید براساس وظیفه انجام شود.

پنل کناری

برای گفت‌وگو، تحلیل صفحه و انجام چند درخواست متوالی مناسب است.

دکمه درون صفحه

برای وظایف مشخص مانند «خلاصه‌سازی»، «بازنویسی» یا «پیشنهاد اقدام بعدی» مناسب است.

پیشنهاد درون فرم

برای تکمیل عنوان، توضیح، دسته‌بندی و سایر فیلدها کاربرد دارد.

نوار فرمان

کاربر می‌تواند با زبان طبیعی عملی مانند ساخت گزارش یا یافتن رکورد را درخواست کند.

کارت هوشمند

برای نمایش خلاصه، هشدار، پیشنهاد یا اقدام بعدی در داشبورد مناسب است.

ویرایشگر مشترک

پیشنهاد مدل درون ویرایشگر نمایش داده می‌شود و کاربر می‌تواند آن را قبول، رد یا اصلاح کند.

چگونه کیفیت AI Copilot را اندازه‌گیری کنیم؟

تعداد پیام‌های ارسال‌شده به Copilot به‌تنهایی موفقیت محصول را نشان نمی‌دهد. باید بررسی کنید آیا Copilot واقعاً انجام کار را ساده‌تر کرده است یا خیر.

شاخص‌های کاربردی عبارت‌اند از:

  • درصد پیشنهادهای پذیرفته‌شده
  • درصد پیشنهادهای ویرایش‌شده
  • درصد پیشنهادهای ردشده
  • زمان انجام وظیفه قبل و بعد از Copilot
  • تعداد مراحل حذف‌شده از فرایند
  • میزان استفاده مجدد کاربران
  • موفقیت تولید JSON معتبر
  • تعداد درخواست‌هایی که به اطلاعات بیشتری نیاز دارند
  • کیفیت پاسخ‌های فارسی
  • هزینه متوسط هر وظیفه
  • زمان پاسخ‌گویی
  • رضایت کاربران از هر قابلیت

ارزیابی را برای هر قابلیت جداگانه انجام دهید. ممکن است Copilot در خلاصه‌سازی بسیار موفق باشد، اما در پیشنهاد اقدام بعدی هنوز به اطلاعات یا طراحی بهتری نیاز داشته باشد.

راهنمای Evals و ارزیابی مدل‌های هوش مصنوعی روش‌های ساخت مجموعه تست و مقایسه خروجی مدل‌ها را توضیح می‌دهد.

اشتباهات رایج در ساخت AI Copilot

اضافه‌کردن یک چت عمومی به نرم‌افزار

یک پنجره Chat که هیچ اطلاعاتی از صفحه و وظیفه فعلی ندارد، ارزش محدودی ایجاد می‌کند. Copilot باید با محیط اصلی محصول یکپارچه باشد.

شروع با ده‌ها قابلیت

نسخه اول را روی یک یا دو کار پرتکرار متمرکز کنید. خلاصه‌سازی یک رکورد یا تولید پیش‌نویس پاسخ، نقطه شروع مناسبی است.

ارسال تمام اطلاعات موجود به مدل

Context بزرگ و نامرتبط می‌تواند هزینه و زمان پاسخ را افزایش و تمرکز مدل را کاهش دهد. اطلاعات را براساس وظیفه انتخاب کنید.

استفاده از یک پرامپت برای همه صفحات

Copilot صفحه فروش، گزارش، سفارش و پشتیبانی وظایف متفاوتی دارد. برای هر قابلیت دستور و Schema اختصاصی تعریف کنید.

نمایش پاسخ طولانی برای هر درخواست

خروجی را به اجزای قابل‌استفاده مانند خلاصه، پیشنهاد، فهرست اقدام و دکمه عملیات تبدیل کنید.

اجرای مستقیم پیشنهاد مدل

ابتدا پیشنهاد را به کاربر نمایش دهید. اجرای عملیات باید توسط منطق Backend و مطابق قواعد نرم‌افزار انجام شود.

انتخاب مدل صرفاً براساس قدرت کلی

برای وظایف کوتاه و پرتعداد، سرعت و هزینه اهمیت زیادی دارند. مدل‌های بزرگ‌تر را برای تحلیل‌هایی به کار ببرید که واقعاً به توانایی بیشتر نیاز دارند.

نداشتن مجموعه تست فارسی

Copilot را با اصطلاحات واقعی کاربران، متن‌های محاوره‌ای، اعداد فارسی، نام فیلدهای محصول و سناریوهای ناقص آزمایش کنید.

نداشتن مسیر اصلاح پیشنهاد

کاربر باید بتواند پیشنهاد را ویرایش، رد یا دوباره تولید کند. خروجی Copilot نباید مانند نتیجه‌ای تغییرناپذیر نمایش داده شود.

انتخاب مدل مناسب برای AI Copilot

هیچ مدل واحدی برای تمام بخش‌های Copilot بهترین نیست.

برای انتخاب مدل این معیارها را بررسی کنید:

  • کیفیت زبان فارسی
  • توانایی پیروی از دستور
  • دقت تولید JSON
  • سرعت پاسخ
  • هزینه ورودی و خروجی
  • اندازه Context
  • پشتیبانی از Tool Calling
  • پشتیبانی از Structured Outputs
  • پشتیبانی از تصویر در صورت نیاز
  • عملکرد روی داده‌های واقعی محصول

یک معماری چندمدلی می‌تواند مناسب‌تر باشد:

  • مدل سریع برای بازنویسی و پیشنهادهای کوتاه
  • مدل دقیق‌تر برای تحلیل پیچیده
  • مدل Vision برای تصویر و نمودار
  • مدل Embedding برای جست‌وجوی معنایی
  • مدل داور برای ارزیابی نمونه‌ای خروجی‌ها

API یکپارچه درواره امکان آزمایش مدل‌های مختلف را بدون ایجاد اتصال جداگانه برای هر ارائه‌دهنده فراهم می‌کند.

نقشه راه ساخت Copilot داخل محصول

مرحله اول: انتخاب یک وظیفه پرتکرار

به‌جای «ساخت Copilot کامل»، مسئله‌ای مشخص انتخاب کنید:

خلاصه‌سازی تاریخچه مشتری و تولید پیش‌نویس پیگیری

مرحله دوم: اندازه‌گیری وضعیت فعلی

مشخص کنید انجام این کار اکنون چقدر زمان می‌برد و چه مشکلاتی دارد.

مرحله سوم: تعریف ورودی و خروجی

تعیین کنید Copilot چه اطلاعاتی دریافت کند و دقیقاً چه خروجی‌ای بسازد.

مرحله چهارم: ساخت نمونه بدون عملیات

در نسخه اولیه فقط پیشنهاد تولید کنید و اجازه دهید کاربر آن را بررسی کند.

مرحله پنجم: آزمایش چند مدل

یک مجموعه درخواست واقعی فارسی را با چند مدل اجرا و نتایج را مقایسه کنید.

مرحله ششم: افزودن خروجی ساخت‌یافته

خروجی را به JSON معتبر تبدیل کنید تا در اجزای رابط کاربری نمایش داده شود.

مرحله هفتم: ثبت بازخورد

پذیرش، ویرایش و رد پیشنهادها را اندازه‌گیری کنید.

مرحله هشتم: اتصال به عملیات محدود

پس از رسیدن به کیفیت قابل‌قبول، یک ابزار مشخص مانند ساخت Task را اضافه کنید.

مرحله نهم: توسعه تدریجی

تنها قابلیت‌هایی را اضافه کنید که ارزش آن‌ها با داده واقعی تأیید شده است.

چرا API درواره برای ساخت AI Copilot مناسب است؟

توسعه یک Copilot معمولاً به آزمایش چند مدل نیاز دارد. ممکن است یک مدل در فارسی بهتر باشد، مدل دیگری JSON دقیق‌تری تولید کند و یک مدل سریع‌تر برای درخواست‌های پرتعداد مناسب باشد.

با API درواره می‌توانید:

  • از یک Base URL واحد استفاده کنید.
  • با یک API Key به مدل‌های مختلف متصل شوید.
  • از SDKهای سازگار با OpenAI استفاده کنید.
  • مدل را با تغییر Model ID عوض کنید.
  • هزینه را به‌صورت ریالی پرداخت کنید.
  • مصرف مدل‌ها را از یک حساب مدیریت کنید.
  • مدل‌های مختلف را روی کاربرد واقعی خود مقایسه کنید.
  • معماری چندمدلی برای Copilot بسازید.

آدرس پایه API درواره:

https://api.darvareh.ir/v1

درواره خود یک CRM، ERP یا Copilot آماده نیست. درواره لایه API مدل‌های هوش مصنوعی را فراهم می‌کند و تیم محصول می‌تواند رابط، Context، پایگاه دانش، ابزارها و منطق کسب‌وکار Copilot را متناسب با نرم‌افزار خود بسازد.

برای شروع، در درواره ثبت‌نام کنید، کلید API بسازید و مدل‌های مناسب پروژه را با یک مجموعه تست فارسی مقایسه کنید.

پرسش‌های متداول

AI Copilot چیست؟

AI Copilot دستیار هوشمندی است که داخل یک نرم‌افزار یا محیط کاری قرار می‌گیرد و با استفاده از اطلاعات همان محیط، به کاربر برای تحلیل، تولید محتوا، یافتن اطلاعات و انجام سریع‌تر وظایف کمک می‌کند.

آیا Copilot همان Chatbot است؟

خیر. Chatbot عمدتاً به پیام کاربر پاسخ می‌دهد، اما Copilot از صفحه فعلی، رکورد انتخاب‌شده، اطلاعات محصول و فرایند کاری نیز برای ارائه پیشنهاد استفاده می‌کند.

تفاوت Copilot و AI Agent چیست؟

Copilot بیشتر در کنار کاربر فعالیت می‌کند و عملیات را پیشنهاد می‌دهد. Agent می‌تواند برای رسیدن به یک هدف، چند مرحله را با استقلال بیشتری برنامه‌ریزی و اجرا کند.

آیا Copilot حتماً باید رابط چت داشته باشد؟

خیر. Copilot می‌تواند به شکل دکمه، کارت پیشنهاد، پنل کناری، نوار فرمان، تکمیل‌کننده فرم یا دستیار داخل ویرایشگر طراحی شود.

آیا می‌توان Copilot را به CRM متصل کرد؟

بله. Copilot می‌تواند اطلاعات مشتری و فرصت فروش را از Backend دریافت و خلاصه، پیشنهاد اقدام بعدی یا پیش‌نویس پیام تولید کند.

آیا می‌توان Copilot را به ERP اضافه کرد؟

بله. توضیح گزارش‌ها، خلاصه‌سازی سفارش‌ها، جست‌وجوی اطلاعات و ساخت پیش‌نویس فرم‌ها از کاربردهای ممکن در ERP هستند.

برای ساخت Copilot به چه مدل‌هایی نیاز داریم؟

به وظیفه بستگی دارد. یک مدل متنی برای بسیاری از قابلیت‌ها کافی است. برای تصویر و نمودار به مدل Vision، برای جست‌وجوی معنایی به Embedding و برای عملیات نرم‌افزاری به مدلی با Tool Calling نیاز خواهید داشت.

آیا Copilot باید تمام اطلاعات نرم‌افزار را دریافت کند؟

خیر. فقط اطلاعات مرتبط با درخواست فعلی باید توسط Context Builder انتخاب و برای مدل ارسال شوند.

آیا می‌توان از چند مدل در یک Copilot استفاده کرد؟

بله. می‌توان وظایف ساده را به مدل سریع‌تر و تحلیل‌های پیچیده را به مدل قوی‌تر ارسال کرد. استفاده از API یکپارچه، مدیریت این معماری را ساده‌تر می‌کند.

آیا API درواره با OpenAI SDK سازگار است؟

بله. با تنظیم Base URL روی https://api.darvareh.ir/v1 و استفاده از Model ID فعال می‌توانید از SDK سازگار با OpenAI استفاده کنید.

بهترین نقطه شروع برای ساخت Copilot چیست؟

یک کار پرتکرار و قابل‌اندازه‌گیری مانند خلاصه‌سازی رکورد، تولید پیش‌نویس یا پیشنهاد اقدام بعدی را انتخاب کنید و قبل از افزودن قابلیت‌های بیشتر، کیفیت و میزان استفاده آن را بسنجید.

جمع‌بندی

AI Copilot راهی برای قراردادن هوش مصنوعی در جریان اصلی استفاده از نرم‌افزار است. برخلاف یک چت‌بات عمومی، Copilot صفحه، رکورد، وظیفه و ابزارهای مرتبط با کاربر را می‌شناسد و خروجی متناسب با همان محیط تولید می‌کند.

یک Copilot کاربردی باید:

  • روی وظیفه‌ای مشخص تمرکز کند.
  • Context مناسب دریافت کند.
  • درون رابط اصلی محصول قرار بگیرد.
  • خروجی ساخت‌یافته تولید کند.
  • پیشنهادهای قابل‌ویرایش ارائه دهد.
  • عملیات را از طریق Backend اجرا کند.
  • بازخورد کاربران را ثبت کند.
  • با داده‌های واقعی فارسی ارزیابی شود.
  • از مدل مناسب هر وظیفه استفاده کند.

برای شرکت‌های سازنده SaaS، CRM، ERP، فروشگاه اینترنتی و نرم‌افزارهای سازمانی، Copilot می‌تواند قابلیت مهمی برای ساده‌ترکردن کار با محصول و کاهش مراحل انجام وظایف باشد.

API درواره نیز امکان اتصال این محصولات به مدل‌های مختلف هوش مصنوعی را با یک رابط سازگار با OpenAI، پرداخت ریالی و مدیریت یکپارچه مصرف فراهم می‌کند.

مقالات مرتبط

منابع

این مقاله صرفاً با هدف آموزش و اطلاع‌رسانی تهیه شده است. پیش از استفاده عملی، مستندات رسمی سرویس‌ها و صفحه سلب مسئولیت را مطالعه کنید.

Read more

تبدیل عکس سیاه‌وسفید قدیمی به عکس رنگی با هوش مصنوعی

رنگی کردن عکس سیاه‌وسفید با هوش مصنوعی؛ آموزش کامل و رایگان

در این راهنمای جامع یاد می‌گیرید چگونه عکس‌های سیاه‌وسفید قدیمی را با هوش مصنوعی به تصاویر رنگی طبیعی تبدیل کنید؛ از آماده‌سازی و ترمیم اولیه عکس تا انتخاب ابزار، نوشتن پرامپت، اصلاح رنگ پوست و اجرای خودکار با API درواره.

آموزش ساخت موزیک ویدیو با هوش مصنوعی از آهنگ تا تدوین نهایی

ساخت موزیک ویدیو با هوش مصنوعی؛ آموزش کامل از آهنگ تا کلیپ

در این راهنمای جامع یاد می‌گیرید چگونه با هوش مصنوعی یک موزیک ویدیو حرفه‌ای بسازید؛ از تحلیل آهنگ، انتخاب ایده و نوشتن سناریو تا ساخت استوری‌بورد، تولید نماهای هماهنگ، تدوین روی ضرب موسیقی و خودکارسازی مراحل با API درواره. عنوان متا: ساخت موزیک ویدیو با هوش مصنوعی؛ آموزش کامل و عملی

آموزش پرامپت ساخت عکس با هوش مصنوعی همراه با نمونه‌های آماده

پرامپت ساخت عکس با هوش مصنوعی؛ آموزش کامل و ۵۰ پرامپت آماده

چگونه برای ساخت عکس با هوش مصنوعی پرامپت حرفه‌ای بنویسیم؟ در این راهنما فرمول پرامپت‌نویسی تصویر، تنظیم نور، سبک، زاویه دوربین و ترکیب‌بندی را همراه با ۵۰ پرامپت آماده برای عکس پرتره، محصول، معماری، غذا، تبلیغات و شبکه‌های اجتماعی یاد می‌گیرید.

FLUX AI چیست؟ معرفی FLUX 3 و آموزش ساخت تصویر با API درواره

FLUX AI چیست؟ معرفی FLUX 3 و آموزش ساخت تصویر با API درواره

FLUX خانواده‌ای از مدل‌های مولد تصویر و ویدئو متعلق به Black Forest Labs است که برای تولید تصاویر واقع‌گرایانه، طراحی تبلیغاتی، ویرایش عکس، نمایش دقیق متن و استفاده از تصاویر مرجع کاربرد دارد. در این راهنما با FLUX 3، مدل‌های FLUX.2 و روش ساخت سرویس تولید تصویر با API درواره آشنا می‌شوید.