skip to Main Content

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


  1. Chosen as BEST ANSWER

    As a complement to Krista's answer, example code:

    import os
    import openai
    import cchardet
    openai.api_type = "azure"
    openai.api_base = "https://XXXX.openai.azure.com/"
    openai.api_version = "2023-07-01-preview"
    openai.api_key = "XXXX" 
    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"]
            }
        }
    ]
    
    
    response = openai.ChatCompletion.create(
                engine="gpt-35-turbo-XXXX",
                model="gpt-35-turbo-0613-XXXX"
                messages=messages,
                functions=functions,
                function_call="auto",
            )
    
    
    print(response)
    

    Output:

    {
      "choices": [
        {
          "content_filter_results": {
            "hate": {
              "filtered": false,
              "severity": "safe"
            },
            "self_harm": {
              "filtered": false,
              "severity": "safe"
            },
            "sexual": {
              "filtered": false,
              "severity": "safe"
            },
            "violence": {
              "filtered": false,
              "severity": "safe"
            }
          },
          "finish_reason": "stop",
          "index": 0,
          "message": {
            "content": "Hi there! How can I assist you today?",
            "role": "assistant"
          }
        }
      ],
      "created": 1690229943,
      "id": "chatcmpl-sdkopsdvomsdvpomi156sdv",
      "model": "gpt-35-turbo",
      "object": "chat.completion",
      "prompt_annotations": [
        {
          "content_filter_results": {
            "hate": {
              "filtered": false,
              "severity": "safe"
            },
            "self_harm": {
              "filtered": false,
              "severity": "safe"
            },
            "sexual": {
              "filtered": false,
              "severity": "safe"
            },
            "violence": {
              "filtered": false,
              "severity": "safe"
            }
          },
          "prompt_index": 0
        }
      ],
      "usage": {
        "completion_tokens": 11,
        "prompt_tokens": 127,
        "total_tokens": 138
      }
    }
    

  2. Function support with the Azure API was added in 2023-07-01-preview. The API version needs to be updated in your example:

    openai.api_version = "2023-07-01-preview"
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search