使用多个函数

使用 OpenAI API 构建 AI 系统

Francesca Donadoni

Curriculum Manager, DataCamp

并行函数调用

一个展示使用函数调用访问 OpenAI API 的示意图

使用 OpenAI API 构建 AI 系统

并行函数调用

一个展示使用多函数进行函数调用访问 OpenAI API 的示意图

使用 OpenAI API 构建 AI 系统

示例消息

 

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'}}
        }}
    }]
使用 OpenAI API 构建 AI 系统

示例消息

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'}}}
        }
    }
)
使用 OpenAI API 构建 AI 系统

示例消息

 

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=messages,
    tools=function_definition
)
使用 OpenAI API 构建 AI 系统

示例响应

 

# 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"}
使用 OpenAI API 构建 AI 系统

设置特定函数

 

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

tool_choice='auto'
)
使用 OpenAI API 构建 AI 系统

设置特定函数

 

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=messages,
    tools=function_definition,
    tool_choice={'type': 'function', 
                         'function': {'name': 'extract_job_info'}
                 }
)
使用 OpenAI API 构建 AI 系统

再次核对响应

 

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?"})
使用 OpenAI API 构建 AI 系统

再次核对响应

 

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.
使用 OpenAI API 构建 AI 系统

让我们练习吧!

使用 OpenAI API 构建 AI 系统

Preparing Video For Download...