openai-python
openai-python copied to clipboard
Must provide an 'engine' when using ChatCompletion api
Describe the bug
I followed the instructions from https://github.com/openai/openai-cookbook/blob/main/examples/How_to_format_inputs_to_ChatGPT_models.ipynb but got an error: openai.error.InvalidRequestError: Must provide an 'engine' or 'deployment_id' parameter to create a <class 'openai.api_resources.chat_completion.ChatCompletion'>
To Reproduce
using a Azure openai endpoint execute the following code snippets with your own api_key
import openai
openai.api_type = "azure"
# Example OpenAI Python library request
MODEL = "gpt-3.5-turbo"
response = openai.ChatCompletion.create(
model=MODEL,
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Knock knock."},
{"role": "assistant", "content": "Who's there?"},
{"role": "user", "content": "Orange."},
],
temperature=0,
)
response
Code snippets
import openai
openai.api_type = "azure"
# Example OpenAI Python library request
MODEL = "gpt-3.5-turbo"
response = openai.ChatCompletion.create(
model=MODEL,
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Knock knock."},
{"role": "assistant", "content": "Who's there?"},
{"role": "user", "content": "Orange."},
],
temperature=0,
)
response
OS
macOS
Python version
Python 3.9.13
Library version
openai-python-0.27.2
According to the documentation, Azure endpoints does not work with chatpcompletion yet. It is only working for completion, embedding, and fine-tuning operations for now.
https://github.com/openai/openai-python "Please note that for the moment, the Microsoft Azure endpoints can only be used for completion, embedding, and fine-tuning operations. "
I believe you need access to the Azure Chat Completions API preview. More here.
I hit same issue and eventually I found that I need to first deploy a model on Azure portal. Then use parameter "engine" rather than "model" and pass the deployed engine name. It works for me.😄
What worked for me was replacing
llm = AzureOpenAI(
deployment_name="td2",
model_name="text-davinci-002",
)
For
llm = AzureOpenAI(
engine="td2",
model_name="text-davinci-002",
)