2
0
Files
bot/packages/forge/blocks/openai/helpers/fetchModels.ts
2024-06-18 12:13:00 +02:00

41 lines
853 B
TypeScript

import OpenAI, { ClientOptions } from 'openai'
import { defaultOpenAIOptions } from '../constants'
type Props = {
apiKey?: string
baseUrl?: string
apiVersion?: string
}
export const fetchGPTModels = async ({
apiKey,
baseUrl = defaultOpenAIOptions.baseUrl,
apiVersion,
}: Props) => {
if (!apiKey) return []
const config = {
apiKey: apiKey,
baseURL: baseUrl ?? defaultOpenAIOptions.baseUrl,
defaultHeaders: {
'api-key': apiKey,
},
defaultQuery: apiVersion
? {
'api-version': apiVersion,
}
: undefined,
} satisfies ClientOptions
const openai = new OpenAI(config)
const models = await openai.models.list()
return (
models.data
.filter((model) => model.id.includes('gpt'))
.sort((a, b) => b.created - a.created)
.map((model) => model.id) ?? []
)
}