Werken met meerdere functies

AI-systemen ontwikkelen met de OpenAI API

Francesca Donadoni

Curriculum Manager, DataCamp

Parallel function calling

Een diagram van een aanroep naar de OpenAI API met function calling

AI-systemen ontwikkelen met de OpenAI API

Parallel function calling

Een diagram van een aanroep naar de OpenAI API met function calling met meerdere functies

AI-systemen ontwikkelen met de OpenAI API

Voorbeeldbericht

 

function_definition = [{'type': 'function','function':
        {'name': 'extract_job_info',
        'description': 'Get the job information from the body of the input text',
        'parameters': {
            'type': 'object',
            'properties': {
                'job': {'type': 'string', 'description': 'Job title'},
                'location': {'type': 'string', 'description': 'Location'}}
        }}
    }]
AI-systemen ontwikkelen met de OpenAI API

Voorbeeldbericht

function_definition.append({'type': 'function',
        'function':{
            'name': 'get_timezone',
            'description': 'Return the timezone corresponding to the location in the 
                            job advert',
            'parameters': {
            'type': 'object',
            'properties': {
                'timezone': {'type': 'string','description': 'Timezone'}}}
        }
    }
)
AI-systemen ontwikkelen met de OpenAI API

Voorbeeldbericht

 

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=messages,
    tools=function_definition
)
AI-systemen ontwikkelen met de OpenAI API

Voorbeeldantwoord

 

# Print the arguments of the first function
print(response.choices[0].message.tool_calls[0].function.arguments)
{"job": "Data Scientist", "location": "San Francisco, CA"}
# Print the arguments of the second function
print(response.choices[0].message.tool_calls[1].function.arguments)
{"timezone": "America/Los_Angeles"}
AI-systemen ontwikkelen met de OpenAI API

Specifieke functies instellen

 

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

tool_choice='auto'
)
AI-systemen ontwikkelen met de OpenAI API

Specifieke functies instellen

 

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=messages,
    tools=function_definition,
    tool_choice={'type': 'function', 
                         'function': {'name': 'extract_job_info'}
                 }
)
AI-systemen ontwikkelen met de OpenAI API

Antwoord dubbelchecken

 

messages = []
messages.append({"role": "system", "content": "Don't make assumptions about what 
values to plug into functions. Don't make up values to fill the response with."})
messages.append({"role": "system", "content": "Ask for clarification if needed."})
messages.append({"role": "user", "content": "What is the starting salary 
                                             for the role?"})
AI-systemen ontwikkelen met de OpenAI API

Antwoord dubbelchecken

 

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=messages,
    tools=function_definition
)
print(response.choices[0].message.content)
I don't have information about the starting salary for the role. If you'd like, I 
can help you extract the job information from the description and then provide 
additional assistance.
AI-systemen ontwikkelen met de OpenAI API

Laten we oefenen!

AI-systemen ontwikkelen met de OpenAI API

Preparing Video For Download...