Lucrul cu mai multe funcții

Dezvoltarea sistemelor AI cu OpenAI API

Francesca Donadoni

Curriculum Manager, DataCamp

Apelarea paralelă a funcțiilor

Diagramă a unui apel către API-ul OpenAI utilizând function calling

Dezvoltarea sistemelor AI cu OpenAI API

Apelarea paralelă a funcțiilor

Diagramă a unui apel către API-ul OpenAI utilizând function calling cu mai multe funcții

Dezvoltarea sistemelor AI cu OpenAI API

Exemplu de mesaj

 

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'}}
        }}
    }]
Dezvoltarea sistemelor AI cu OpenAI API

Exemplu de mesaj

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'}}}
        }
    }
)
Dezvoltarea sistemelor AI cu OpenAI API

Exemplu de mesaj

 

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=messages,
    tools=function_definition
)
Dezvoltarea sistemelor AI cu OpenAI API

Exemplu de răspuns

 

# 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"}
Dezvoltarea sistemelor AI cu OpenAI API

Specificarea funcțiilor

 

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

tool_choice='auto'
)
Dezvoltarea sistemelor AI cu OpenAI API

Specificarea funcțiilor

 

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

Verificarea răspunsului

 

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?"})
Dezvoltarea sistemelor AI cu OpenAI API

Verificarea răspunsului

 

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.
Dezvoltarea sistemelor AI cu OpenAI API

Vamos praticar!

Dezvoltarea sistemelor AI cu OpenAI API

Preparing Video For Download...