Lavorare con più funzioni

Sviluppare sistemi di AI con l'API di OpenAI

Francesca Donadoni

Curriculum Manager, DataCamp

Chiamate di funzione in parallelo

Diagramma che mostra una chiamata all'API OpenAI usando function calling

Sviluppare sistemi di AI con l'API di OpenAI

Chiamate di funzione in parallelo

Diagramma che mostra una chiamata all'API OpenAI usando function calling con più funzioni

Sviluppare sistemi di AI con l'API di OpenAI

Messaggio di esempio

 

function_definition = [{'type': 'function','function':
        {'name': 'extract_job_info',
        'description': 'Ottieni le informazioni sul lavoro dal corpo del testo in input',
        'parameters': {
            'type': 'object',
            'properties': {
                'job': {'type': 'string', 'description': 'Titolo di lavoro'},
                'location': {'type': 'string', 'description': 'Località'}}
        }}
    }]
Sviluppare sistemi di AI con l'API di OpenAI

Messaggio di esempio

function_definition.append({'type': 'function',
        'function':{
            'name': 'get_timezone',
            'description': 'Restituisce il fuso orario corrispondente alla località 
                            nell'annuncio di lavoro',
            'parameters': {
            'type': 'object',
            'properties': {
                'timezone': {'type': 'string','description': 'Fuso orario'}}}
        }
    }
)
Sviluppare sistemi di AI con l'API di OpenAI

Messaggio di esempio

 

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=messages,
    tools=function_definition
)
Sviluppare sistemi di AI con l'API di OpenAI

Risposta di esempio

 

# Stampa gli argomenti della prima funzione
print(response.choices[0].message.tool_calls[0].function.arguments)
{"job": "Data Scientist", "location": "San Francisco, CA"}
# Stampa gli argomenti della seconda funzione
print(response.choices[0].message.tool_calls[1].function.arguments)
{"timezone": "America/Los_Angeles"}
Sviluppare sistemi di AI con l'API di OpenAI

Impostare funzioni specifiche

 

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=messages,
    tools=function_definition,

tool_choice='auto'
)
Sviluppare sistemi di AI con l'API di OpenAI

Impostare funzioni specifiche

 

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=messages,
    tools=function_definition,
    tool_choice={'type': 'function', 
                         'function': {'name': 'extract_job_info'}
                 }
)
Sviluppare sistemi di AI con l'API di OpenAI

Verifica della risposta

 

messages = []
messages.append({"role": "system", "content": "Non fare supposizioni sui valori 
da passare alle funzioni. Non inventare valori per completare la risposta."})
messages.append({"role": "system", "content": "Chiedi chiarimenti se necessario."})
messages.append({"role": "user", "content": "Qual è lo stipendio iniziale 
                                             per il ruolo?"})
Sviluppare sistemi di AI con l'API di OpenAI

Verifica della risposta

 

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=messages,
    tools=function_definition
)
print(response.choices[0].message.content)
Non ho informazioni sullo stipendio iniziale per il ruolo. Se vuoi, posso aiutarti 
a estrarre le informazioni dal job post e poi fornire ulteriore supporto.
Sviluppare sistemi di AI con l'API di OpenAI

Passiamo alla pratica!

Sviluppare sistemi di AI con l'API di OpenAI

Preparing Video For Download...