Vercel AI SDK کے ساتھ WhatsApp ایجنٹ بنائیں
آنے والے میسج اس route handler تک پہنچتے ہیں جو نمبر کی ویب ہک منزل کے طور پر سیٹ ہو۔ handler generateText کو کال کرتا ہے اور جواب Cloud API کے ذریعے بھیجتا ہے۔ نمبر پر عمل کرنے والے ٹولز کے لیے @ai-sdk/mcp کا createMCPClient، HTTP پر EasyCoexistence MCP سرور سے جڑتا ہے اور authProvider کے ذریعے OAuth سے سائن اِن کرتا ہے۔
وہ پیکیج جو createMCPClient فراہم کرتا ہے، یعنی AI SDK کا MCP کلائنٹ۔
AI SDK کے MCP HTTP ٹرانسپورٹ پر authProvider دے کر OAuth استعمال کیا جا سکتا ہے۔
WhatsApp Business ایپ اور Cloud API دونوں کے ساتھ استعمال ہونے والے نمبر کے لیے طے شدہ تھرو پٹ۔
route handler WhatsApp میسج کیسے وصول کرتا ہے؟
ایک ہی route پر دو میتھڈز رکھیں اور اسے نمبر کی ویب ہک منزل بنائیں، پاتھ میں ایک لمبا بے ترتیب سیکرٹ رکھ کر۔
GET، Meta کی تصدیق کا جواب دیتا ہے۔ کوئری سے hub.mode، hub.verify_token اور hub.challenge پڑھیں، ٹوکن کا موازنہ کریں اور challenge کو سادہ متن کے طور پر واپس کریں۔ اسے JSON ہیلپر سے واپس کرنا کلاسک غلطی ہے: جواب کے گرد اقتباسی نشان آ جاتے ہیں اور Meta ڈیلیوری شروع ہی نہیں کرتی۔
POST ایونٹس وصول کرتا ہے۔ فوراً 200 واپس کریں اور ماڈل کی کال بعد میں کریں، کیونکہ Meta سست جواب پر دوبارہ کوشش کرتی ہے اور کولڈ اسٹارٹ میں ماڈل کو ساتھ ہی چلانے سے ایک ہی میسج کا جواب دو بار جا سکتا ہے۔ جو پلیٹ فارم جواب بھیجتے ہی فنکشن ختم کر دیتے ہیں، وہاں کام کو کیو کے حوالے کریں یا پلیٹ فارم کے اس طریقے کے جو جواب کے بعد کام چلاتا ہے۔
پاتھ کا سیکرٹ ہی تصدیق کا ذریعہ ہے۔ Meta ہر ڈیلیوری پر Tech Provider کے ایپ سیکرٹ سے دستخط کرتی ہے، اس لیے X-Hub-Signature-256 ہیڈر آپ کی طرف سے چیک نہیں ہو سکتا۔
AI SDK، WhatsApp ٹولز کیسے لوڈ کرتا ہے؟
@ai-sdk/mcp کے createMCPClient اور HTTP ٹرانسپورٹ کے ذریعے، جسے AI SDK کی دستاویزات پروڈکشن کے لیے تجویز کرتی ہیں۔ ٹرانسپورٹ سرور کا URL اور ایک authProvider لیتا ہے، اور EasyCoexistence MCP سرور کو authProvider کے ذریعے OAuth سے ہی اجازت ملتی ہے: وہ OAuth میٹا ڈیٹا شائع کرتا ہے، ڈائنامک کلائنٹ رجسٹریشن اور PKCE سپورٹ کرتا ہے، اور سائن اِن کے بعد اپنے ٹوکن جاری کرتا ہے۔ ہیڈر میں رکھنے کے لیے کوئی API key نہیں ہے۔
کلائنٹ کے ٹولز سیدھے generateText یا streamText میں دیے جاتے ہیں۔ پھر ماڈل کو list_numbers، send_message، send_template، get_number_health اور باقی ٹولز نظر آتے ہیں، جن کی تفصیل میں 24 گھنٹے کی ونڈو لکھی ہوتی ہے۔ کال مکمل ہونے پر کلائنٹ بند کریں: اسٹریم میں onEnd callback کے اندر، ورنہ finally block میں، جیسا کہ AI SDK کی دستاویزات کہتی ہیں۔
اسے وہاں استعمال کریں جہاں فیصلہ ماڈل کو کرنا ہو۔ ابھی آئے ہوئے میسج کا جواب دینے کے لیے handler سے Cloud API کی براہ راست کال زیادہ مختصر ہے۔
import { createMCPClient } from "@ai-sdk/mcp";
const mcp = await createMCPClient({
transport: {
type: "http",
url: "https://easycoexistence.com/api/mcp",
authProvider, // your OAuthClientProvider implementation
},
});
try {
const tools = await mcp.tools();
// pass tools to generateText({ model, tools, prompt })
} finally {
await mcp.close();
}نمبر Coexistence پر ہونے سے کیا فرق پڑتا ہے؟
دو باتیں ہیں جو کوڈ کو معلوم ہونی چاہئیں۔ پہلی یہ کہ گفتگو میں پہلے سے کوئی انسان موجود ہو سکتا ہے۔ نمبر پر WhatsApp Business ایپ چلتی رہتی ہے اور فون پر لکھا ہر جواب route تک echo event کی صورت میں پہنچتا ہے۔ جو handler echo کے بعد اس رابطے کے لیے ماڈل کو روک دے، وہ ماڈل کو کسی شخص کے اوپر جواب دینے سے بچاتا ہے۔
دوسری یہ کہ نمبر کے لیے بھیجنے کی حد طے شدہ 20 میسج فی سیکنڈ ہے۔ گفتگو کرنے والا ایجنٹ اس کے قریب بھی نہیں پہنچتا، لیکن رابطوں کی فہرست پر Promise.all سے لکھا گیا براڈکاسٹ لوپ پہنچ جائے گا، اس لیے اسے بیچوں میں بھیجیں۔
باقی سب کچھ عام Cloud API ہے۔ کسٹمر کے آخری میسج کے 24 گھنٹوں کے اندر آزاد متن بھیجنا جائز ہے۔ اس کے بعد صرف منظور شدہ ٹیمپلیٹ جاتا ہے، اور آزاد متن ایرر کوڈ 131047 دیتا ہے جبکہ کسٹمر کو کچھ نظر نہیں آتا۔
عام غلطیاں
- challenge کو JSON جواب والے ہیلپر سے واپس کرنا۔ اس کے گرد کے اقتباسی نشان Meta کی جانچ ناکام کر دیتے ہیں۔
- Meta کو جواب دینے سے پہلے generateText چلانا۔ کولڈ اسٹارٹ پر دوبارہ کوشش دوسرا جواب پیدا کر دیتی ہے۔
- MCP کلائنٹ بند کرنا بھول جانا۔ ہر درخواست ایک کنکشن کھلا چھوڑ دیتی ہے جب تک پلیٹ فارم اسے ختم نہ کر دے۔
نمبر easycoexistence.com پر کنیکٹ کریں، ویب ہک منزل کو اپنے route handler پر سیٹ کریں اور ایک OAuth سائن اِن سے MCP کلائنٹ شامل کریں۔ قیمت US$ 9 فی نمبر فی ماہ سے شروع ہو کر نمبر بڑھانے کے ساتھ US$ 1 تک آتی ہے، اور پہلے 3 دن فری ٹرائل ہے۔
اکثر پوچھے جانے والے سوالات
کیا یہ صرف Vercel پر چلتا ہے؟
نہیں۔ AI SDK ایک TypeScript لائبریری ہے اور route کسی بھی ایسے ہوسٹ پر چل سکتا ہے جو HTTPS فراہم کرے اور GET اور POST کا جواب دے۔
کیا مجھے MCP کلائنٹ کی ضرورت ہے بھی؟
جواب دینے کے لیے نہیں۔ نمبر کے ٹوکن کے ساتھ Cloud API کے messages اینڈ پوائنٹ پر ایک fetch یہ کام کر دیتا ہے۔ MCP تب کام آتا ہے جب کیا کرنا ہے، اس کا فیصلہ ماڈل خود کرے۔
ماڈل کون سا فراہم کنندہ ہو سکتا ہے؟
وہ کوئی بھی جسے AI SDK سپورٹ کرتا ہو۔ WhatsApp کا حصہ ماڈل سے آزاد ہے، اس لیے فراہم کنندہ بدلنے سے route یا Cloud API کی کال کو چھیڑنا نہیں پڑتا۔
کیا EasyCoexistence میسج دیکھ سکتا ہے؟
نہیں۔ Meta ڈیلیوری براہ راست آپ کے route پر کرتی ہے اور میسج کا مواد ہمارے ہاں کبھی محفوظ نہیں ہوتا۔
مزید پڑھیں
شروع کرنے کے لیے تیار ہیں؟
WhatsApp Coexistence چند منٹ میں سیٹ اپ کریں، مہینوں میں نہیں۔ ایپ فون پر کام کرتی رہتی ہے۔
فری ٹرائل شروع کریںتصدیق شدہ تاریخ