هوش مصنوعی واتساپ؛ آموزش استفاده از ChatGPT و ساخت ربات WhatsApp با API درواره

در این راهنما روش‌های استفاده از هوش مصنوعی در واتساپ را بررسی می‌کنیم و یک ربات WhatsApp واقعی برای پاسخ‌گویی به مشتریان با Python، Cloud API و API درواره

Share
هوش مصنوعی واتساپ؛ آموزش استفاده از ChatGPT و ساخت ربات WhatsApp با API درواره

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

کاربر عادی ممکن است بخواهد بدون خروج از WhatsApp از یک دستیار هوش مصنوعی سؤال بپرسد، متن بنویسد، ترجمه کند یا تصویر را تحلیل کند. یک کسب‌وکار نیز ممکن است به رباتی نیاز داشته باشد که:

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

برای استفاده از هوش مصنوعی در واتساپ چند مسیر متفاوت وجود دارد. بعضی کاربران به Meta AI یا سرویس رسمی ChatGPT دسترسی دارند؛ درحالی‌که کسب‌وکارها می‌توانند با استفاده از WhatsApp Business Platform و API هوش مصنوعی درواره، دستیار اختصاصی خود را توسعه دهند.

در این مقاله تمام این روش‌ها را بررسی می‌کنیم و در بخش عملی، یک ربات هوش مصنوعی WhatsApp را با Python، FastAPI، WhatsApp Cloud API و API درواره می‌سازیم.

هوش مصنوعی واتساپ چیست؟

عبارت «هوش مصنوعی واتساپ» می‌تواند به چند مفهوم متفاوت اشاره کند:

  1. دستیار Meta AI که مستقیماً داخل WhatsApp نمایش داده می‌شود.
  2. دسترسی رسمی یا محدود به ChatGPT از طریق WhatsApp.
  3. ربات‌های آماده‌ای که شرکت‌های دیگر در واتساپ ارائه می‌کنند.
  4. چت‌بات اختصاصی یک کسب‌وکار که با WhatsApp Business Platform ساخته شده است.
  5. اتصال واتساپ به مدل‌های زبانی، سیستم CRM، فروشگاه یا پایگاه دانش.
  6. اتوماسیون پاسخ‌گویی، فروش و پشتیبانی از طریق ابزارهایی مانند n8n.

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

روش‌های استفاده از هوش مصنوعی در واتساپ

روشمناسب براینیاز به برنامه‌نویسیقابلیت شخصی‌سازی
Meta AI داخل WhatsAppاستفاده شخصی و عمومیخیرمحدود
ChatGPT رسمی در WhatsAppاستفاده شخصی در مناطق پشتیبانی‌شدهخیرمحدود
ربات آماده شخص ثالثاستفاده سریع و آزمایشیخیرکم تا متوسط
WhatsApp Business Appکسب‌وکار کوچک و پاسخ دستیخیرمحدود
WhatsApp Business Platformکسب‌وکار و چت‌بات اختصاصیبله یا استفاده از شریک فنیزیاد
Cloud API و دروارهساخت دستیار هوش مصنوعی اختصاصیبلهبسیار زیاد
اتصال از طریق n8nاتوماسیون کم‌کدکمزیاد

اگر فقط به یک دستیار عمومی نیاز دارید، قابلیت داخلی یا سرویس رسمی ساده‌تر است. اگر می‌خواهید ربات به محصولات، سفارش‌ها، CRM یا اطلاعات شرکت متصل شود، باید از WhatsApp Business Platform استفاده کنید.

استفاده از Meta AI در واتساپ

Meta AI دستیار هوش مصنوعی شرکت Meta است که می‌تواند در برخی حساب‌ها مستقیماً داخل واتساپ نمایش داده شود. قابلیت‌های قابل‌مشاهده ممکن است شامل موارد زیر باشند:

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

دسترسی به Meta AI به کشور، حساب، نسخه برنامه و روند انتشار قابلیت وابسته است. راهنمای رسمی WhatsApp نیز تأکید می‌کند که Meta AI و بعضی تجربه‌های مرتبط فقط در کشورهای محدود ارائه می‌شوند و ممکن است حتی برای تمام کاربران یک کشور هم‌زمان فعال نباشند. راهنمای رسمی Meta AI در WhatsApp

چگونه بررسی کنیم Meta AI برای ما فعال است؟

  1. WhatsApp را از فروشگاه رسمی به‌روز کنید.
  2. برنامه را باز کنید.
  3. بخش Chats یا Search را بررسی کنید.
  4. به دنبال آیکون Meta AI یا گفت‌وگویی با همین نام بگردید.
  5. در صورت نمایش قابلیت، گفت‌وگو را باز کنید.
  6. پیش از ارسال اطلاعات، توضیحات حریم خصوصی و نحوۀ استفاده از داده را مطالعه کنید.

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

چند پرامپت کاربردی برای Meta AI در واتساپ

این پیام را رسمی‌تر و کوتاه‌تر بازنویسی کن:

[متن پیام]
برای جلسه فردا یک فهرست کوتاه از موضوعات قابل‌بررسی آماده کن.

موضوع جلسه:
[موضوع]

شرکت‌کنندگان:
[افراد یا نقش‌ها]

هدف:
[هدف]
متن زیر را به فارسی روان ترجمه کن و اصطلاحات فنی را به شکل رایج حفظ کن:

[متن]
برای پاسخ به این پیام سه نسخه پیشنهاد بده:
1. رسمی
2. دوستانه
3. بسیار کوتاه

پیام:
[متن دریافتی]
این متن را در پنج نکته خلاصه کن و موارد نیازمند پیگیری را جداگانه بنویس:

[متن]

هر خروجی تولیدشده باید قبل از ارسال برای مخاطب بازبینی شود. مدل ممکن است منظور شما را اشتباه برداشت کند یا اطلاعاتی را تغییر دهد.

آیا ChatGPT رسمی در واتساپ وجود دارد؟

وضعیت دسترسی رسمی ChatGPT در WhatsApp در طول زمان تغییر کرده است. طبق اطلاعات رسمی OpenAI، ChatGPT پس از یک دوره توقف، در ژوئیه ۲۰۲۶ دوباره برای بعضی کاربران منطقۀ اقتصادی اروپا در WhatsApp ارائه شده است. دسترسی بر اساس کد کشور شماره واتساپ تعیین می‌شود و ممکن است به‌تدریج منتشر شود. راهنمای رسمی OpenAI

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

اگر سرویسی با عنوان «ربات ChatGPT واتساپ» معرفی می‌شود، ابتدا مشخص کنید:

  • آیا حساب رسمی و تأییدشده است؟
  • ارائه‌دهنده آن چه شرکتی است؟
  • پیام‌ها چگونه پردازش می‌شوند؟
  • آیا مکالمه ذخیره می‌شود؟
  • چه محدودیت استفاده‌ای دارد؟
  • آیا برای استفاده به کلید API نیاز دارد؟
  • شرایط پرداخت و لغو سرویس چیست؟
  • آیا اطلاعات تماس یا فایل‌های شما در سیستم دیگری نگهداری می‌شوند؟

نام ChatGPT در عنوان یک ربات به‌تنهایی رسمی‌بودن آن را اثبات نمی‌کند.

چه اطلاعاتی را نباید برای ربات‌های عمومی بفرستیم؟

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

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

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

تفاوت WhatsApp، WhatsApp Business و WhatsApp Business Platform

یکی از اشتباهات رایج این است که تمام محصولات تجاری واتساپ یکسان در نظر گرفته می‌شوند.

WhatsApp Messenger

نسخه عادی برای ارتباطات شخصی است. این نسخه برای ساخت ربات اختصاصی یا اتصال مستقیم Backend طراحی نشده است.

WhatsApp Business App

این برنامه برای کسب‌وکارهای کوچک مناسب است و امکاناتی مانند موارد زیر ارائه می‌دهد:

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

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

WhatsApp Business Platform

WhatsApp Business Platform مجموعه‌ای از APIها و راهکارها برای ارتباط برنامه‌ریزی‌شده و مقیاس‌پذیر کسب‌وکار با کاربران است. برخلاف WhatsApp Business App، این پلتفرم یک اپلیکیشن ساده روی گوشی نیست؛ بلکه توسعه‌دهندگان از API آن برای اتصال واتساپ به Backend، CRM، پشتیبانی و اتوماسیون استفاده می‌کنند. توضیح رسمی تفاوت محصولات WhatsApp

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

ربات هوش مصنوعی واتساپ چه کاربردهایی دارد؟

پاسخ‌گویی به پرسش‌های پرتکرار

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

دستیار فروش

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

پیگیری سفارش

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

رزرو و نوبت‌دهی

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

پشتیبانی محصول

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

دریافت سرنخ فروش

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

دسته‌بندی درخواست‌ها

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

خلاصه‌سازی مکالمه برای کارشناس

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

پشتیبانی چندزبانه

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

ربات واتساپ نباید چه کارهایی را کاملاً خودکار انجام دهد؟

بهتر است برای موارد زیر تأیید انسانی یا اتصال قطعی به سیستم واقعی در نظر گرفته شود:

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

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

معماری ساخت ربات هوش مصنوعی واتساپ

معماری ساده ربات به شکل زیر است:

کاربر WhatsApp
↓
WhatsApp Business Platform
↓
Webhook
↓
Backend ربات
↓
مدیریت گفتگو و قوانین کسب‌وکار
↓
API هوش مصنوعی درواره
↓
مدل انتخاب‌شده
↓
Backend ربات
↓
WhatsApp Cloud API
↓
پاسخ به کاربر

برای ربات متصل به اطلاعات شرکت می‌توان اجزای بیشتری اضافه کرد:

Webhook واتساپ
↓
اعتبارسنجی و ثبت Message ID
↓
صف پردازش
↓
مدیریت نشست گفتگو
↓
تشخیص هدف پیام
↓
بازیابی اطلاعات از پایگاه دانش یا CRM
↓
تولید پاسخ با API درواره
↓
کنترل خروجی
↓
ارسال به واتساپ یا انتقال به کارشناس

WhatsApp Cloud API چگونه کار می‌کند؟

Cloud API بخشی از WhatsApp Business Platform است. برای ارسال پیام از Graph API و برای دریافت پیام و رویدادها از Webhook استفاده می‌شود. ارتباط از طریق HTTPS انجام می‌شود. معرفی رسمی WhatsApp Business Platform

فرایند کلی:

  1. کاربر به شماره تجاری پیام می‌دهد.
  2. WhatsApp یک درخواست JSON به Webhook شما ارسال می‌کند.
  3. Backend متن پیام را استخراج می‌کند.
  4. پیام برای مدل هوش مصنوعی ارسال می‌شود.
  5. پاسخ مدل کنترل می‌شود.
  6. Backend پاسخ را از طریق Cloud API ارسال می‌کند.
  7. وضعیت ارسال و تحویل از طریق Webhook دریافت می‌شود.

پیش‌نیازهای ساخت ربات واتساپ

برای اجرای این آموزش به موارد زیر نیاز دارید:

  • حساب توسعه‌دهنده Meta
  • یک App در پنل Meta
  • فعال‌کردن محصول WhatsApp
  • WhatsApp Business Account
  • Phone Number ID
  • Access Token
  • Verify Token انتخابی برای Webhook
  • یک آدرس HTTPS عمومی
  • حساب درواره
  • کلید API درواره
  • شناسه مدل درواره
  • Python 3.11 یا جدیدتر

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

مراحل راه‌اندازی WhatsApp Cloud API

مرحله اول: ساخت App در Meta

به بخش Meta for Developers بروید و یک App مناسب کسب‌وکار ایجاد کنید. سپس محصول WhatsApp را به آن اضافه کنید.

ساختار پنل ممکن است با به‌روزرسانی‌های Meta تغییر کند؛ بنابراین از راهنمای رسمی شروع Cloud API استفاده کنید. راهنمای شروع WhatsApp Cloud API

مرحله دوم: دریافت اطلاعات اتصال

در پنل WhatsApp اطلاعات زیر را پیدا کنید:

  • Phone Number ID
  • WhatsApp Business Account ID
  • Access Token آزمایشی یا دائمی
  • شماره آزمایشی
  • شماره دریافت‌کننده مجاز در حالت تست

توکن را در کد قرار ندهید. آن را در متغیر محیطی نگه دارید.

مرحله سوم: ایجاد Webhook

Webhook شما باید دو مسیر داشته باشد:

GET /webhook
POST /webhook

مسیر GET برای تأیید Webhook استفاده می‌شود. مسیر POST پیام‌ها و رویدادها را دریافت می‌کند.

Meta هنگام تأیید، Verify Token و Challenge ارسال می‌کند. اگر توکن صحیح باشد، Backend باید مقدار Challenge را برگرداند.

مرحله چهارم: ثبت Callback URL

آدرس HTTPS مسیر Webhook را در پنل WhatsApp وارد کنید:

https://your-domain.example/webhook

سپس همان Verify Token تعریف‌شده در سرور را وارد کنید.

مرحله پنجم: عضویت در رویداد Messages

پس از تأیید Webhook، دریافت رویدادهای پیام را فعال کنید. مستندات رسمی توضیح می‌دهد که Webhook پیام‌های ورودی و وضعیت پیام‌های خروجی را با Payloadهای JSON ارسال می‌کند. مرجع Webhook پیام‌ها

ساخت پروژه ربات واتساپ با Python و FastAPI

ساختار پروژه:

whatsapp-ai-bot/
  app.py
  requirements.txt
  .env.example

فایل requirements.txt

fastapi
uvicorn[standard]
httpx
openai
python-dotenv

فایل .env.example

DARVAREH_API_KEY=YOUR_DARVAREH_API_KEY
DARVAREH_MODEL_ID=YOUR_MODEL_ID

WHATSAPP_ACCESS_TOKEN=YOUR_WHATSAPP_ACCESS_TOKEN
WHATSAPP_PHONE_NUMBER_ID=YOUR_PHONE_NUMBER_ID
WHATSAPP_VERIFY_TOKEN=CHOOSE_A_RANDOM_VERIFY_TOKEN
META_GRAPH_VERSION=YOUR_GRAPH_API_VERSION

YOUR_MODEL_ID شناسه مدل در درواره است. مدل را بر اساس کیفیت فارسی، سرعت، هزینه و نیاز پروژه انتخاب کنید.

نسخه Graph API را از پنل و مستندات فعلی Meta دریافت کنید. آن را به‌صورت ثابت و قدیمی از نمونه‌های اینترنتی کپی نکنید.

فایل app.py

import os
from typing import Any

import httpx
from dotenv import load_dotenv
from fastapi import BackgroundTasks, FastAPI, HTTPException, Query, Request
from fastapi.responses import PlainTextResponse
from openai import AsyncOpenAI

load_dotenv()

app = FastAPI(title="WhatsApp AI Bot")

DARVAREH_API_KEY = os.environ["DARVAREH_API_KEY"]
DARVAREH_MODEL_ID = os.environ["DARVAREH_MODEL_ID"]

WHATSAPP_ACCESS_TOKEN = os.environ["WHATSAPP_ACCESS_TOKEN"]
WHATSAPP_PHONE_NUMBER_ID = os.environ["WHATSAPP_PHONE_NUMBER_ID"]
WHATSAPP_VERIFY_TOKEN = os.environ["WHATSAPP_VERIFY_TOKEN"]
META_GRAPH_VERSION = os.environ["META_GRAPH_VERSION"]

ai_client = AsyncOpenAI(
    api_key=DARVAREH_API_KEY,
    base_url="https://api.darvareh.ir/v1",
)

SYSTEM_PROMPT = """
شما دستیار فارسی یک کسب‌وکار هستید.

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


@app.get("/health")
async def health() -> dict[str, str]:
    return {"status": "ok"}


@app.get("/webhook", response_class=PlainTextResponse)
async def verify_webhook(
    mode: str | None = Query(default=None, alias="hub.mode"),
    verify_token: str | None = Query(default=None, alias="hub.verify_token"),
    challenge: str | None = Query(default=None, alias="hub.challenge"),
) -> str:
    if mode == "subscribe" and verify_token == WHATSAPP_VERIFY_TOKEN:
        return challenge or ""

    raise HTTPException(status_code=403, detail="Webhook verification failed")


def extract_text_messages(payload: dict[str, Any]) -> list[dict[str, str]]:
    extracted: list[dict[str, str]] = []

    for entry in payload.get("entry", []):
        for change in entry.get("changes", []):
            value = change.get("value", {})

            for message in value.get("messages", []):
                if message.get("type") != "text":
                    continue

                sender = message.get("from")
                message_id = message.get("id")
                text = message.get("text", {}).get("body", "").strip()

                if sender and message_id and text:
                    extracted.append(
                        {
                            "sender": sender,
                            "message_id": message_id,
                            "text": text,
                        }
                    )

    return extracted


async def generate_ai_response(user_text: str) -> str:
    response = await ai_client.chat.completions.create(
        model=DARVAREH_MODEL_ID,
        temperature=0.3,
        max_tokens=500,
        messages=[
            {"role": "system", "content": SYSTEM_PROMPT},
            {"role": "user", "content": user_text},
        ],
    )

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

    if not answer:
        return "در حال حاضر امکان تولید پاسخ وجود ندارد. لطفاً دوباره تلاش کنید."

    return answer.strip()


async def send_whatsapp_text(recipient: str, text: str) -> None:
    url = (
        f"https://graph.facebook.com/"
        f"{META_GRAPH_VERSION}/"
        f"{WHATSAPP_PHONE_NUMBER_ID}/messages"
    )

    headers = {
        "Authorization": f"Bearer {WHATSAPP_ACCESS_TOKEN}",
        "Content-Type": "application/json",
    }

    payload = {
        "messaging_product": "whatsapp",
        "recipient_type": "individual",
        "to": recipient,
        "type": "text",
        "text": {
            "preview_url": False,
            "body": text[:3500],
        },
    }

    async with httpx.AsyncClient(timeout=20.0) as client:
        response = await client.post(url, headers=headers, json=payload)
        response.raise_for_status()


async def process_message(sender: str, text: str) -> None:
    try:
        answer = await generate_ai_response(text)
        await send_whatsapp_text(sender, answer)
    except Exception:
        fallback_message = (
            "در پردازش پیام مشکلی ایجاد شد. "
            "لطفاً کمی بعد دوباره تلاش کنید یا با پشتیبانی در ارتباط باشید."
        )

        try:
            await send_whatsapp_text(sender, fallback_message)
        except Exception:
            pass


@app.post("/webhook")
async def receive_webhook(
    request: Request,
    background_tasks: BackgroundTasks,
) -> dict[str, str]:
    payload = await request.json()
    messages = extract_text_messages(payload)

    for message in messages:
        background_tasks.add_task(
            process_message,
            message["sender"],
            message["text"],
        )

    return {"status": "accepted"}

اجرای برنامه

uvicorn app:app --host 0.0.0.0 --port 8000

بررسی سلامت برنامه:

curl http://localhost:8000/health

خروجی:

{"status":"ok"}

پس از قراردادن برنامه پشت یک آدرس HTTPS، مسیر زیر را در پنل Meta ثبت کنید:

https://your-domain.example/webhook

این نمونه کد چه کاری انجام می‌دهد؟

  1. درخواست تأیید Webhook را دریافت می‌کند.
  2. Verify Token را بررسی می‌کند.
  3. پیام‌های متنی WhatsApp را استخراج می‌کند.
  4. متن را برای مدل انتخاب‌شده در درواره می‌فرستد.
  5. پاسخ مدل را دریافت می‌کند.
  6. پاسخ را از طریق WhatsApp Cloud API برای کاربر ارسال می‌کند.
  7. در صورت خطا، یک پیام عمومی نمایش می‌دهد.

این نمونه برای آموزش و ساخت MVP مناسب است. برای محیط عملیاتی باید اجزای بیشتری اضافه شوند.

اضافه‌کردن حافظه مکالمه

کد فعلی هر پیام را مستقل پردازش می‌کند. برای ساخت گفت‌وگوی چندمرحله‌ای باید تاریخچه هر کاربر ذخیره شود.

ساختار ساده جدول:

conversations
  id
  whatsapp_user_id
  status
  created_at
  updated_at

messages
  id
  conversation_id
  role
  content
  whatsapp_message_id
  created_at

هنگام دریافت پیام:

  1. گفتگو را بر اساس شناسه واتساپ پیدا کنید.
  2. پیام جدید را ذخیره کنید.
  3. آخرین پیام‌های مرتبط را بخوانید.
  4. آن‌ها را همراه پیام جدید به مدل ارسال کنید.
  5. پاسخ را ذخیره کنید.
  6. پاسخ را برای کاربر بفرستید.

تمام تاریخچه را در هر درخواست ارسال نکنید. برای مکالمات طولانی از ترکیب این روش‌ها استفاده کنید:

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

اتصال ربات به اطلاعات اختصاصی کسب‌وکار

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

فرایند RAG:

پیام مشتری
↓
استخراج سؤال
↓
جست‌وجو در پایگاه دانش
↓
بازیابی بخش‌های مرتبط
↓
ارسال سؤال و منابع به مدل
↓
تولید پاسخ مستند
↓
بازبینی یا ارسال

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

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

اطلاعات متغیر مانند قیمت و موجودی بهتر است از API واقعی فروشگاه دریافت شوند؛ نه از فایل متنی قدیمی.

اتصال ربات واتساپ به فروشگاه یا CRM

مدل زبانی نباید مستقیماً عملیات کسب‌وکار را حدس بزند. برای اجرای کار واقعی باید ابزار یا Function تعریف شود.

نمونه ابزارها:

get_order_status(order_id)
search_products(query, filters)
get_product_inventory(product_id)
create_support_ticket(subject, description)
request_human_agent(reason)
get_available_appointments(date)
create_lead(name, phone, need)

گردش کار بررسی سفارش:

کاربر: سفارش من کجاست؟
↓
ربات: لطفاً کد سفارش را ارسال کنید.
↓
کاربر: ۱۲۳۴۵
↓
Backend: get_order_status("12345")
↓
سیستم سفارش: ارسال‌شده، کد رهگیری ...
↓
مدل: تولید پاسخ قابل‌فهم براساس نتیجه واقعی
↓
WhatsApp: ارسال پاسخ

مدل نباید بدون اجرای get_order_status وضعیت سفارش را اعلام کند.

انتقال مکالمه به کارشناس انسانی

یک ربات حرفه‌ای باید بداند چه زمانی پاسخ‌گویی را متوقف کند.

شرایط انتقال:

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

هنگام انتقال، خلاصه‌ای مانند این تولید کنید:

موضوع: تأخیر در ارسال سفارش
شناسه سفارش: ۱۲۳۴۵
درخواست مشتری: پیگیری وضعیت و زمان تحویل
اقدامات ربات:
- کد سفارش دریافت شد.
- وضعیت از سیستم بررسی شد.
- تاریخ تحویل دقیق موجود نبود.
دلیل انتقال:
نیاز به بررسی توسط واحد ارسال

این خلاصه باعث می‌شود مشتری مجبور نباشد تمام گفتگو را دوباره تکرار کند.

مدیریت پیام‌های غیرمتنی

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

پیام صوتی

گردش کار:

دریافت Media ID
↓
دریافت فایل از WhatsApp
↓
تبدیل گفتار به متن
↓
نمایش یا ذخیره Transcript
↓
پردازش با مدل
↓
ارسال پاسخ متنی یا صوتی

تصویر

گردش کار:

دریافت تصویر
↓
دریافت Caption کاربر
↓
ارسال به مدل چندوجهی
↓
تحلیل محدود به هدف تعریف‌شده
↓
ارسال پاسخ

سند

گردش کار:

دریافت فایل
↓
اعتبارسنجی نوع و حجم
↓
استخراج متن
↓
تقسیم متن
↓
خلاصه‌سازی یا پاسخ‌گویی
↓
ارسال نتیجه

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

استفاده از n8n برای اتصال واتساپ به درواره

اگر نمی‌خواهید تمام جریان را با کد پیاده‌سازی کنید، می‌توانید از n8n استفاده کنید.

گردش کار ساده:

WhatsApp Webhook
↓
Set / Function
↓
HTTP Request به API درواره
↓
پردازش پاسخ
↓
HTTP Request به WhatsApp Cloud API

برای جریان حرفه‌ای‌تر:

Webhook
↓
بررسی نوع پیام
↓
تشخیص مشتری در CRM
↓
بازیابی تاریخچه
↓
جست‌وجو در پایگاه دانش
↓
ارسال به درواره
↓
ثبت پاسخ
↓
ارسال به WhatsApp
↓
انتقال اختیاری به کارشناس

در n8n نیز کلیدها باید در Credentials نگهداری شوند و نباید داخل Workflow عمومی قرار بگیرند.

قیمت استفاده از ربات هوش مصنوعی واتساپ

هزینه نهایی می‌تواند از چند بخش تشکیل شود:

  1. هزینه WhatsApp Business Platform
  2. هزینه سرور و پایگاه داده
  3. هزینه مدل هوش مصنوعی
  4. هزینه تبدیل صوت یا پردازش تصویر
  5. هزینه توسعه و نگهداری
  6. هزینه ابزارهای واسط یا اتوماسیون

طبق صفحه رسمی قیمت‌گذاری WhatsApp Business Platform، هزینه پیام‌ها می‌تواند بر اساس کشور مقصد و دسته پیام محاسبه شود. دسته‌ها شامل Marketing، Utility، Authentication و Service هستند و قیمت‌ها ممکن است تغییر کنند. قیمت رسمی WhatsApp Business Platform

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

چگونه هزینه مدل را کاهش دهیم؟

مدل را براساس وظیفه انتخاب کنید

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

پاسخ را کوتاه نگه دارید

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

تاریخچه غیرضروری را ارسال نکنید

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

پاسخ‌های ثابت را از مدل نگیرید

ساعت کاری، آدرس و پاسخ‌های کاملاً ثابت را می‌توان بدون فراخوانی مدل ارسال کرد.

نتیجه ابزارها را ساخت‌یافته نگه دارید

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

پاسخ‌های پرتکرار را Cache کنید

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

آمادگی ربات برای محیط عملیاتی

نمونه آموزشی باید پیش از استفاده واقعی توسعه پیدا کند.

صف پردازش

Webhook باید سریع پاسخ دهد. پردازش مدل را در صفی مانند Celery، Redis Queue یا سیستم پیام قرار دهید.

جلوگیری از پردازش تکراری

هر پیام WhatsApp دارای Message ID است. آن را ذخیره کنید تا Retry یک Webhook باعث ارسال پاسخ تکراری نشود.

مدیریت Timeout

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

محدودکردن تعداد درخواست

برای هر کاربر و هر بازه زمانی محدودیت منطقی تعریف کنید.

ثبت رخداد

این اطلاعات را بدون ذخیره محتوای غیرضروری ثبت کنید:

  • Message ID
  • وضعیت پردازش
  • زمان دریافت
  • زمان پاسخ
  • مدل استفاده‌شده
  • تعداد توکن
  • نوع خطا
  • وضعیت ارسال

نگهداری کلیدها

کلیدهای Meta و درواره را در Secret Manager یا متغیر محیطی نگه دارید.

مسیر انتقال به انسان

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

آزمایش با پیام‌های واقعی

ربات را با موارد زیر آزمایش کنید:

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

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

نقش:
دستیار پشتیبانی فارسی [نام کسب‌وکار]

هدف:
پاسخ اولیه به مشتری و هدایت درخواست به مسیر درست

لحن:
محترمانه، کوتاه، روشن و حرفه‌ای

قواعد:
1. فقط براساس اطلاعات ارائه‌شده پاسخ بده.
2. اگر پاسخ در اطلاعات وجود ندارد، حدس نزن.
3. در هر پیام حداکثر یک یا دو سؤال روشن‌کننده بپرس.
4. قیمت، موجودی و وضعیت سفارش را تولید نکن.
5. برای اطلاعات متغیر درخواست اجرای ابزار مناسب بده.
6. از کاربر رمز، کد یک‌بارمصرف یا اطلاعات بانکی درخواست نکن.
7. اگر کاربر کارشناس انسانی خواست، درخواست انتقال ثبت کن.
8. پاسخ را برای محیط WhatsApp کوتاه و خوانا بنویس.
9. از جدول‌های عریض و Markdown پیچیده استفاده نکن.
10. اگر درخواست خارج از خدمات شرکت است، محترمانه اعلام کن.
11. در پایان هر پیام CTA تکراری اضافه نکن.
12. هیچ قابلیت، تخفیف یا تعهدی از خودت نساز.

اشتباهات رایج در ساخت ربات هوش مصنوعی واتساپ

استفاده از روش‌های غیررسمی اتصال

برای کسب‌وکار از WhatsApp Business Platform و روش‌های رسمی استفاده کنید. اتصال‌هایی که با شبیه‌سازی WhatsApp Web کار می‌کنند ممکن است پایدار نباشند.

پاسخ‌گویی بدون پایگاه دانش

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

اعلام قیمت یا موجودی از حافظه مدل

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

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

هیچ رباتی نباید تنها مسیر ارتباط مشتری با شرکت باشد.

ارسال پاسخ‌های طولانی

واتساپ محیط مناسبی برای مقاله‌های چندصفحه‌ای نیست. پاسخ را کوتاه کنید و در صورت نیاز لینک راهنما بدهید.

پردازش دوباره Webhook

ذخیره Message ID برای جلوگیری از پاسخ تکراری ضروری است.

قراردادن کلید API در کد

کلیدها را در Repository یا کد سمت کاربر قرار ندهید.

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

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

نادیده‌گرفتن فینگلیش و غلط‌های تایپی

پیام‌های واقعی مشتریان همیشه رسمی و درست نوشته نمی‌شوند.

خودکارکردن عملیات حساس

پیش از لغو سفارش، ثبت پرداخت، تغییر رزرو یا عملیات مشابه، کنترل و تأیید مناسب در نظر بگیرید.

چک‌لیست راه‌اندازی ربات واتساپ

حساب و اتصال

  • آیا WhatsApp Business Platform راه‌اندازی شده است؟
  • آیا Phone Number ID صحیح است؟
  • آیا Access Token در محیط امن نگهداری می‌شود؟
  • آیا Webhook تأیید شده است؟
  • آیا رویداد Messages فعال است؟
  • آیا Callback URL از HTTPS استفاده می‌کند؟

هوش مصنوعی

  • آیا مدل مناسب فارسی انتخاب شده است؟
  • آیا System Prompt محدوده پاسخ‌گویی را مشخص می‌کند؟
  • آیا طول پاسخ محدود شده است؟
  • آیا مدل از ساخت اطلاعات منع شده است؟
  • آیا هزینه و توکن ثبت می‌شوند؟
  • آیا در صورت خطا Fallback وجود دارد؟

اطلاعات کسب‌وکار

  • آیا پایگاه دانش به‌روز است؟
  • آیا قیمت از منبع واقعی خوانده می‌شود؟
  • آیا وضعیت سفارش از API دریافت می‌شود؟
  • آیا پاسخ‌های پرتکرار تأیید شده‌اند؟
  • آیا اطلاعات قدیمی حذف می‌شوند؟

عملیات

  • آیا Message ID ذخیره می‌شود؟
  • آیا صف پردازش وجود دارد؟
  • آیا Timeout تعریف شده است؟
  • آیا انتقال به کارشناس ممکن است؟
  • آیا ربات در شرایط خطا پاسخ مناسب می‌دهد؟
  • آیا گزارش عملکرد قابل‌بررسی است؟

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

آیا هوش مصنوعی در واتساپ رایگان است؟

بعضی قابلیت‌ها ممکن است دسترسی رایگان محدود داشته باشند، اما دسترسی به منطقه و حساب وابسته است. در ربات اختصاصی نیز هزینه WhatsApp Business Platform، مدل هوش مصنوعی و زیرساخت می‌تواند وجود داشته باشد.

چرا Meta AI در واتساپ من نمایش داده نمی‌شود؟

Meta AI به‌تدریج و در مناطق محدود منتشر می‌شود. نسخه برنامه، کشور، حساب و شماره می‌توانند روی دسترسی اثر بگذارند.

آیا ChatGPT رسمی در واتساپ کار می‌کند؟

طبق اطلاعات رسمی OpenAI در ژوئیه ۲۰۲۶، این قابلیت برای بعضی کاربران منطقۀ اقتصادی اروپا دوباره ارائه شده است. دسترسی به کد کشور شماره و روند انتشار وابسته است و نباید برای تمام مناطق فرض شود.

آیا می‌توان ChatGPT را به WhatsApp Business متصل کرد؟

برای ساخت چت‌بات کسب‌وکار می‌توان WhatsApp Business Platform را به یک API مدل زبانی متصل کرد. درواره امکان دسترسی به مدل‌های مختلف را از طریق API یکپارچه فراهم می‌کند.

آیا بدون برنامه‌نویسی می‌توان ربات واتساپ ساخت؟

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

آیا درواره ربات آماده واتساپ ارائه می‌دهد؟

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

آیا ربات می‌تواند پیام صوتی را پاسخ دهد؟

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

چگونه ربات را به اطلاعات محصولات متصل کنیم؟

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

آیا ربات می‌تواند به چند زبان پاسخ دهد؟

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

برای شروع چه مدلی انتخاب کنیم؟

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

جمع‌بندی

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

برای استفاده شخصی می‌توانید در صورت فعال‌بودن قابلیت، از Meta AI یا سرویس‌های رسمی منطقه خود استفاده کنید. برای کسب‌وکار، WhatsApp Business Platform مسیر مناسب‌تری است؛ زیرا امکان اتصال رسمی به Backend، CRM، فروشگاه و سیستم‌های داخلی را فراهم می‌کند.

فرایند ساخت ربات اختصاصی شامل این مراحل است:

  1. راه‌اندازی WhatsApp Business Platform
  2. دریافت اطلاعات Cloud API
  3. ایجاد Webhook
  4. دریافت پیام کاربر
  5. مدیریت تاریخچه و وضعیت گفتگو
  6. ارسال پیام به API درواره
  7. دریافت پاسخ مدل
  8. کنترل اطلاعات و محدودیت‌ها
  9. ارسال پاسخ از طریق WhatsApp
  10. انتقال مکالمات پیچیده به کارشناس
  11. اتصال اطلاعات متغیر به سیستم واقعی
  12. پایش هزینه، کیفیت و خطاها

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

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

مقالات مرتبط

برای مطالعه شرایط استفاده و محدودیت‌های مسئولیت، صفحه «سلب مسئولیت» را مشاهده کنید.

Read more

اتوماسیون هوش مصنوعی چیست؟ کاربردها و آموزش ساخت AI Automation

اتوماسیون هوش مصنوعی چیست؟ کاربردها و آموزش ساخت AI Automation

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

Agentic Commerce چیست؟ آینده خرید با ایجنت هوش مصنوعی

Agentic Commerce چیست؟ آینده خرید با ایجنت هوش مصنوعی

Agentic Commerce شیوه‌ای جدید برای خرید اینترنتی است که در آن ایجنت هوش مصنوعی می‌تواند نیاز کاربر را بفهمد، محصولات را جست‌وجو و مقایسه کند و فرایند خرید را پیش ببرد. در این راهنما با معماری، UCP، ACP و پیاده‌سازی آن با API درواره آشنا می‌شوید.