I’m trying to use functions
when calling Azure OpenAI GPT, as documented in https://platform.openai.com/docs/api-reference/chat/create#chat/create-functions
I use:
import openai
openai.api_type = "azure"
openai.api_base = "https://XXXXXXXX.openai.azure.com/"
openai.api_version = "2023-06-01-preview"
openai.api_key = os.getenv("OPENAI_API_KEY")
response = openai.ChatCompletion.create(
engine="gpt-35-turbo-XXX",
model="gpt-35-turbo-0613-XXXX"
messages=messages,
functions=functions,
function_call="auto",
)
but I get the error:
openai.error.InvalidRequestError:
Unrecognized request argument supplied: functions
Why?
Data to run the example code above (messages
and functions
need to be defined):
messages = [{"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Hello!"}]
functions = [
{
"name": "fetch_pages",
"description": "Fetch the content of specified pages from the document.",
"parameters": {
"type": "object",
"properties": {
"pages": {
"type": "array",
"items": {
"type": "number"
},
"description": "The list of pages to fetch."
}
},
"required": ["pages"]
}
},
{
"name": "fetch_section",
"description": "Fetch the content of a specified section.",
"parameters": {
"type": "object",
"properties": {
"section_title": {
"type": "string",
"description": "The title of the section to fetch."
}
},
"required": ["section_title"]
}
},
{
"name": "search",
"description": "Search the document for a string query.",
"parameters": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "The search term."
}
},
"required": ["query"]
}
}
]
2
Answers
As a complement to Krista's answer, example code:
Output:
Function support with the Azure API was added in 2023-07-01-preview. The API version needs to be updated in your example: