Mit mehreren Funktionen arbeiten

Entwicklung von KI-Systemen mit der OpenAI-API

Francesca Donadoni

Curriculum Manager, DataCamp

Paralleles Function Calling

Ein Diagramm, das einen Aufruf der OpenAI API mit Function Calling zeigt

Entwicklung von KI-Systemen mit der OpenAI-API

Paralleles Function Calling

Ein Diagramm, das einen API-Aufruf mit Function Calling über mehrere Funktionen zeigt

Entwicklung von KI-Systemen mit der OpenAI-API

Beispiel-Nachricht

 

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'}}
        }}
    }]
Entwicklung von KI-Systemen mit der OpenAI-API

Beispiel-Nachricht

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'}}}
        }
    }
)
Entwicklung von KI-Systemen mit der OpenAI-API

Beispiel-Nachricht

 

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=messages,
    tools=function_definition
)
Entwicklung von KI-Systemen mit der OpenAI-API

Beispiel-Antwort

 

# Gib die Argumente der ersten Funktion aus
print(response.choices[0].message.tool_calls[0].function.arguments)
{"job": "Data Scientist", "location": "San Francisco, CA"}
# Gib die Argumente der zweiten Funktion aus
print(response.choices[0].message.tool_calls[1].function.arguments)
{"timezone": "America/Los_Angeles"}
Entwicklung von KI-Systemen mit der OpenAI-API

Spezifische Funktionen festlegen

 

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

tool_choice='auto'
)
Entwicklung von KI-Systemen mit der OpenAI-API

Spezifische Funktionen festlegen

 

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=messages,
    tools=function_definition,
    tool_choice={'type': 'function', 
                         'function': {'name': 'extract_job_info'}
                 }
)
Entwicklung von KI-Systemen mit der OpenAI-API

Antwort doppelt prüfen

 

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?"})
Entwicklung von KI-Systemen mit der OpenAI-API

Antwort doppelt prüfen

 

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.
Entwicklung von KI-Systemen mit der OpenAI-API

Lass uns üben!

Entwicklung von KI-Systemen mit der OpenAI-API

Preparing Video For Download...