2
0

(openai) Add custom provider and custom models

Closes #532
This commit is contained in:
Baptiste Arnaud
2023-09-01 16:19:59 +02:00
parent 436fa251f8
commit 27a5f4eb74
21 changed files with 684 additions and 278 deletions

View File

@ -5,23 +5,6 @@ import { IntegrationBlockType } from './enums'
export const openAITasks = ['Create chat completion', 'Create image'] as const
export const chatCompletionModels = [
'gpt-3.5-turbo',
'gpt-3.5-turbo-0613',
'gpt-3.5-turbo-16k',
'gpt-3.5-turbo-16k-0613',
'gpt-3.5-turbo-0301',
'gpt-4',
'gpt-4-0613',
'gpt-4-32k',
'gpt-4-32k-0613',
'gpt-4-32k-0314',
'gpt-4-0314',
] as const
export const deprecatedCompletionModels: (typeof chatCompletionModels)[number][] =
['gpt-3.5-turbo-0301', 'gpt-4-32k-0314', 'gpt-4-0314']
export const chatCompletionMessageRoles = [
'system',
'user',
@ -37,8 +20,12 @@ export const chatCompletionResponseValues = [
'Total tokens',
] as const
export const defaultBaseUrl = 'https://api.openai.com/v1'
const openAIBaseOptionsSchema = z.object({
credentialsId: z.string().optional(),
baseUrl: z.string().default(defaultBaseUrl),
apiVersion: z.string().optional(),
})
const initialOptionsSchema = z
@ -68,7 +55,7 @@ const chatCompletionCustomMessageSchema = z.object({
const chatCompletionOptionsSchema = z
.object({
task: z.literal(openAITasks[0]),
model: z.enum(chatCompletionModels),
model: z.string(),
messages: z.array(
z.union([chatCompletionMessageSchema, chatCompletionCustomMessageSchema])
),
@ -130,6 +117,7 @@ export const openAICredentialsSchema = z
export const defaultChatCompletionOptions = (
createId: () => string
): ChatCompletionOpenAIOptions => ({
baseUrl: defaultBaseUrl,
task: 'Create chat completion',
messages: [
{