I am trying to call the o1 and o3 models using AsyncAzureOpenAI. If I use max_tokens, I get an error saying the model cannot use max_tokens, it can only use max_completion_tokens. When I use max_completion_tokens, it says AsyncAzureOpenAI has no such keyword argument.
Error:
Traceback:
File "/opt/opentools/Jupyter/workspace/async_streamlit_3.py", line 530, in <module>
generate_test_cases(requirement_pdf_path, reference_pdf_paths)
File "/opt/opentools/Jupyter/workspace/async_streamlit_3.py", line 505, in generate_test_cases
asyncio.run(
File "/usr/lib64/python3.11/asyncio/runners.py", line 190, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.11/asyncio/runners.py", line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.11/asyncio/base_events.py", line 654, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "/opt/opentools/Jupyter/workspace/async_streamlit_3.py", line 469, in generate_testcases_from_list_of_requirements
await asyncio.gather(*tasks)
File "/opt/opentools/Jupyter/workspace/async_streamlit_3.py", line 134, in generate_testcases_from_one_requirement
filtered_requirements_info = await send_prompt_to_o3_mini(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/opentools/Jupyter/workspace/async_streamlit_3.py", line 51, in send_prompt_to_o3_mini
response = await o1_client.chat.completions.create(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/azureadmin/.local/lib/python3.11/site-packages/openai/_utils/_utils.py", line 277, in wrapper
return func(*args, **kwargs)
Code to reproduce:
import asyncio
from openai import AsyncAzureOpenAI
o1_client = AsyncAzureOpenAI(
api_key=o1_api_key,
api_version=o1_api_version,
base_url=f"{o1_api_base}/openai/deployments/{o1_deployment_name}",
)
async def send_prompt_to_o1(prompt):
response = await o1_client.chat.completions.create(
model=o1_deployment_name,
messages=[
{"role": "user", "content": f"{prompt}"},
],
max_completion_tokens=5000
)
print(response.choices[0].message.content)
return response.choices[0].message.content
asyncio.run(send_prompt_to_o1("Hello"))