เมื่อใช้โมเดลปัญญาประดิษฐ์ (AI) แบบ Generative เช่น Gemma คุณอาจต้องการใช้โมเดลเพื่อดำเนินการกับอินเทอร์เฟซการเขียนโปรแกรมเพื่อทำงานให้เสร็จสมบูรณ์หรือตอบคำถาม การให้คําสั่งโมเดลโดยการกําหนดอินเทอร์เฟซการเขียนโปรแกรม แล้วส่งคําขอที่ใช้อินเทอร์เฟซนั้นเรียกว่าการเรียกใช้ฟังก์ชัน
Gemma จะไม่แสดงผลโทเค็นเฉพาะเครื่องมือ เฟรมเวิร์กต้องตรวจหาการเรียกใช้เครื่องมือโดยตรวจสอบว่าโครงสร้างของเอาต์พุตตรงกับข้อกําหนดเฉพาะของเอาต์พุตฟังก์ชันที่แสดงหรือไม่
คุณใช้การเรียกฟังก์ชันสําหรับแอปพลิเคชันต่างๆ ได้ดังนี้
- สร้างอินเทอร์เฟซภาษาที่เป็นธรรมชาติสําหรับ API การเขียนโปรแกรมเพื่ออนุญาตให้ผู้ที่ไม่ใช่โปรแกรมเมอร์ใช้งานอินเทอร์เฟซแบบเป็นโปรแกรมได้โดยไม่ต้องเขียนโค้ด
- สร้างการเรียกใช้การเขียนโปรแกรมเป็นส่วนหนึ่งของเวิร์กโฟลว์ของตัวแทน AI
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 พรอมต์ของโมเดลควรเป็นไปตามลําดับและโครงสร้างที่เฉพาะเจาะจงนี้
- การตั้งค่าการเรียกฟังก์ชัน
- คําจํากัดความของฟังก์ชัน
ส่วนต่อไปนี้จะให้รายละเอียดเพิ่มเติมเกี่ยวกับคอมโพเนนต์พรอมต์แต่ละรายการ
การตั้งค่าการเรียกใช้ฟังก์ชัน
ส่วน setup ของพรอมต์การเรียกฟังก์ชันจะตั้งค่าลักษณะการทํางานโดยรวมที่คาดไว้ของโมเดล คุณสามารถเพิ่มวิธีการทั่วไปเพิ่มเติมสำหรับลักษณะการทํางานของโมเดลในส่วนนี้ เช่น ระบุว่าควรแสดงเอาต์พุตโดยใช้ฟังก์ชัน 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 อาจไม่สนใจคําแนะนําที่ละเอียดเกินไปหรือไม่ชัดเจน โดยเฉพาะเมื่อคุณใช้โมเดลเวอร์ชันที่มีจํานวนพารามิเตอร์น้อยกว่า
คําจํากัดความของฟังก์ชัน
ส่วนคําจํากัดความของพรอมต์จะแสดงชื่อฟังก์ชัน พารามิเตอร์ และเอาต์พุต รวมถึงคําอธิบายของแต่ละรายการ คุณสามารถประกาศฟังก์ชันในรูปแบบที่แสดง คุณกำหนดฟังก์ชันได้ 1 รายการหรือหลายรายการภายในบล็อกประกาศฟังก์ชัน
[ { "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 ใช้งานได้