-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Open
Labels
Description
Confirm this is a feature request for the Node library and not the underlying OpenAI API.
- This is a feature request for the Node library
Describe the feature or improvement you're requesting
I have a need for model names defined as iterables, in particular for enforcing typesafety in various places.
Take Sequelize enums for example:
DataTypes.ENUM({
values: ['value', 'another value']
})
or programmatically generating GraphQL enums:
const RGBType = new GraphQLEnumType({
name: 'RGB',
values: {
RED: { value: 0 },
GREEN: { value: 1 },
BLUE: { value: 2 }
}
});
or Zod enums:
const VALUES = ["Salmon", "Tuna", "Trout"] as const;
const FishEnum = z.enum(VALUES);
As it stands with the union type exported from OpenAI, we'd have to manually create these arrays and maintain them on our side.
It would be great to have something like this instead which would give us the best of both worlds:
export const ChatModelArray = [
'gpt-4o',
'gpt-4o-2024-05-13',
'gpt-4-turbo',
'gpt-4-turbo-2024-04-09',
'gpt-4-0125-preview',
'gpt-4-turbo-preview',
'gpt-4-1106-preview',
'gpt-4-vision-preview',
'gpt-4',
'gpt-4-0314',
'gpt-4-0613',
'gpt-4-32k',
'gpt-4-32k-0314',
'gpt-4-32k-0613',
'gpt-3.5-turbo',
'gpt-3.5-turbo-16k',
'gpt-3.5-turbo-0301',
'gpt-3.5-turbo-0613',
'gpt-3.5-turbo-1106',
'gpt-3.5-turbo-0125',
'gpt-3.5-turbo-16k-0613',
];
export type ChatModel = (typeof ChatModelArray)[number];
Additional context
No response
mgoetzke, gilles-yvetot, tiffling and jshao-brex