مرکزی نیویگیشن

ChatGPT Apps SDK کے ساتھ پروڈکٹ جاری کر کے ہم نے کیا سیکھا

ChatGPT Apps SDK کے ساتھ پروڈکٹ جاری کرنے کے عملی اسباق بتاتے ہیں کہ اس کا فنِ تعمیر کب موزوں ہے اور کہاں مزید اختیار درکار ہوتا ہے.

انتظامی خلاصہ

  • اگر آپ کو جلد ہی ChatGPT میں کوئی کام کا طریقۂ کار درکار ہے، یا مخصوص ایجنٹ نظام میں سرمایہ لگانے سے پہلے اپنے ٹولز وہاں آزمانا چاہتے ہیں، تو Apps SDK ایک عملی انتخاب ہے. اگر آپ کو ایجنٹ کے طرزِ عمل کے ہر مرحلے پر اختیار چاہیے، تو عموماً یہ موزوں نہیں ہے.

  • جب ChatGPT مرکزی پلیٹ فارم ہو اور آپ مکمل چیٹ پروڈکٹ بنائے بغیر ٹولز کے ساتھ مختصر صارف انٹرفیس چاہتے ہوں، تو Apps SDK منتخب کریں. جب آپ کو کام کے بہاؤ، میموری، پرومپٹس اور ڈیٹا لکھنے کے عمل پر سخت اختیار چاہیے، تو اپنا ایجنٹ نظام منتخب کریں.

  • Apps SDK ان پروڈکٹس کے لیے موزوں ہے جو چیٹ کو صارف انٹرفیس کے چند مختصر مراحل کے ساتھ ملاتی ہیں. آپ تیزی سے پروڈکٹ جاری کرتے ہیں، مگر کچھ اختیار چھوڑنا پڑتا ہے.

  • واضح ٹولز، ویجٹ کا واضح طرزِ عمل اور واضح اگلے مراحل ہمارے لیے کارگر ثابت ہوئے. ہم نے کام کا بہاؤ طے کرنے کے لیے انہی پر بھروسا کیا، LLM پر نہیں. ماڈل اس وقت سب سے زیادہ مفید تھا جب اس نے نظام کے پہلے سے منتخب کردہ نتائج کی وضاحت کی.

  • ذیل میں پہلے انتخاب کا طریقہ، پھر کامیاب اور ناکام طریقے بیان کیے گئے ہیں.

زیادہ تر ٹیمیں اب بھی مصنوعی ذہانت کے آزمائشی منصوبے چلاتی ہیں یا اسے کم خطرے اور فائدے والے ضمنی کاموں میں استعمال کرتی ہیں. بہت کم ٹیمیں ایسا کاروبار کے لیے انتہائی اہم پروڈکٹ جاری کرتی ہیں جسے صارفین ہر ہفتے استعمال کریں. اگر آپ کا مقصد پورا معاون خود بنانے کے بجائے ChatGPT کے اندر پہنچنا ہے، تو ChatGPT Apps SDK اس فرق کو ختم کرنے کا ایک طریقہ ہے.

ہم نے Apps SDK کیوں استعمال کیا

ہم نے یہ اسباق ایک کلائنٹ منصوبے سے سیکھے، جس کی ضروریات کے مطابق ChatGPT کو مرکزی پلیٹ فارم بنانا اور مکمل مخصوص چیٹ پروڈکٹ کے لیے سرمایہ لیے بغیر تیزی سے آگے بڑھنا تھا.

اس مقصد کے لیے Apps SDK موزوں تھا، کیونکہ کلائنٹ کو درج ذیل چیزیں درکار تھیں:

  • کوئی مخصوص چیٹ پروڈکٹ بنانے اور ہوسٹ کرنے کی ضرورت نہیں—وہ ایک اور الگ معاون کا ڈھانچا نہیں، بلکہ ChatGPT کے اندر رسائی چاہتے تھے.

  • چیٹ کے ساتھ مختصر، کام کے لیے مخصوص صارف انٹرفیس—کام کے بہاؤ کے اندر دوسری مکمل پروڈکٹ کے بجائے ویجٹ کے چند مرکوز مراحل.

  • MCP ٹولز کے ذریعے دستیاب پس منظر کا طرزِ عمل—مکمل طور پر زیرِ ملکیت مخصوص ایجنٹ نظام کے بجائے معیاری ٹول کالنگ.

  • ChatGPT کے اندر دریافت—صارفین کو کام کا طریقۂ کار وہیں ملنا چاہیے جہاں وہ پہلے سے کام کرتے ہیں.

تعمیر کے دوران ہم نے کلائنٹ کے ساتھ مل کر ان انتخابات کی توثیق کی. یہ سمجھوتا پھر بھی برقرار ہے: جب ChatGPT سیشن ہوسٹ کرتا ہے، تو بیرونی نظام آپ کی ملکیت میں نہیں ہوتا. آپ اس کی رہنمائی کرتے ہیں، مگر اسے مکمل طور پر قابو نہیں کرتے.

Apps SDK سے آپ کو کیا ملتا ہے

Apps SDK ایپ تین چیزوں کو باہم جوڑتی ہے:

  1. ChatGPT کا ایجنٹ نظام

  2. آپ کے MCP ٹولز

  3. آپ کا ویجٹ صارف انٹرفیس

عملی کام کا بہاؤ:

  1. صارف ChatGPT سے کچھ طلب کرتا ہے.

  2. ChatGPT آپ کے MCP ٹولز میں سے کسی ایک کو کال کر سکتا ہے.

  3. آپ کا سرور ٹول کا اسٹرکچرڈ نتیجہ واپس کرتا ہے.

  4. ChatGPT نتیجہ پڑھ کر اگلا مرحلہ طے کرتا ہے: مزید ٹول کالز، صارف کو جواب، یا دونوں. اگر آپ نے اس ٹول کے ساتھ ویجٹ منسلک کیا ہے، تو وہ اسی مرحلے میں دکھائی دے سکتا ہے.

  5. صارف چیٹ یا ویجٹ میں آگے بڑھتا ہے، مثلاً اضافی متن، کوئی انتخاب، یا ویجٹ سے شروع ہونے والی ٹول کال کے ذریعے. اس سے گفتگو کا سلسلہ تازہ ہوتا ہے، ChatGPT ایک اور مرحلہ چلاتا ہے، اور کام مکمل ہونے تک مراحل 2–4 دہرائے جاتے ہیں.

چیٹ، پس منظر کی کارروائیوں اور صارف انٹرفیس کے مختصر مراحل کا یہی امتزاج اصل مقصد ہے. اس کا مطلب یہ بھی ہے کہ چیٹ، ٹولز اور صارف انٹرفیس کے درمیان منتقلی کے مراحل نازک ہوتے ہیں.

آپ کو چیٹ صارف انٹرفیس، ٹولز کے روابط، تصدیقی طریقے یا ویجٹ کا بنیادی ڈھانچا ابتدا سے دوبارہ نہیں بنانا پڑتا. بہت سی پروڈکٹس میں اس سے تعمیر کا کافی وقت بچتا ہے، لہٰذا آپ شعبے کی منطق اور حفاظتی حدود پر توجہ دے سکتے ہیں.

ChatGPT کے اندر تعمیر کرنا اپنا ایجنٹ چلانے کے مترادف نہیں ہے. منصوبے کا مشکل حصہ پرومپٹ کی چالیں نہیں تھیں. اصل مشکل ٹولز، ویجٹس اور اگلے مراحل کو اتنا واضح بنانا تھا کہ ماڈل اور صارف انٹرفیس ہم آہنگ رہیں.

انتخاب کیسے کریں

Apps SDK آپ کے عام سامنے کے حصے سے مختلف نوعیت کی پروڈکٹ فراہم کرتا ہے، مگر یہ جاننا اہم ہے کہ یہ کن حالات کے لیے سب سے موزوں ہے.

Apps SDK تب استعمال کریں جب آپ یہ چاہتے ہوں

  • ChatGPT کا کام کا طریقۂ کار تیزی سے جاری کرنا.

  • گفتگو کی میزبانی ChatGPT کو سونپنا.

  • فطری زبان کو صارف انٹرفیس کے چند مرکوز مراحل کے ساتھ ملانا.

  • اپنا چیٹ انٹرفیس، ایجنٹ کنٹینر اور دریافت کا نظام بنانے سے بچنا.

آخری نکتہ اس وقت اہم ہے جب آپ کے صارفین پہلے ہی ChatGPT میں کام کرتے ہوں.

اپنا ایجنٹ تب بنائیں جب آپ کو درکار ہو

  • مقررہ مرحلہ وار بہاؤ جسے آپ کوڈ کے ذریعے نافذ کر سکیں.

  • مخصوص صارف انٹرفیس اور تصدیقی راستہ جو ابتدا سے انتہا تک آپ کی ملکیت ہو.

  • آپ کا اپنا میموری اور حالت کا ماڈل.

  • ایسا طرزِ عمل جو ہر بار قابلِ پیش گوئی ہو.

  • ایجنٹ کے لیے سراغ، لاگز اور پیمائشیں.

اگر منصوبہ ساز، نظامی پرومپٹس اور مکمل کام کا بہاؤ ہی آپ کی پروڈکٹ ہیں، تو عموماً مخصوص نظام زیادہ موزوں ہوتا ہے.

سمجھوتوں پر ایک نظر

سوال

ChatGPT Apps SDK

آپ کے اپنے ایجنٹس

تجربہ کہاں دستیاب ہوتا ہے؟

ChatGPT کے اندر

آپ کی پروڈکٹ میں

گفتگو کے مراحل کون چلاتا ہے؟

ChatGPT، آپ کے ٹولز اور صارف انٹرفیس کی رہنمائی میں

آپ کا ایجنٹ پر مبنی نظام

آپ کتنا صارف انٹرفیس بناتے ہیں؟

چیٹ میں مرکوز ویجٹس

جتنا آپ کو درکار ہو

پرومپٹس پر کتنا اختیار ہوتا ہے؟

بالواسطہ

مکمل

مقررہ اور قابلِ تکرار بہاؤ کتنے آسان ہیں؟

محتاط ڈیزائن درکار ہے

کوڈ میں نافذ کرنا آسان ہے

پہلی بار جاری کرنے تک کا وقت

اکثر زیادہ تیز

ابتدا میں اکثر زیادہ سست

پلیٹ فارم کا کام جس کی ذمہ داری آپ پر ہے

کم

زیادہ

بعد میں سمت بدلنے کی گنجائش

کم

زیادہ

ہمارے منصوبے میں بار بار اختیار کا موضوع سامنے آیا: ایک طرف رفتار اور مانوس میزبان، دوسری طرف چلنے والے نظام کی جزوی ملکیت. کلائنٹ نے مکمل نظام کی ملکیت کے بجائے ChatGPT میں صارفین تک پہنچنے کو ترجیح دے کر یہی سمجھوتا قبول کیا.

مشکل کہاں پیش آتی ہے

مثالی راستہ آسان لگتا ہے: صارف پوچھتا ہے، ٹول چلتا ہے، ڈیٹا واپس آتا ہے، اور انتخاب درکار ہونے پر ویجٹ ظاہر ہوتا ہے.

عملی طور پر مشکل منتقلی کے مراحل میں تھی. ویجٹ محض سجاوٹ نہیں ہے. اسکرین پر آتے ہی یہ بدل دیتا ہے کہ ماڈل کیا دیکھتا اور آگے کیا کرتا ہے. ویجٹ کی کارروائیوں کو بے قاعدہ چیٹ نہیں، بلکہ نام زد واقعات سمجھیں.

منصوبے میں استعمال ہونے والا نظام سادہ تھا: FastMCP، Pydantic، React، TypeScript. ان کا انضمام آسان تھا. اصل کام ماڈل، ٹولز اور صارف انٹرفیس کو اگلے مرحلے پر متفق کرنا تھا.

کیا کارگر رہا

ہر منتقلی کو واضح بنائیں

ہم نے ٹول کے نتائج کو پس منظر کے خام ڈیٹا کی طرح برتنا چھوڑ دیا. ہر واپسی ایک واضح منتقلی بن گئی.

ٹول کا ایک مضبوط نتیجہ:

  • ویجٹ کو دکھائی دینے کے لیے درکار معلومات دیتا ہے.

  • ChatGPT کو جواب کی بنیاد بنانے کے لیے اسٹرکچرڈ حقائق دیتا ہے.

  • جب کام کے بہاؤ کو ضرورت ہو، تو یہ اگلا مرحلہ بھی بتاتا ہے تاکہ ماڈل کو اندازہ نہ لگانا پڑے.

ویجٹ کی کارروائیوں کو گفتگو کے سلسلے میں مبہم عبارت واپس نہیں بھیجنی چاہیے. انہیں بتانا چاہیے کہ صارف نے کیا کیا اور آگے کیا ہونا چاہیے.

منتقلی کے مراحل واضح ہوتے ہی قابلِ اعتماد کارکردگی بہتر ہو گئی.

ٹول کے آؤٹ پٹ اور ویجٹ کی کارروائیوں میں موجود مختصر اور واضح ہدایات پر ماڈل اچھی طرح عمل کرتا ہے.

ذیل میں Pydantic کا ایک مختصر ڈھانچا ہے جو ہم نے استعمال کیا. output فیلڈ میں ویجٹ دکھاتے وقت اس کے لیے درکار اسٹرکچرڈ ڈیٹا اور وہ حقائق ہوتے ہیں جنہیں ChatGPT کو سیشن میں استعمال کرنا چاہیے. agent_directions فیلڈ میں ایک مختصر سطر ہوتی ہے جو بتاتی ہے کہ معاون کو آگے کیا کرنا چاہیے. Reason اختیاری ہے.

Python

from typing import Generic, TypeVar
from pydantic import BaseModel
T = TypeVar("T")
class AgentDirections(BaseModel): assistant_instruction: str reason: str | None = None
class ToolResults(BaseModel, Generic[T]): agent_directions: AgentDirections output: T

ویجٹس مختصر رکھیں

کارگر ویجٹس ایک فیصلہ مکمل کرتے، پھر اختیار واپس کر دیتے تھے. ویجٹ کو مختصر ایپ بنانے کے بجائے چھوٹی فہرستیں، تصدیقیں یا مرکوز جائزہ اسکرین زیادہ مؤثر ہیں. جب ہم زیادہ قطعی بہاؤ چاہتے تھے، تو ویجٹ میں معمولی منطق، جیسے سادہ توثیق یا مقررہ اگلا مرحلہ، پھر بھی مددگار ثابت ہوئی.

ویجٹ کے پیغامات میں غائب کا صیغہ

ہم نے ویجٹ کے اضافی پیغامات صارف کی طرف سے چیٹ کی طرح لکھنا چھوڑ دیا، مثلاً ”میں نے منتخب کیا…“ یا ”میں نے تصدیق کی…“. ہم نے انہیں صارف کی کارروائی کی مختصر رپورٹ کے طور پر لکھا، مثلاً ”صارف نے منتخب کیا…“ یا ”صارف نے تصدیق کی…“. ہم نے یہ طریقہ اس لیے آزمایا، کیونکہ ChatGPT ویجٹ کے پیغامات کو صارف کے پیغامات کے بجائے ٹول کے پیغامات کے طور پر شامل کر رہا تھا.

اگلا مرحلہ واضح ہو تو براہِ راست کارروائی

اگر کوئی بٹن واضح طور پر اگلی ٹول کال کی نشان دہی کرتا ہو، تو چیٹ کا ایک اور مرحلہ لازمی بنانے کے بجائے ویجٹ سے اسے براہِ راست شروع کرنا بہتر رہا. یہ صرف اس صورت میں موزوں ہے جب اگلی ٹول کال کو ChatGPT سے معلومات درکار نہ ہوں.

اس سے قطعی بہاؤ نافذ کرنے میں مدد ملی اور چیٹ کا ایک اور مرحلہ نہ چلانے کے باعث تاخیر بھی کم ہوئی.

خرابیوں سے نمٹنا

ٹول کال ناکام ہونے پر ہم نے ٹول سے درست MCP خرابی کوڈ اور مختصر، سادہ پیغامات واپس کیے. اس طرح ناکام کالز پر ChatGPT کے پاس پڑھنے کے لیے حقیقی معلومات ہوتی تھیں، تاکہ وہ صارف کو مسئلہ سمجھا سکے، مناسب اگلا مرحلہ منتخب کر سکے، یا دونوں کام کر سکے.

ٹول کے سیاق کا نظم

ہم نے سیشن کی حالت اپنے سرور پر رکھی. ChatGPT ٹول کالز کے ساتھ سیشن تک محدود سیاق بھیجتا ہے؛ FastMCP میں ہم نے ہر ٹول کو Context پیرامیٹر دیا تاکہ ہینڈلر اس حالت کو پڑھ اور تازہ کر سکے.

  • مستحکم شناختی کوڈز اور گزشتہ نتائج سیشن میں رکھے گئے، بجائے اس کے کہ ہر کال پر ChatGPT سے انہیں دوبارہ ٹول کی دلیل کے طور پر بھیجنے کو کہا جائے.

  • ٹول کال کے چکر سامنے آنے پر ہم نقل کالز پکڑ کر ٹول کے نتیجے کے ذریعے واضح خرابی واپس کر سکتے تھے.

  • خرابی تلاش کرنے اور معاونت کے لیے سیشن لاگز ہمارے پاس رہے.

کیا کارگر نہیں رہا

یہ فرض کرنا کہ ماڈل اگلا مرحلہ خود سمجھ لے گا

ابتدا میں ہم ویجٹ دکھا کر فرض کرتے تھے کہ ماڈل ”سمجھ گیا ہے“، پھر درست اضافی ٹول کال کا انتظار کرتے تھے. کبھی کبھار ایسا ہو جاتا تھا. اکثر ایسا نہیں ہوتا تھا.

واضح منتقلی کے بغیر، ChatGPT مطلوبہ کارروائی کے بجائے خلاصہ دے سکتا تھا، صارف سے انتخاب دہرانے کو کہہ سکتا تھا، یا رکنے کی جگہ منصوبہ بندی جاری رکھ سکتا تھا.

حل یہ تھا کہ اگلا مرحلہ اسٹرکچرڈ آؤٹ پٹس اور ویجٹ کے ڈیٹا میں صاف لکھا جائے، نہ کہ ماڈل کے خود سمجھنے کی امید رکھی جائے.

مطلب کو مختلف سطحوں میں پھیلانا

ہم نے Apps SDK کی دستاویزات کے مطابق جوابات کو ٹول آؤٹ پٹ، پوشیدہ اضافی معلومات اور چیٹ کے متن میں ذہانت سے تقسیم کرنے کی کوشش کی. لیکن ہم ویجٹس میں پوشیدہ اضافی معلومات نہیں پڑھ سکتے تھے. اس لیے ہم یہ طریقہ استعمال نہیں کر سکے.

ماڈل سے ٹولز چھپانا

Apps SDK کی دستاویزات ایسے ٹولز بیان کرتی ہیں جنہیں ایجنٹ کی ٹول فہرست سے باہر رکھا جا سکتا ہے تاکہ وہ انہیں منتخب نہ کرے، مگر ویجٹ انہیں پھر بھی کال کر سکے. جب ہم نے مرئیت صرف ایپ تک محدود کی، تو وہ ٹولز صرف ایجنٹ ہی نہیں بلکہ ویجٹ کے لیے بھی دستیاب نہیں رہے. ہم ایسا نظام کبھی نہیں بنا سکے جس میں ایجنٹ ٹول نہ دیکھ سکے مگر ویجٹ اسے دیکھ سکے.

کمزور خرابی پیغامات

کچھ مفید نہ ہونے پر خاموشی یا عمومی ”کامیابی“ کا پیغام صاف خرابی سے بدتر تھا، اس لیے ہم نے ٹول اور ویجٹ کی ناکامیوں کو باقاعدہ آؤٹ پٹس سمجھا: اگر کوئی مرحلہ جاری نہیں رہ سکتا تھا تو ہم نے سادہ زبان میں بتایا، واضح خرابی واپس کی، اور صارفین کو ایسے ویجٹ کے سامنے منتظر نہیں چھوڑا جو دکھائی تو دے مگر انہیں آگے نہ لے جائے. اس سے استعمال میں آسانی بڑھی اور ماڈل کا طرزِ عمل زیادہ قابلِ اعتماد ہوا.

اختتامی خیالات

اگر آپ کا مقصد کم مخصوص پلیٹ فارم کام کے ساتھ ChatGPT میں کام کا طریقۂ کار بنانا ہے، تو Apps SDK وہاں پہنچنے کا عملی راستہ ہے. رفتار حاصل کرنے اور صارفین تک ان کی موجودہ کام کی جگہ پر پہنچنے کے لیے آپ کچھ اختیار چھوڑتے ہیں.

اگر آپ کو کام کے بہاؤ کی ہر شاخ، صارف انٹرفیس اور ہر مرحلے کا فیصلہ کرنے والے پر اختیار چاہیے، تو ابتدا ہی سے اپنے ایجنٹ نظام کا منصوبہ بنائیں. ممکن ہے کہ صرف ChatGPT کے اندر تعمیر کرنا جلد آپ کی ضروریات کے لیے ناکافی ہو جائے.

آپ خود چیٹ، تصدیق اور ایجنٹ کے روابط بنانے سے پہلے Apps SDK کے ذریعے اپنا MCP سرور ChatGPT میں چلا سکتے ہیں، پھر پروڈکٹ کی ضرورت کے مطابق اپنے نظام پر منتقل ہو سکتے ہیں.

اسی صورتِ حال والی ٹیموں کے لیے اگلا قدم یہ ہے: واضح نتیجے والا ایک کام کا طریقۂ کار منتخب کریں، چیٹ، ٹولز اور ویجٹس کے درمیان منتقلی لکھیں، پھر پرومپٹ کی بہتری پر زیادہ وقت لگانے سے پہلے دوبارہ کوششوں اور خرابیوں کو سختی سے آزمائیں.

مصنف

Malan Evans