使用多個函式

使用 OpenAI API 開發 AI 系統

Francesca Donadoni

Curriculum Manager, DataCamp

平行函式呼叫

顯示使用 function calling 呼叫 OpenAI API 的圖表

使用 OpenAI API 開發 AI 系統

平行函式呼叫

顯示使用多個函式進行 function calling 呼叫 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...