Inconsistent base_url behavior with module client and OpenAIClient
dramdass opened this issue · 3 comments
Confirm this is an issue with the Python library and not an underlying OpenAI API
- This is an issue with the Python library
Describe the bug
The issue is that the base_url
in the OpenAI
client enforces a trailing slash whereas setting the module openai.base_url
does not enforce.
This is 100% reproducible and while it can be worked around, the inconsistency in clients causes issues in scripts that use both clients.
To Reproduce
- Create a module client and use a
base_url
without a trailing slash. See error with URL for completions - Create an OpenAIClient and use a
base_url
without a trailing slash. See no erros.
Code snippets
This works
client = openai.OpenAI(
api_key=my_key,
base_url="https://myllmserver.com/api/v1"
)
print(client.completions.create(
model="mistralai/Mistral-7B-Instruct-v0.2",
prompt="test"
))
This does not:
openai.base_url="https://myllmserver.com/api/v1"
openai.api_key=my_key
print(openai.completions.create(
model="mistralai/Mistral-7B-Instruct-v0.2",
prompt="test"
))
Error:
https://myllmserver.com/api/v1completions "HTTP/1.1 404 Not Found"
OS
macOS
Python version
Python v3.12
Library version
openai v1.23.6
Thanks for reporting, @dramdass. I'm not sure we'd prioritize a fix here, but we'd likely accept a contribution that updates the module client to match the non-module client.
The right fix seems to be in src/__init__.py
but the comment says # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
. I could't find a relevant place in the schema here https://github.com/openai/openai-openapi/tree/master to generate it. Can I add the fix manually into src/__init__.py
?
Yes, that would be the correct location.