-
Notifications
You must be signed in to change notification settings - Fork 2.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ChatCompletions create() doesn't type-check enums as role #1300
Comments
Solution is also provided at #911 (comment) It's described as pydantic, but I don't think we can have Maybe name can be Just different ideas. If the reason for making the User have to call a function is because the typing is automatically generated, then maybe there's a way to manually add in a type there that can be brought into the automated system. I feel it will be hard for Users to navigate into this issue and know to use a factory for this type. But, I have no idea, maybe it's not possible to work this into the auto-generated system. But, having a factory will be nice regardless, because it means you can do |
Thanks for the suggestion. We'll take it into consideration as we think about ways to improve this experience. |
Confirm this is a feature request for the Python library and not the underlying OpenAI API.
Describe the feature or improvement you're requesting
This was discussed previously @ #911, but just opening a new issue so that it's in the issue tracker.
The Bug
When calling,
Reason
The main issue is that it's defined as an enum of typed dicts,
Of course, for tooling & functions, we need to know exactly whether or not it's a user or assistant message. But
role: str, content: str
is the most common use-case, so it would be nice if system/user/assistant can all use that kind of interface when necessary.Additional context
Potential Solution
From #911 (comment),
I think a very simple solution would be to add another type to the ChatCompletionMessageParam union.
Currently, we have
If instead we had,
Where
ChatCompletionGenericMessageParam
was,ChatCompletionGenericMessageParam
into aUnion[ChatCompletionSystemMessageParam, ChatCompletionUserMessageParam,ChatCompletionAssistantMessageParam]
.The text was updated successfully, but these errors were encountered: