Quando utilizzi un modello di intelligenza artificiale (IA) generativa come Gemma, potresti voler utilizzare il modello per gestire interfacce di programmazione al fine di completare attività o rispondere a domande. L'istruzione di un modello mediante la definizione di un'interfaccia di programmazione e l'invio di una richiesta che utilizza questa interfaccia è chiamata chiamata di funzione.
Gemma non genera un token specifico per lo strumento. Il framework deve rilevare una chiamata allo strumento controllando se la struttura dell'output corrisponde alla specifica dell'output della funzione richiesta.
Puoi utilizzare le chiamate di funzione per una serie di applicazioni:
- Crea un'interfaccia di linguaggio naturale per un'API di programmazione per consentire ai non programmatori di utilizzare un'interfaccia programmatica senza scrivere codice.
- Genera chiamate di programmazione nell'ambito di un flusso di lavoro dell'agente AI
La chiamata di funzioni è supportata in Gemma 3, ma la tecnica di chiamata di funzioni può essere utilizzata con le versioni precedenti di Gemma. Questa guida fornisce istruzioni su come creare prompt di Gemma che utilizzano la chiamata di funzioni. Consigliamo Gemma3 27B per le migliori prestazioni e Gemma3 12B per prestazioni e latenza bilanciate.
Chiama le funzioni di programmazione
Puoi utilizzare le chiamate di funzione con Gemma creando un prompt che fornisca istruzioni che specificano il formato dell'output e definiscono le funzioni disponibili.
Quando il prompt dell'utente è incluso, il modello genera una chiamata di funzione, ovvero una stringa che corrisponde al formato di output specificato. Ciò indica una richiesta da analizzare dal framework del modello per chiamare le funzioni definite.
Il seguente esempio di prompt mostra un blocco di definizione di funzione, una sintassi di chiamata di funzione e un output di chiamata di funzione dal modello. Il seguente prompt di esempio è destinato all'utilizzo con un'interfaccia di programmazione per un catalogo di prodotti:
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?
Questo prompt dovrebbe produrre la seguente risposta:
[get_product_name_by_PID(PID="807ZPKBL9V")]
Questo esempio utilizza un output di chiamata di funzione in stile Python. In alternativa, puoi specificare un formato di output in stile JSON, come mostrato nell'esempio seguente:
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?
Questo prompt dovrebbe produrre la seguente risposta:
{"name": "get_product_name_by_PID", "parameters": {"PID": "807ZPKBL9V"}}
Componenti del prompt di chiamata di funzione
Quando utilizzi le chiamate di funzione con i modelli Gemma, il prompt del modello deve seguire questo ordine e questa struttura specifici:
- Configurazione delle chiamate di funzione
- Definizioni delle funzioni
Le sezioni seguenti forniscono maggiori dettagli su ciascuno di questi componenti del prompt.
Configurazione delle chiamate di funzione
La sezione setup del prompt di chiamata della funzione imposta il comportamento
generale previsto del modello. In questa sezione puoi aggiungere istruzioni generali aggiuntive per il comportamento del modello, ad esempio specificare che l'output deve essere visualizzato utilizzando una funzione print
o console.log
. Utilizza i segni di sbarramento singoli (func_name
) in stile Markdown per indicare la sintassi del codice.
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
Queste istruzioni devono essere il più chiare e brevi possibile. Assegna la priorità alle istruzioni più importanti ed evita di fornire troppe istruzioni generali. I modelli Gemma potrebbero ignorare le istruzioni troppo dettagliate o non espresse chiaramente, in particolare quando utilizzi versioni del modello con un numero inferiore di parametri.
Definizione della funzione
La sezione definition del prompt fornisce il nome, i parametri e l'output della funzione, inclusa una descrizione per ciascuno. Puoi dichiarare le funzioni nel formato mostrato. È possibile definire una o più funzioni all'interno del blocco di dichiarazione della funzione.
[ { "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" ] } } ]
Passaggi successivi
Scopri i modi per eseguire il deployment ed eseguire i modelli Gemma: