ایک سپورٹ بوٹ جو اکاؤنٹ بیلنس خود سے بنا لیتا ہے، وہ ڈیجیٹل بینک میں نہ صرف بے کار ہے بلکہ خطرناک بھی ہے۔ مالیاتی گفتگو کے لیے درست اعداد و شمار، تصدیق شدہ وصول کنندگان، اور ہر دعوے کے لیے ایک آڈٹ ٹریل (audit trail) کی ضرورت ہوتی ہے۔ لارج لینگویج ماڈلز گفتگو میں مہارت رکھتے ہیں، لیکن وہ ہالوسینیٹ (hallucinate) کرتے ہیں۔ جب کوئی صارف پوچھے، "میرے اکاؤنٹ میں کتنا باقی ہے؟" تو ماڈل کو ڈیٹا بیس سے معلومات لینی چاہیے، نہ کہ اپنے تخیل سے۔ فنکشن کالنگ (function calling) بالکل یہی عمل نافذ کرتی ہے، اور یہی اس تعمیر کا بنیادی مرکز ہے۔
گوگل کا Gemma 4 ڈویلپرز کو ایک باصلاحیت 31 بلین پیرامیٹر والا ماڈل فراہم کرتا ہے جو پیچیدہ ہدایات پر عمل کر سکتا ہے اور علاقائی لہجوں سمیت قدرتی مکالمہ جاری رکھ سکتا ہے۔ Google AI Studio کے ساتھ مل کر، یہ ایک تیز رفتار پروٹو ٹائپنگ ماحول بن جاتا ہے جہاں آپ ٹولز کی تعریف کر سکتے ہیں، ایج کیسز (edge cases) کا تجربہ کر سکتے ہیں، اور سرور کو چھونے سے پہلے کام کرنے والا JavaScript ایکسپورٹ کر سکتے ہیں۔ یہاں مقصد ایک فن ٹیک (fintech) سپورٹ ایجنٹ بنانا ہے جو اکاؤنٹ بیلنس چیک کرے، ٹرانزیکشن اسٹیٹس کو ٹریک کرے، اور بلوں کی ادائیگی کرے۔ اہم بات یہ ہے کہ جب صارف نائیجیرین پیجن (Nigerian Pidgin) میں بات کرے تو یہ اسی میں جواب دے، اور مالیاتی حقائق میں کوئی خود ساختہ تبدیلی کیے بغیر لہجے سے ہم آہنگ رہے۔
مالیاتی بوٹس کے لیے فنکشن کالنگ کیوں اہم ہے
فنکشن کالنگ کے بغیر، ایک لینگویج ماڈل ہر سوال کو تخلیقی تحریر (creative writing) کے طور پر لیتا ہے۔ اگر آپ اس سے بیلنس پوچھیں تو یہ اپنی ٹریننگ ڈیٹا کے پیٹرنز سے کوئی ایسا ہندسہ گھڑ سکتا ہے جو سننے میں درست لگے۔ جب حقیقی رقم کا معاملہ ہو تو اس طرح کی غلطی ناقابل قبول ہے۔
فنکشن کالنگ اس عمل کو الٹ دیتی ہے۔ ماڈل کا کام بیلنس کو جاننا نہیں ہے۔ اس کا کام ارادے (intent) کو پہچاننا، درست ٹول کا انتخاب کرنا، اور پیرامیٹرز نکالنا ہے۔ جب کوئی صارف لکھتا ہے "میرا بیلنس چیک کریں،" تو Gemma 4 ایک منظم JSON درخواست جاری کرتا ہے—جیسے کہ account_id کے ساتھ get_balance کا کال۔ آپ کا بیک اینڈ اس کال کو کور بینکنگ سسٹم کے ذریعے چلاتا ہے، اصل رقم حاصل کرتا ہے، اور اسے دوبارہ گفتگو میں شامل کر دیتا ہے۔ صرف اسی کے بعد ماڈل انسانوں کے لیے جملہ تیار کرتا ہے۔ ہر جواب بیک اینڈ کے ٹول کال سے آتا ہے۔ چونکہ ماڈل بیرونی منطق (external logic) کے ذریعے محدود ہوتا ہے، اس لیے ہالوسینیشنز (hallucinations) API کی حد پر ہی رک جاتی ہیں۔
یہ پیٹرن واضح آڈٹ ٹریلز بھی تخلیق کرتا ہے۔ ہر ٹول کی درخواست اور اس کا متعلقہ نتیجہ میسج ہسٹری میں لاگ (log) کیا جاتا ہے۔ ریگولیٹرز اور رسک ٹیمیں بالکل معائنہ کر سکتی ہیں کہ بیلنس کب چیک کیا گیا تھا اور صارف کو کون سا نمبر موصول ہوا۔
Google AI Studio میں ایجنٹ ڈیزائن کرنا
ورک فلو کا آغاز Google AI Studio کے اندر سے ہوتا ہے۔ gemma-4-31b-it منتخب کریں، جو مکالمے اور ہدایات پر عمل کرنے کے لیے بہتر بنایا گیا instruct-tuned ورژن ہے۔
اس کے بعد، ایسی سسٹم ہدایات لکھیں جو سخت حدود مقرر کریں۔ ایک ڈیجیٹل بینک کے لیے، لہجہ پیشہ ورانہ، براہ راست اور پرسکون ہونا چاہیے۔ لیکن ہدایات کو اس سے آگے جانا چاہیے۔ ماڈل کو واضح طور پر بتائیں کہ وہ کبھی بھی اکاؤنٹ ڈیٹا کا اندازہ نہ لگائے، کبھی بھی ٹرانزیکشن اسٹیٹس کا مفروضہ نہ بنائے، اور ٹول کے نتیجے کی تصدیق کیے بغیر کبھی بھی بل کی ادائیگی مکمل نہ کرے۔ اگر صارف نائیجیرین پیجن میں لکھتا ہے، تو ماڈل کو نائیجیرین پیجن میں جواب دینا چاہیے۔ اگر صارف انگریزی پر منتقل ہوتا ہے، تو ماڈل بھی اس کی پیروی کرے۔ سسٹم پرامپٹ (system prompt) وہ جگہ ہے جہاں آپ سادہ زبان میں اعتماد اور حفاظتی پالیسی کو کوڈ کرتے ہیں۔
پھر ٹول اسکیمہ (tool schemas) کی تعریف کریں۔ انہیں ماڈل اور آپ کے بیک اینڈ کے درمیان معاہدوں کے طور پر سمجھیں۔ آپ کو کم از کم تین کی ضرورت ہے:
get_balance
پیرامیٹرز:account_id(string، لازمی)
واپس ملتا ہے: موجودہ بیلنس اور کرنسی۔get_transaction_status
پیرامیٹرز:transaction_reference(string، لازمی)
واپس ملتا ہے: اسٹیٹس جیسے کہ پینڈنگ (pending)، مکمل (completed)، یا ناکام (failed)، نیز ایک ٹائم اسٹیمپ۔pay_bill
پیرامیٹرز:biller_code(string، لازمی)،amount(number، لازمی)،account_pin(string، آپ کے فلو کے مطابق اختیاری)
واپس ملتا ہے: کنفرمیشن ریفرنس یا ایرر میسج۔
ہر اسکیمہ ایک معیاری JSON فارمیٹ استعمال کرتا ہے جو فنکشن کے نام، تفصیل، اور پیرامیٹر کی خصوصیات بیان کرتا ہے۔ تفصیل (description) کے فیلڈز انتہائی اہمیت رکھتے ہیں۔ انہیں اس طرح لکھیں کہ ماڈل سمجھ سکے کہ کس وقت کون سا ٹول استعمال کرنا ہے۔ مبہم تفصیلات غلط ٹول کے انتخاب کا باعث بنتی ہیں، اس لیے واضح رہیں: "get_balance کا استعمال تب کریں جب صارف اپنے اکاؤنٹ کا موجودہ بیلنس جاننا چاہتا ہو۔ اسے ٹرانزیکشن ہسٹری کے لیے استعمال نہ کریں۔"
براؤزر میں پروٹو ٹائپنگ
ایک بھی Express روٹ لکھنے سے پہلے، AI Studio کے چیٹ پینل کے اندر پورے مکالمے کے بہاؤ کا تجربہ کریں۔ اس سے بیک اینڈ کے کام میں کئی دنوں کی محنت بچ جاتی ہے۔ نائیجیرین پیجن میں ایک سوال ٹائپ کریں: “Wetin remain inside my account?” دیکھیں کہ آیا Gemma 4 صحیح طریقے سے get_balance کال جاری کرتا ہے یا یہ ٹریننگ ڈیٹا سے جواب دینے کی کوشش کرتا ہے۔ اگر یہ پیرامیٹرز غلط بتاتا ہے—مثلاً account_id کے بجائے account_number استعمال کرتا ہے—تو آپ وہیں اسکیمہ کی تفصیل درست کر سکتے ہیں۔
ناکامی کے طریقوں (failure modes) کا بھی تجربہ کریں۔ ریفرنس نمبر فراہم کیے بغیر ٹرانزیکشن اسٹیٹس پوچھیں۔ ایک بہتر طریقے سے ہدایت یافتہ ماڈل کو یا تو صارف سے گمشدہ پیرامیٹر مانگنا چاہیے یا جو معلومات اس کے پاس ہیں ان کے ساتھ ٹول کو کال کرنا چاہیے اور بیک اینڈ کو ویلیڈیشن ایرر (validation error) واپس کرنے دینا چاہیے۔ آپ ان رویوں کو سینڈ باکس (sandbox) میں دیکھنا چاہتے ہیں، پروڈکشن (production) میں نہیں۔
جب پرامپٹس (prompts) اور اسکیمیز (schemas) درست طریقے سے کام کرنے لگیں، تو JavaScript کوڈ ایکسپورٹ کر لیں۔ AI Studio ایک صاف ستھرا اسنیپٹ (snippet) تیار کرتا ہے جو آپ کے سسٹم پرامپٹ، صارف کے پیغام اور ٹول کی تعریفوں کے ساتھ API درخواست کو ترتیب دیتا ہے۔ یہ آپ کے بیک اینڈ لاجک کی بنیاد بن جاتا ہے۔
Express Backend کو جوڑنا
ایکسپورٹ شدہ کوڈ لیں اور اسے Express ایپلی کیشن میں ڈال دیں۔ آرکیٹیکچر سادہ ہے، لیکن ایگزیکیوشن لوپ (execution loop) اہم ترین حصہ ہے۔
ایک POST اینڈ پوائنٹ سیٹ اپ کریں—شاید /chat—جو صارف کا پیغام اور کسی بھی سیشن کی ہسٹری کو قبول کرے۔ انہیں Gemma 4 اینڈ پوائنٹ پر فارورڈ کریں، جسے آپ اپنی ہوسٹنگ کے انتخاب کے مطابق OpenAI-compatible API یا گوگل کے اپنے انفرنس اینڈ پوائنٹ (inference endpoint) کے ذریعے کال کر سکتے ہیں۔
ماڈل کا جواب دو میں سے ایک زمرے میں آتا ہے۔ یا تو یہ ایک حتمی ٹیکسٹ میسج ہے، یا اس میں ڈیٹا کی درخواست کرنے والا tool_call شامل ہے۔ جب آپ کو ٹول کال موصول ہو، تو اپنے بیک اینڈ پر متعلقہ فنکشن کو چلائیں۔ بیلنس کے لیے ڈیٹا بیس کو کوئری کریں۔ بل کے اسٹیٹس کے لیے پیمنٹ پروسیسر کو کال کریں۔ ٹول کے نتیجے کو گفتگو کی ہسٹری میں tool رول کے ساتھ ایک نئے پیغام کے طور پر شامل کریں، اور مکمل اپ ڈیٹ شدہ ایرے (array) واپس Gemma 4 کو بھیج دیں۔
اس لوپ کو اس وقت تک دہراتے رہیں جب تک ماڈل حتمی ٹیکسٹ جواب واپس نہ کر دے۔ وہ جواب اس حقیقی ڈیٹا پر مبنی ہوگا جو آپ نے فراہم کیا ہے۔ Express اس کے کوآرڈینیشن کو آسان بناتا ہے کیونکہ لوپ کے ذریعے ہر گزر ایک اور HTTP درخواست ہے، اور آپ ٹول کے ایگزیکیوشن کو آسانی سے async/await کر سکتے ہیں۔
ابتدائی ترقی (development) کے دوران، ان ٹول کالز کے لیے فرضی (mock) ڈیٹا استعمال کریں۔ سیمپل اکاؤنٹ آئی ڈیز کو بیلنس کے ساتھ میپ کرنے والا ایک سادہ JavaScript آبجیکٹ یہ ثابت کرنے کے لیے کافی ہے کہ لوپ کام کر رہا ہے۔ مقصد غیر مستحکم تھرڈ پارٹی بینکنگ APIs کے ساتھ انٹیگریٹ کرنے سے پہلے انٹرایکشن پیٹرن کی تصدیق کرنا ہے۔
پروٹو ٹائپ سے پروڈکشن تک
ایک کام کرنے والا پروٹو ٹائپ پروڈکشن بینکنگ انفراسٹرکچر نہیں ہے، لیکن ایک سے دوسرے تک کا راستہ واضح ہے۔
فرضی ڈیٹا کو حقیقی کور بینکنگ APIs سے بدل دیں۔ اپنے get_balance ٹول کو REST یا gRPC کے ذریعے لیجر سسٹم سے جوڑیں۔ pay_bill کو اپنے اصل پیمنٹ سوئچ کے ساتھ منسلک کریں۔ جب آپ ایسا کرتے ہیں، تو آپ کو ماڈل یا گفتگو کے لاجک کو تبدیل کرنے کی ضرورت نہیں ہوتی؛ آپ صرف ٹول ہینڈلرز کی امپلیمنٹیشن کو تبدیل کرتے ہیں۔
سیشن مینجمنٹ کے لیے Redis شامل کریں۔ بینکنگ میں گفتگو کی حالت (conversational state) حساس اور ریگولیٹڈ ہوتی ہے۔ آپ کو میسج ہسٹری کو محفوظ طریقے سے اسٹور کرنے، ایک مقررہ ٹائم آؤٹ کے بعد اسے ختم کرنے، اور اس بات کو یقینی بنانے کی ضرورت ہے کہ صارف کا سیشن درخواستوں کے درمیان لیک نہ ہو۔ Redis اسے TTL پالیسیوں اور تیز کی لوک اپس (key lookups) کے ذریعے سنبھالتا ہے۔
جب ٹریفک بڑھ جائے، تو انفرنس (inference) کو vLLM پر منتقل کر دیں۔ پروٹو ٹائپنگ کے لیے AI Studio بہترین ہے، لیکن GPU کلسٹرز پر vLLM کے ساتھ خود سے ہوسٹ شدہ انفرنس آپ کو لیٹنسی (latency)، بیچنگ (batching) اور بڑے پیمانے پر لاگت پر کنٹرول دیتا ہے۔ Gemma 4 vLLM کے تحت مؤثر طریقے سے چلتا ہے، اور ٹول کالنگ کا رویہ بالکل ویسا ہی رہتا ہے۔
اصل حاصلِ کلام
ایک قابل اعتماد فن ٹیک (fintech) ایجنٹ بنانا ماڈل کے سائز کے بارے میں کم اور آرکیٹیکچرل حدود (architectural constraints) کے بارے میں زیادہ ہے۔ Gemma 4 کوڈ سوئچڈ نائیجیرین پیجن (Nigerian Pidgin) کو سمجھنے اور پیچیدہ مقاصد (intents) کو راستہ دینے کے لیے کافی استدلال کی طاقت فراہم کرتا ہے، لیکن حفاظت ٹول لوپ سے آتی ہے۔ ہر بیلنس لائیو حاصل کیا جاتا ہے۔ ہر بل کی ادائیگی ایک بیرونی نظام سے تصدیق شدہ ہوتی ہے۔ کچھ بھی خود سے ایجاد نہیں کیا جاتا۔
AI Studio کے ساتھ براؤزر میں شروع کریں، Express لوپ میں لاجک کو مضبوط بنائیں، اور جب گفتگو کا بہاؤ مکمل طور پر محفوظ ہو جائے تو حقیقی بینکنگ انفراسٹرکچر کا استعمال کریں۔ اسی طرح آپ ایک ایسا بوٹ تیار کرتے ہیں جس پر لوگ واقعی اپنے پیسوں کے لیے بھروسہ کر سکیں۔
ماخذ: Building a Full Gemma 4 Google AI Studio Project: A Fintech Support Agent
اختیاری لرننگ کمیونٹی: GyaanSetu AI on Telegram
