استجابات النموذج وتنفيذ الأدوات حدثان يمكن أن يتجاورا في سجل وكيل. إذا وصف المحرر «ثلاث خطوات»، فقد يقصد مرات استجابة النموذج أو مرات عودة الأدوات أو عناصر الورقة كلها. نضع تعريفا للعد ثم نتتبع مثالا صغيرا، دون ربط أعداده بمدة أو رسوم أو تجربة خدمة.
الخلاصة السريعة
لا؛ في التسلسل الذي نعلنه هنا توجد ثلاث استجابات للنموذج وخطوتان لتنفيذ أداتين. يتحدد كل عدد بنوع الحدث المعدود، لا بطول قائمة موحدة.
- يفصل الدليل بين طلب الأداة وتنفيذ التطبيق وطلب تال للنموذج، وقد يعيد النموذج طلب أداة أخرى. [1] لذلك نحدد نوع الحدث قبل عد السجل.
- في تسلسلنا المعلن: استجابة تطلب أ، ثم ناتج أ، ثم استجابة تطلب ب، ثم ناتج ب، ثم رد نهائي؛ توجد ثلاث استجابات وخطوتا تنفيذ أدوات، لا ثلاث أدوات.
- شرط المثال أن كل طلب لأداة واحدة يتبعه ناتجها الوحيد؛ لو تضمنت استجابة طلبين فلا نحولها إلى استجابتين، ولا نعمم عدد الأدوات في ورقتنا على كل حلقة. ولا نفترض تنفيذا لناتج غائب من سجل ناقص.
- لا يكشف هذا العد طلبات النقل أو التفكير الداخلي أو الزمن والتكلفة؛ ولا يثبت الرد النهائي أن كل معلومة صحيحة أو أن مهمة خارج السجل نفذت.
ما الذي نسميه استجابة في هذه الورقة؟
يفصل دليل OpenAI طلب الأداة من النموذج عن تنفيذها في التطبيق ثم إرسال الناتج إلى النموذج، الذي قد يرد أو يطلب أدوات أخرى. [1]
نعد هنا كل استجابة معلنة للنموذج مرة واحدة، سواء تضمنت طلب أداة أو نص النهاية. ونعد خطوة تنفيذ الأداة حدثا آخر معلنا في الورقة. لا نقدم هذا التعريف بوصفه معنى متغير max_turns في كل إطار عمل.
هذا الاختيار يمنع تحويل قائمة مختلطة إلى رقم بلا اسم. يمكن لمحرر أن يعد العناصر كلها أيضا، لكنه يسميها عناصر سجل، ثم لا يستبدل ذلك العدد بعدد الأدوات أو عدد مرات إجابة النموذج.
كيف نقرأ تسلسلا من خمسة عناصر؟
نؤلف مهمة جمع قيمتين من بطاقتين. في الاستجابة م 1 يطلب النموذج الأداة أ لقراءة البطاقة الأولى. وتعلن الورقة بعدها ناتج أ بقيمة 4. وفي الاستجابة م 2 يطلب الأداة ب للبطاقة الثانية، ويأتي ناتج ب بقيمة 6.
ثم نضع الاستجابة م 3: «مجموع القيمتين 10». الحساب من القيمتين المعلنتين هو 4 مع 6، لكننا لم نجلب بطاقة أو نشغل نموذجا. اخترنا تسلسلا يفصل طلب كل أداة عن ناتجها وعن استعمال الناتجين.
لدى الورقة خمس خانات مرتبة: م 1، أ، م 2، ب، م 3. ثلاث خانات استجابة وخانتان لتنفيذ أداتين. كتابة «خمس استدعاءات للنموذج» أو «ثلاث أدوات» تغير نوع ما عد، لا حقيقة حساب المجموع.
| موضع مؤلف | نوع الحدث | المادة المعلنة |
|---|---|---|
| م 1 | استجابة نموذج | طلب أ |
| أ | تنفيذ أداة | قيمة 4 |
| م 2 | استجابة نموذج | طلب ب |
| ب | تنفيذ أداة | قيمة 6 |
| م 3 | استجابة نموذج | رد المجموع 10 |
هل لكل استجابة أداة واحدة؟
شرط تسلسلنا أن الطلبين منفصلان، وكل واحد يطلب أداة واحدة ويتبعه ناتج واحد. هذا شرط ورقة توضيحية لا وعد من كل نموذج أو خدمة. إذا تغيرت الورقة، نعيد عد الأحداث التي صرحت بها.
نضيف حالة مقارنة مؤلفة: استجابة م 1 تضم طلب أ وطلب ب معا، ثم يعلن الناتجان، ثم تأتي م 2 برد المجموع. عندئذ لدينا استجابتان للنموذج مع بقاء خطوتي تنفيذ الأدوات؛ لا نقسم م 1 إلى استجابتين لأنها طلبت أداتين.
ولو غاب ناتج ب في سجل ناقص، لا نخترع تنفيذه كي يساوي العد رسم الخطة. نميز ما طلب عما أعلنت الورقة عودته، وما نجهله عما ثبت غيابه في نطاق سجل كامل معلوم.
أي استنتاج لا ينتج من العدد؟
عدد الاستجابات المعلنة لا يحصي أفكار النموذج الداخلية أو طلبات الشبكة أو أجزاء بث النص. لم نقس هذه الأشياء، كما لا نستخرج وقت التنفيذ أو تكلفته من خمس خانات في رسم.
ولا يشهد رد م 3 على صحة مصدر القيمتين أو على إجراء خارجي آخر. في المثال قدمنا 4 و 6 صراحة، وحددنا سؤال المجموع؛ لو كان المطلوب تحقق النسخ أو إرسال النتيجة، فهذه أعمال لم تسجل في الورقة.
نقترح تسمية كل حدث وربطه بما قبله، وكتابة قاعدة العد بجانب المجموع. يعين هذا على مراجعة وصف حلقة الوكيل، دون أن يصبح عدد صحيح للخطوات برهانا على نجاح المهمة أو قياسا لأداء فعلي.
المصادر ومتابعة القراءة
- OpenAI: Function calling (يفتح في نافذة جديدة)developers.openai.com
أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.
