Trabalhando com várias funções

Desenvolvimento de sistemas de IA com a API OpenAI

Francesca Donadoni

Curriculum Manager, DataCamp

Chamadas de função em paralelo

Um diagrama mostrando uma chamada à API da OpenAI usando function calling

Desenvolvimento de sistemas de IA com a API OpenAI

Chamadas de função em paralelo

Um diagrama mostrando uma chamada à API da OpenAI usando function calling com várias funções

Desenvolvimento de sistemas de IA com a API OpenAI

Mensagem de exemplo

 

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'}}
        }}
    }]
Desenvolvimento de sistemas de IA com a API OpenAI

Mensagem de exemplo

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'}}}
        }
    }
)
Desenvolvimento de sistemas de IA com a API OpenAI

Mensagem de exemplo

 

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=messages,
    tools=function_definition
)
Desenvolvimento de sistemas de IA com a API OpenAI

Resposta de exemplo

 

# 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"}
Desenvolvimento de sistemas de IA com a API OpenAI

Definindo funções específicas

 

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

tool_choice='auto'
)
Desenvolvimento de sistemas de IA com a API OpenAI

Definindo funções específicas

 

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=messages,
    tools=function_definition,
    tool_choice={'type': 'function', 
                         'function': {'name': 'extract_job_info'}
                 }
)
Desenvolvimento de sistemas de IA com a API OpenAI

Conferindo a resposta

 

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?"})
Desenvolvimento de sistemas de IA com a API OpenAI

Conferindo a resposta

 

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.
Desenvolvimento de sistemas de IA com a API OpenAI

Vamos praticar!

Desenvolvimento de sistemas de IA com a API OpenAI

Preparing Video For Download...