عند استخدام نموذج الذكاء الاصطناعي التوليدي، مثل Gemma، قد تحتاج إلى استخدام النموذج لتشغيل واجهات البرمجة من أجل إكمال المهام أو الإجابة عن الأسئلة. يُعرف توجيه نموذج من خلال تحديد واجهة برمجة ثم تقديم طلب يستخدم هذه الواجهة باسم استدعاء الدوال.
لا تُخرج Gemma رمزًا مميّزًا خاصًا بالأداة. يجب أن يرصد إطار العمل طلب استخدام الأداة من خلال التحقّق مما إذا كانت بنية المخرجات تطابق مواصفات مخرجات الدالة التي تم طلبها.
يمكنك استخدام استدعاء الدوال لعدد من التطبيقات:
- إنشاء واجهة بلغة طبيعية لواجهة برمجة التطبيقات للسماح لغير المبرمجين بتشغيل واجهة آلية بدون كتابة رموز برمجية
- إنشاء طلبات برمجة كجزء من سير عمل موظّف دعم الذكاء الاصطناعي
يمكن استدعاء الدوال في Gemma 3، ولكن يمكن استخدام أسلوب استدعاء الدوال مع الإصدارات السابقة من Gemma. يوفّر هذا الدليل تعليمات حول كيفية إنشاء طلبات Gemma التي تستخدِم طلب وظائف. ننصحك باستخدام Gemma3 27B للحصول على أفضل أداء، وGemma3 12B للحصول على أداء ووقت استجابة متوازنَين.
دوال برمجة الاتصال
يمكنك استخدام طلب الدالة مع Gemma من خلال إنشاء طلب يقدّم تعليمات تحدّد تنسيق الإخراج ويحدد الدوالّ المتاحة.
عند تضمين طلب المستخدم، يُخرج النموذج طلب استدعاء دالة، وهو عبارة عن سلسلة تتطابق مع تنسيق الإخراج المحدّد. يشير ذلك إلى طلب تحليله من خلال إطار عمل النموذج لاستدعاء الدوالّ المُعرَّفة.
يعرض نموذج الطلب التالي وحدة تعريف دالة، بالإضافة إلى بنية استدعاء دالة، وإخراج استدعاء دالة من النموذج. يُقصد استخدام مثال الطلب التالي مع واجهة برمجة لخدمة كتالوج المنتجات:
You have access to functions. If you decide to invoke any of the function(s), you MUST put it in the format of [func_name1(params_name1=params_value1, params_name2=params_value2...), func_name2(params)] You SHOULD NOT include any other text in the response if you call a function [ { "name": "get_product_name_by_PID", "description": "Finds the name of a product by its Product ID", "parameters": { "type": "object", "properties": { "PID": { "type": "string" } }, "required": [ "PID" ] } } ] While browsing the product catalog, I came across a product that piqued my interest. The product ID is 807ZPKBL9V. Can you help me find the name of this product?
من المفترض أن يؤدي هذا الطلب إلى ظهور الردّ التالي:
[get_product_name_by_PID(PID="807ZPKBL9V")]
يستخدم هذا المثال إخراج طلب استدعاء الدالة بأسلوب Python. بدلاً من ذلك، يمكنك تحديد تنسيق إخراج بأسلوب JSON، كما هو موضّح في المثال التالي:
You have access to functions. If you decide to invoke any of the function(s), you MUST put it in the format of {"name": function name, "parameters": dictionary of argument name and its value} You SHOULD NOT include any other text in the response if you call a function [ { "name": "get_product_name_by_PID", "description": "Finds the name of a product by its Product ID", "parameters": { "type": "object", "properties": { "PID": { "type": "string" } }, "required": [ "PID" ] } } ] While browsing the product catalog, I came across a product that piqued my interest. The product ID is 807ZPKBL9V. Can you help me find the name of this product?
من المفترض أن يؤدي هذا الطلب إلى ظهور الردّ التالي:
{"name": "get_product_name_by_PID", "parameters": {"PID": "807ZPKBL9V"}}
مكونات طلب استدعاء الدالة
عند استخدام دالة الاتصال مع نماذج Gemma، يجب أن يلي طلبك للنموذج الترتيب والبنية المحدّدَين التاليَين:
تقدّم الأقسام التالية مزيدًا من التفاصيل حول كلّ من مكونات الطلبات هذه.
إعداد استدعاء الدالة
يحدِّد قسم الإعداد في طلب استدعاء الدالة السلوك الإجمالي المتوقَّع
للنموذج. يمكنك إضافة تعليمات عامة إضافية لسلوك
النموذج في هذا القسم، مثل تحديد أنّه يجب
عرض الإخراج باستخدام دالة print
أو console.log
. استخدِم علامتَي اقتباس خلفيتَين مفردتَين (func_name
) على غرار Markdown للإشارة إلى بنية التعليمات البرمجية.
You have access to functions. If you decide to invoke any of the function(s), you MUST put it in the format of {"name": function name, "parameters": dictionary of argument name and its value} You SHOULD NOT include any other text in the response if you call a function
يجب أن تكون هذه التعليمات واضحة وموجزة قدر الإمكان. امنح الأولوية لتعليمات الأكثر أهمية، وتجنَّب تقديم العديد من التعليمات العامة. قد تتجاهل نماذج Gemma التعليمات المفصّلة جدًا أو التي لم يتم توضيحها بوضوح، خاصةً عند استخدام إصدارات النماذج التي تحتوي على عددٍ أقل من المَعلمات.
تعريف الدالة
يقدّم قسم التعريف في الطلب اسم الدالة والمَعلمات والناتج، بما في ذلك وصف لكلٍّ منها. يمكنك تحديد الدوالّ بالشكل المعروض. يمكن تعريف دوال فردية أو متعددة ضمن قالب تعريف الدالة.
[ { "name": "get_product_name_by_PID", "description": "Finds the name of a product by its Product ID", "parameters": { "type": "object", "properties": { "PID": { "type": "string" } }, "required": [ "PID" ] } }, { "name": "get_product_price_by_PID", "description": "Finds the price of a product by its Product ID", "parameters": { "type": "object", "properties": { "PID": { "type": "string" } }, "required": [ "PID" ] } } ]
الخطوات التالية
اطّلِع على طرق نشر نماذج Gemma وتشغيلها: