1. اوپن اے آئی کے اسسٹنٹس API کی تعارف
1.1 اسسٹنٹس API کی تعریف اور مقصد
اسسٹنٹس API ڈویلپرز کو ان کی اپنی ایپلیکیشن کے اندر خود کار انٹیلیجنس اسسٹنٹس بنانے کی اجازت دیتا ہے۔ اپنی مخصوص کمانڈز کی تعیناتی اور ماڈلز کا منتخب کرنے کے ذریعے، اسسٹنٹس ماڈلز، ٹولز، اور علم کو استعمال کر کے صارف کے سوالات کا جواب دے سکتے ہیں۔ فی الحال، اسسٹنٹس API تین قسم کے ٹولز کو سپورٹ کرتا ہے: کوڈ انٹرپریٹر، ریٹریول، اور فنکشن کالنگ۔
1.2 اسسٹنٹس API کی استعمال کی درخواست
اسسٹنٹس API مختلف مواقع کے لئے مناسب ہے جہاں تعاملاتی انٹیلیجنس کی حمایت کی ضرورت ہوتی ہے۔ مثال کے طور پر:
- کسٹمر سپورٹ: عام سوالات کے خود کار جواب دینے سے انسانی کسٹمر سروس کی بوجھ کم کریں۔
- آن لائن تعلیم: طلباء کے سوالات کے جواب دیں، اور ان کی مخصوص تعلیمی حمایت فراہم کریں۔
- ڈیٹا تجزیہ: صارفین دوار کیے گئے ڈیٹا فائلز کا تجزیہ کریں، رپورٹیں تیار کریں، اور چارٹس بنائیں۔
- شخصی تجاویز: صارفین کے تاریخی تعاملات کے اساس پر مخصوص تجاویز اور خدمات فراہم کریں۔
1.3 اسسٹنٹس کے بنیادی تصورات
اسسٹنٹس API کے بنیادی آبجیکٹس میں اسسٹنٹ، ٹھریڈ، اور میسیج شامل ہیں۔ نیچے دی گئیں ہیں یہ آبجیکٹس اور ان کے فعلوں کی تفصیلی تعارفات:
اسسٹنٹ
اسسٹنٹ آبجیکٹ اوپن اے آئی کے ماڈلز پر بنایا گیا ہے اور وہ اے آئی کے اسسٹنٹس ٹولز کو کال کر سکتا ہے۔ آپ اسسٹنٹ کی ہدایات کو اپنی مرضی کے مطابق تخلیق کر سکتے ہیں۔ مثال کے طور پر، آپ ایک اسسٹنٹ "ڈیٹا تجزیہ کار" بنا سکتے ہیں جو "code_interpreter" ٹول استعمال کرتے ہوئے ڈیٹا تجزیہ کرتا ہے اور چارٹس تیار کرتا ہے۔
ٹھریڈ
ٹھریڈ آبجیکٹ صارف اور اسسٹنٹ کے درمیان گفتگو سیشن کو ظاہر کرتا ہے۔ جب صارف اسسٹنٹ کے ساتھ تعامل کرتا ہے تو ہر صارف کے لئے ایک ٹھریڈ بنایا جا سکتا ہے اور جب ضرورت ہو تو میسیجز اس میں شامل کیے جا سکتے ہیں۔ ٹھریڈ آبجیکٹ میسیج کی تاریخ رکھتا ہے اور جب ضرورت ہو تو میسیجز کو کسی ماڈل کے سیاق و سباق کی لمبائی حد کے مطابق کاٹ دیتا ہے۔
میسیج
میسیج آبجیکٹ صارف یا اسسٹنٹ دوار بنایا جا سکتا ہے۔ میسیجز میں مواد، تصاویر، اور دیگر فائلز شامل ہو سکتی ہیں۔ میسیجز کو ٹھریڈ پر ایک لسٹ کی شکل میں رکھا جاتا ہے۔ API کی واقعی استعمال میں، ڈویلپرز صارف کے میسیجز کو ٹھریڈ میں شامل کر سکتے ہیں اور اسسٹنٹ کے جواب کو ضرورت کے مطابق ٹرگر کر سکتے ہیں۔
رن
رَن آبجیکٹ ایک اسسٹنٹ کی درخواست کی انجام دہی کو ظاہر کرتا ہے، جو ٹھریڈ میں موجود میسیج کی مواد کے مطابق اسسٹنٹ کو بلاتا ہے۔ اسسٹنٹ اپنی تشکیل اور ٹھریڈ کے میسیجز کو ماڈلز اور ٹولز کو بلاتے ہوئے تعاملات انجام دینے کے لئے استعمال ہوتا ہے۔ اس چلانے کے حصے کے طور پر، اسسٹنٹ ٹھریڈ میں میسیجز شامل کرتا ہے۔
2. اسسٹنٹس API کا ڈویلپمنٹ پروسیس
2.1 اپنے اسسٹنٹ بنائیں
اسسٹنٹ بنانے کے لئے، آپ کو API میں ہدایات، ماڈل کا نام، اور ٹول کنفیگریشن کے ساتھ ایک درخواست بھیجنی ہوگی۔ یہاں ایک سادہ مثال ہے جس میں ایک شخصی ریاضی معاون کا اسسٹنٹ بنایا گیا ہے:
curl "https://api.openai.com/v1/assistants" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer آپکی_اوپن_ای_آئی_API_کی_کلید" \
-H "OpenAI-Beta: assistants=v1" \
-d '{
"instructions": "آپ ایک شخصی ریاضی معاون ہیں۔ کوڈ لکھیں اور چلائیں تاکہ ریاضی سوالات کا جواب دیا جا سکے۔",
"name": "ریاضی معاون",
"tools": [{"type": "code_interpreter"}],
"model": "gpt-4"
}'
API پیرامیٹر:
- instructions - اسسٹنٹ کو بتانے والی سسٹم کی ہدایات۔
- name - اسسٹنٹ کا نام۔
- tools - وضاحت کرتا ہے کہ اسسٹنٹ کون کون سے ٹول استعمال کرسکتا ہے۔ ہر اسسٹنٹ کو 128 ٹول تک ہوسکتے ہیں۔ موجودہ ٹول کی اقسام code_interpreter، retrieval، یا function ہیں۔
- model - اسسٹنٹ کونسا ماڈل استعمال کرے گا؟
اسسٹنٹ کامیابی سے بنانے کے بعد، آپ کو ایک اسسٹنٹ آئی ڈی ملے گی۔
2.2 ایک سیشن ٹھریڈ بنائیں
ٹھریڈ ایک گفتگو کو ظاہر کرتا ہے، اور ہم مشورہ دیتے ہیں کہ ہر صارف کے لئے جب وہ مکالمہ شروع کرتا ہے تو ایک سیشن ٹھریڈ بنانا بہتر ہوتا ہے۔ آپ ٹھریڈ کو مندرجہ ذیل طریقے سے بنا سکتے ہیں:
curl https://api.openai.com/v1/threads \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "OpenAI-Beta: assistants=v1" \
-d ''
ٹھریڈ بنانے کے بعد، آپ کو ایک ٹھریڈ آئی ڈی ملے گی۔
2.3 ٹھریڈ میں پیغام شامل کریں
آپ ایک خاص ٹھریڈ میں پیغام شامل کرسکتے ہیں، جس میں مواد شامل ہوتا ہے اور اگر آپ چاہیں تو صارف یوزر کو اپلوڈ کے لئے فائلز کی اجازت بھی دے سکتے ہیں۔ مثال کے طور پر:
curl https://api.openai.com/v1/threads/{thread_id}/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer آپکی_OPENAI_API_KEY" \
-H "OpenAI-Beta: assistants=v1" \
-d '{
"role": "user",
"content": "مجھے اس مساوات کو حل کرنا ہے `3x + 11 = 14`. کیا آپ میری مدد کر سکتے ہیں؟"
}'
API parameters:
- thread_id - بات چیت ٹھریڈ کی شناخت کو ظاہر کرتا ہے، جو آپ Thread بناتے وقت حاصل کرسکتے ہیں۔
API درخواست بادی عموماً صارف کا پیغام ہوتی ہے، عام طور پر صارف کا سوال ظاہر کرتی ہے، کچھ بات چیت ماڈل کی بنیاد پر برتری حاصل کرنے کے لئے۔
2.4 ایسسٹنٹ کو متعلقہ جواب پیدا کرنے کے لئے دوڑائیں
مستعمل پیغاموں کا جواب دینے کے لئے ایسسٹنٹ کو بھاگنا ہوگا۔ اس سے ایسسٹنٹ کو ٹھریڈ پڑھنے اور فیصلہ کرنے کی اجازت دی جاتی ہے کہ کیا آلات استعمال کریں (اگر چالو ہو) یا بصرف ماڈل کو بہترین جواب دینے کے لئے استعمال کیا جاۓ۔
نوٹ: اس نقطہ تک، ایسسٹنٹ نے صارف کے سوال کا جواب نہیں دیا ہے۔ صرف اس وقت تک جب تک آپ رن کرنے کی API کو کال نہ کریں گے۔
curl https://api.openai.com/v1/threads/{thread_id}/runs \
-H "Authorization: Bearer آپکی_OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-H "OpenAI-Beta: assistants=v1" \
-d '{
"assistant_id": "ایسسٹنٹ_id",
"instructions": "صارف کے طور پر جین ڈو ہو گا۔ صارف پرمیم اکاؤنٹ رکھتا ہے۔"
}'
API parameters:
- thread_id - بات چیت ٹھریڈ کی شناخت کو ظاہر کرتا ہے، جو آپ Thread بناتے وقت حاصل کرسکتے ہیں۔
- assistant_id - ایسسٹنٹ کی شناخت کو ظاہر کرتا ہے، جو آپ ایسسٹنٹ بناتے وقت حاصل کرسکتے ہیں۔
- instructions - ایسسٹنٹ ہدیوں جو اس سسٹنٹ بناتے وقت تعین کی گئی ہیں وہ دوبارہ تعین کرسکتے ہیں۔
ایک کامیاب API درخواست ایک رن شناخت واپس کرے گی۔
2.5 ایسسٹنٹ بھاگنے کی حالت کی جانچ پڑتال کریں
ایسسٹنٹ میں کسی کام (رن) کو شروع کرنے کے بعد، کام کرنے کا عمل الگ-الگ ہوتی ہے۔ یعنی ہمیں منظم طور پر رن کی حالت کی جانچ پڑتال کرنی ہوگی کہ کیا وہ مکمل ہوگیا ہے یا نہیں۔ رن کی حالت کا تشخیص کرنے کے لئے CURL کا استعمال کرتے ہوؓ، نیچے اس عمل کی مخصوص تفصیل دی گئی ہے۔
CURL درخواست کا مثال:
curl https://api.openai.com/v1/threads/thread_abc123/runs/run_abc123 \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "OpenAI-Beta: assistants=v1"
API Parameter Explanation:
-
https://api.openai.com/v1/threads/thread_abc123/runs/run_abc123
: API کا درخواست URL ہے، جہاںthread_abc123
ٹھریڈ (Thread) کا یونیک شناخت ہے، اورrun_abc123
رن (Run) کا یونیک شناخت ہے۔
Response Body Example:
{
"id": "run_abc123",
"object": "thread.run",
"status": "completed",
"created_at": 1699073585,
...
}
API Response Parameter Explanation:
-
id
: رن کی یونیک شناخت ہے۔ -
object
: واپس آنے والے شے کی قسم کو ظاہر کرتا ہے، جس کا یہاںthread.run
ہے۔ -
status
: رن کی حالت، ممکنہ قیمتیںqueued
,in_progress
,completed
,requires_action
,failed
وغیرہ ہو سکتی ہیں۔ -
created_at
: رن کی تشکیل کا وقت بتاتا ہے۔
2.6 ایسسٹنٹ کے جواب کی نتائج حاصل کریں
ایسسٹنٹ رن مکمل ہونے کے بعد ہم ٹھریڈ (Thread) میں شامل پیغامات کی نتائج پڑھ سکتے ہیں۔ نیچے CURL کے ذریعے درخواست کرنے اور API پیرامیٹرز کی تفصیلات کی وضاحت دی گئی ہے۔
ٹھریڈ کے ساتھ ایسسٹنٹ کی علیحدہ علیحدائی میں بات چیت کی طرح، جب ایسسٹنٹ صارف کے سوال کو پراسرارس کرنے کا عمل مکمل ہوجاتا ہے، تو ایسسٹنٹ ٹھریڈ (Thread) میں ایک پیغام شامل کرتا ہے۔ اس لئے، ہمیں صرف بات چیت ٹھریڈ (Thread) میں آخری پیغام کو درخواست کرنی ہوگی تاکہ ایسسٹنٹ کے جوابات حاصل ہوں۔
CURL درخواست کا مثال:
curl https://api.openai.com/v1/threads/thread_abc123/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer آپکی_OPENAI_API_KEY" \
-H "OpenAI-Beta: assistants=v1"
API پیرامیٹر کی وضاحت:
-
https://api.openai.com/v1/threads/thread_abc123/messages
: ای پی آئی کی درخواست URL ہے، جہاںthread_abc123
ٹھریڈ کی یونیک شناخت کار ہے۔ - پہلے رن کی حالت چیک کرنے کے لئے استعمال کردہ درخواست ہیڈرز کے برابر ہیں، جس میں تصدیق کی معلومات اور ای پی آئی ورژن کی معلومات شامل ہیں۔
ایسسٹنٹ کی پاسخ کے نتائج کا مثال:
اس مثال میں، صارف نے ایسسٹنٹ سے ایک ریاضی سوال پوچھا اور ایسسٹنٹ نے اسے پروسیس کرنے کے بعد ٹھریڈ میں ایک ریسپانس میسج شامل کیا۔
صارف: مجھے مساوات حل کرنی ہے `3x + 11 = 14`۔ کیا آپ میری مدد کر سکتے ہیں؟
ایسسٹنٹ: بالکل، جین ڈو، آپ کو مساوات `(3x + 11 = 14)` کو ایک طرف کرنا ہوگا۔ میں آپ کے لئے `(x)` کی قیمت حاصل کرنے کے لئے حساب کرتا ہوں۔
ایسسٹنٹ: مساوات `(3x + 11 = 14)` کا حل `(x = 1)` ہے۔
ایسسٹنٹ سے ردا کے نتائج حاصل ہونے کے بعد، انہیں صارف کو پیش کیا جا سکتا ہے تاکہ وہ ایسسٹنٹ کی فراہم کردہ خدمات کو بہتر سمجھ سکے اور استعمال کر سکے۔
3. وسائل: اوپن ای آئی کی ترتیب دی گئی اصطلاحات
3.1 کوڈ انٹرپریٹر ٹول
کوڈ انٹرپریٹر ٹول ایسسٹنٹ کو پایتھن کوڈ لکھنے اور اسے ایک سینڈ باکس اجرائی ماحول میں چلا کرنے کی اجازت دیتا ہے۔ یہ ٹول مختلف ڈیٹا اور فائل فارمیٹس کو ہینڈل کر سکتا ہے، اور ڈیٹا اور گرافیکل تصاویر کے ساتھ فائلیں بنا سکتا ہے۔ کوڈ انٹرپریٹر آپ کے ایسسٹنٹ کو تشکیلاتی کوڈ بھاجنے کے لئے بنا سکتا ہے۔ جب ایسسٹنٹ کے ذریعے لکھے گئے کوڈ کی کامیابی سے رکاوٹ اٹھ جاتی ہے، تو یہ کوڈ مختلف کوڈ کی کوششیں کر کے اس کوڈ کو کامیابی سے چلا سکتا ہے۔
کوڈ انٹرپریٹر کو فعال کرنا
کوڈ انٹرپریٹر کو فعال کرنے کے لئے، اسسسٹنٹ آبجیکٹ بنانے کے وقت tools
پیرامیٹر میں code_interpreter
کو گزاریں:
curl https://api.openai.com/v1/assistants \
-u :$OPENAI_API_KEY \
-H 'Content-Type: application/json' \
-H 'OpenAI-Beta: assistants=v1' \
-d '{
"instructions": "آپ ایک شخصی ریاضی ٹیوٹر ہیں۔ جب بھی کسی ریاضی سوال کا جواب دینا ہو، کوڈ لکھیں اور اسے چلائیں۔",
"tools": [
{ "type": "code_interpreter" }
],
"model": "gpt-4-turbo-preview"
}'
پھر، ماڈل فیصلہ کرے گا کہ کس وقت رن ٹائم پر کوڈ انٹرپریٹر کو طلب کیا جائے، صارف کی درخواست کی فطرت پر مبنی ہوتی ہے۔ آپ ایسسٹنٹ کی instructions
(مثال کے طور پر "اس مسئلے کا حل کرنے کے لئے کوڈ لکھیں") کے ذریعے اس رویہ کو آسانی سے فراہم کر سکتے ہیں۔
فائلوں کو پروسیس کرنے کے لئے کوڈ انٹرپریٹر کا استعمال کرنا
کوڈ انٹرپریٹر فائلوں سے ڈیٹا کو پارس کر سکتا ہے۔ جب آپ ایسسٹنٹ کو زیادہ مقدار کے ڈیٹا فراہم کرنا چاہتے ہیں یا آپ اپنے صارفوں کو انکوائری کرنے کی اجازت دینا چاہتے ہیں تو یہ کام آتا ہے۔ یاد رہے کہ کوڈ انٹرپریٹر کے لئے اپلوڈ کردہ فائلوں کو ریٹریول کے لئے انڈیکس نہیں کیا جائے گا۔ ریٹریول ٹول کے متعلق تفصیلات کے لئے، مندرجہ ذیل ریٹریول ٹول سیکشن میں دیکھیں۔
ایسسٹنٹ کے ساتھ فائلوں کو پارس کیا جاسکتا ہے جو اس سے منسلک ہیں:
curl https://api.openai.com/v1/files \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-F purpose="assistants" \
-F file="@/path/to/mydata.csv"
curl https://api.openai.com/v1/assistants \
-u :$OPENAI_API_KEY \
-H 'Content-Type: application/json' \
-H 'OpenAI-Beta: assistants=v1' \
-d '{
"instructions": "آپ ایک شخصی ریاضی ٹیوٹر ہیں۔ جب بھی کسی ریاضی سوال کا جواب دینا ہو، کوڈ لکھیں اور اسے چلائیں۔",
"tools": [{"type": "code_interpreter"}],
"model": "gpt-4-turbo-preview",
"file_ids": ["file_123abc456"]
}'
کوڈ انٹرپریٹر کے ذریعے بنائے گئے تصاویر اور فائلوں کی پڑھائی
کوڈ انٹرپریٹر API میں فائلوں کی شکل میں انگیٹ بھی کرسکتا ہے، مثلاًَ تصویری چارٹس، CSV، اور PDF فائلیں بنانا۔ بنائی گئی فائلوں کی دو قسمیں ہوتی ہیں: تصاویر اور ڈیٹا فائلیں (مثلاًَ ایسسسونٹ نے پیدا کی ہوئی ڈیٹا کی CSV فائل)۔
جب کوڈ انٹرپریٹر ایک تصویر بناتا ہے تو آپ اس فائل کو اسسسونٹ میسج کی ریسپانس کے file_id
فیلڈ میں تلاش اور ڈاؤن لوڈ کرسکتے ہیں:
{
"id": "msg_abc123",
"object": "thread.message",
"created_at": 1698964262,
"thread_id": "thread_abc123",
"role": "assistant",
"content": [
{
"type": "image_file",
"image_file": {
"file_id": "file-abc123"
}
}
]
// ...
}
3.2 ریٹریوول ٹول
ریٹریوول ٹول ماڈل کے باہر سے علم شامل کرکے اسسسونٹ کی قابلیتوں میں اضافہ کرتا ہے (جیسے مخصوص مصنوعات کی معلومات یا صارف فراہم دستاویزات)۔ فائل اسسسونٹ کو اپلوڈ کی جاتی ہے اور پھر اسسسونٹ کو منسلک کیا جاتا ہے، اوپن اے آئی خود ہی آپ کے دستاویز کو ٹکڑے میں کاٹے گا، انڈیکس کرے گا، آپ کے دستاویز کے embeddings کو محفوظ کرے گا، اور بیکٹر تلاش کو لاگو کرے گا تاکہ صارف کے سوالات کے جواب دینے کے لئے متعلقہ مواد دریافت کیا jaasakta ہے۔
ریٹریوول کو فعال کریں
اِسسسونٹ کے tools
پیرامیٹر میں ریٹریوول کو ممکن کرنے کے لئے retrieval
کا استعمال کریں:
curl https://api.openai.com/v1/assistants \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "OpenAI-Beta: assistants=v1" \
-d '{
"instructions": "آپ کسٹمر سپورٹ چیٹ بوٹ ہیں۔ اپنے علمی بیس کا استعمال کرکے صارف کے سوالات کا فعال جواب دیں۔",
"tools": [{"type": "retrieval"}],
"model": "gpt-4-turbo-preview"
}'
ریٹریوول کے لئے فائلوں کو اپلوڈ کریں
کوڈ انٹرپریٹر کی طرح، فائلز اِسسسونٹ سطح پر یا انفرادی میسج سطح پر اپلوڈ کی جا سکتی ہیں۔
curl https://api.openai.com/v1/files \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-F purpose="assistants" \
-F file="@/دستاویز کی راہ"
curl "https://api.openai.com/v1/assistants" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "OpenAI-Beta: assistants=v1" \
-d '{
"instructions": "آپ کسٹمر سپورٹ چیٹ بوٹ ہیں۔ اپنے علمی بیس کا استعمال کرکے صارف کے سوالات کا فعال جواب دیں۔",
"name": "Math Tutor",
"tools": [{"type": "retrieval"}],
"model": "gpt-4-turbo-preview"
"file_ids": ["file_123abc456"]
}'
3.3 فنکشن کالنگ ٹول
چیٹ کمپلیشنز API کی طرح، اسسسونٹس API فنکشنز کو کال کرنے کی حمایت کرتا ہے۔ فنکشن کالنگ آپ کو اسسسونٹ کو فنکشنز بیان کرنے اور ذہانت سے اسکی پیرامیٹرکو ساتھ بھین بلرے۔ جب فنکشن کال چلایا جاتا ہے، تو اسسسونٹس API ایک پالس ایکسیکیوشن روکے گا، اور آپ فنکشن کال کے نتائج پیش کرکے ایکسیکیوشن جاری رکھ سکتے ہیں۔
تعریف فعلیتیں
ایک ایسسٹنٹ بناتے وقت، آپ ایک مجموعہ فعلیتیں تعریف کرسکتے ہیں تاکہ ایسسٹنٹ کو انہیں بلانے کے لئے۔ یہ فعلیتوں کو واضح طور پر مخصوص کرنا ضروری ہے جب بھی ایسسٹنٹ آبجیکٹ بنایا جاتا ہے۔ ہر فعل کا ایک یکتا نام، تفصیل اور پیرامیٹر کی سرکارات بنیادی ہونی چاہئیں۔
زیریں دیئے گئے کوڈ میں دو فعلوں کو تعریف کرنے کا طریقہ دکھایا گیا ہے جب ایک اسسٹنٹ بنایا جاتا ہے:
curl https://api.openai.com/v1/assistants \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "OpenAI-Beta: assistants=v1" \
-d '{
"instructions": "آپ ایک موسمی پیشگوئی بوٹ ہیں۔ دی گئی فعالیتوں کا استعمال کرکے سوالات کا جواب دیں۔",
"tools": [{
"type": "function",
"function": {
"name": "getCurrentWeather",
"description": "مخصوص مقام کے لئے موسمی حالات حاصل کریں",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "شہر اور ریاست، مثلاً، سان فرانسسکو، کیلیفورنیا"},
"unit": {"type": "string", "enum": ["c", "f"]}
},
"required": ["location"]
}
}
},
{
"type": "function",
"function": {
"name": "getNickname",
"description": "شہر کے لئے مخصوص نام حاصل کریں",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "شہر اور ریاست، مثلاً، سان فرانسسکو، کیلیفورنیا"}
},
"required": ["location"]
}
}
}],
"model": "gpt-4-turbo-preview"
}'
ایسسٹنٹ کی طرف سے فعلوں کی پڑھائی
جب ایک صارف نے ایسسٹنٹ کو ایک پیغام جمع کروایا ہے اور پیغام کا مواد فعل ہے تو، آپ کو اس فعل کی معلومات کو پڑھنے کی ضرورت ہوتی ہے۔ اس عمل کے دوران، ایسسٹنٹ ایک requires_action
کی حالت کی رن پیدا کرتا ہے۔ اس وقت، آپ Run آبجیکٹ حاصل کرکے فعلین کی مضبوط معلومات حاصل کرسکتے ہیں۔
نیچے دی گئی مثال میں Run آبجیکٹ حاصل کرتے ہوئے فعلین کی معلومات کیسے حاصل کی جاتی ہیں:
{
"id": "run_abc123",
"object": "thread.run",
"status": "requires_action",
"required_action": {
"type": "submit_tool_outputs",
"submit_tool_outputs": {
"tool_calls": [
{
"id": "call_abc123",
"type": "function",
"function": {
"name": "getCurrentWeather",
"arguments": "{\"location\":\"سان فرانسسکو\"}"
}
},
{
"id": "call_abc456",
"type": "function",
"function": {
"name": "getNickname",
"arguments": "{\"location\":\"لاس اینجلس\"}"
}
}
]
}
},
...
}
tool_calls
پیرامیٹر میں فعلین کی معلومات شامل ہوتی ہیں، اور آپ کو صرف اپنے مقامی پروگرام میں متناسق فعل فراخ کرنا ہوگا۔
فعل کی خروجات جمع کرانا
فعل کو مقامی طور پر اجراء کرکے نتائج حاصل کرنے کے بعد، آپ کو یہ نتائج Assistants
ایسسٹنٹ کو جمع کرانا ہوگا تاکہ ایسسٹنٹ صارف کی درخواست کو جاری رکھ سکے۔ فعل کی خروجات جمع کراتے وقت، آپ کو یہ یقینی بنانا ہوگا کہ خروجات اصل فعل کردہ کال کے ساتھ منسلک ہوں۔
نیچے دی گئی کوڈ کی مثال میں دیکھیں کہ فعل کی خروجات کو کیسے جمع کیا جاتا ہے:
curl https://api.openai.com/v1/threads/thread_abc123/runs/run_123/submit_tool_outputs \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "OpenAI-Beta: assistants=v1" \
-d '{
"tool_outputs": [
{
"tool_call_id": "call_abc123",
"output": "{\"temperature\": \"22\", \"unit\": \"celsius\"}"
},
{
"tool_call_id": "call_abc456",
"output": "{\"nickname\": \"لا\"}"
}
]
}'
پیرامیٹر کی وضاحت:
- thread_abc123 کی بجائے مکالمے کا ریڈ آئی ڈی ظاہر کررہی ہے
- run_123 آبجیکٹ کی بجائے رن آئی ڈی ظاہر کررہی ہے
- tool_call_id ایک مخصوص فعل کردہ کال کی شناخت ظاہر کرتی ہے، جو پچھلے tool_calls پیرامیٹر سے حاصل کیا گیا ہے۔
تمام فعل کردہ کالوں کی کامیابی سے خروجات کو جمع کرانے کے بعد، رن آبجیکٹ کی حالت دوبارہ تازہ کی جائے گی، اور ایسسٹنٹ ساتھ ہی صارف کو آخری جواب دینے کی کامیابی سے جاری رکھے گا۔