Skip to content

Commit

Permalink
⚡️(openai) Allow for custom base URL when adding new creds
Browse files Browse the repository at this point in the history
Closes #1665
  • Loading branch information
baptisteArno committed Aug 21, 2024
1 parent 6d47f3e commit 72517a1
Show file tree
Hide file tree
Showing 9 changed files with 17 additions and 25 deletions.
4 changes: 2 additions & 2 deletions packages/forge/blocks/openai/actions/createChatCompletion.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ export const createChatCompletion = createAction({
runOpenAIChatCompletion({
...params,
config: {
baseUrl: defaultOpenAIOptions.baseUrl,
baseUrl: params.credentials.baseUrl,
defaultModel: defaultOpenAIOptions.model,
},
compatibility: 'strict',
Expand All @@ -68,7 +68,7 @@ export const createChatCompletion = createAction({
runOpenAIChatCompletionStream({
...params,
config: {
baseUrl: defaultOpenAIOptions.baseUrl,
baseUrl: params.credentials.baseUrl,
defaultModel: defaultOpenAIOptions.model,
},
compatibility: 'strict',
Expand Down
6 changes: 3 additions & 3 deletions packages/forge/blocks/openai/actions/createSpeech.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,10 @@ export const createSpeech = createAction({
fetch: async ({ credentials, options }) => {
if (!credentials?.apiKey) return []

const baseUrl = options?.baseUrl ?? defaultOpenAIOptions.baseUrl
const baseUrl = options?.baseUrl
const config = {
apiKey: credentials.apiKey,
baseURL: baseUrl ?? defaultOpenAIOptions.baseUrl,
baseURL: baseUrl,
defaultHeaders: {
'api-key': credentials.apiKey,
},
Expand Down Expand Up @@ -75,7 +75,7 @@ export const createSpeech = createAction({

const config = {
apiKey,
baseURL: options.baseUrl ?? defaultOpenAIOptions.baseUrl,
baseURL: options.baseUrl,
defaultHeaders: {
'api-key': apiKey,
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ export const createTranscription = createAction({

const config = {
apiKey,
baseURL: options.baseUrl ?? defaultOpenAIOptions.baseUrl,
baseURL: options.baseUrl,
defaultHeaders: {
'api-key': apiKey,
},
Expand Down
6 changes: 6 additions & 0 deletions packages/forge/blocks/openai/auth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,11 @@ export const auth = createAuth({
withVariableButton: false,
isDebounceDisabled: true,
}),
baseUrl: option.string.layout({
label: 'Base URL',
defaultValue: 'https://api.openai.com/v1',
moreInfoTooltip:
'Use a different URL prefix for API calls, e.g. to use proxy servers.',
}),
}),
})
2 changes: 0 additions & 2 deletions packages/forge/blocks/openai/baseOptions.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
import { option } from '@typebot.io/forge'
import { defaultOpenAIOptions } from './constants'

export const baseOptions = option
.object({
baseUrl: option.string.layout({
accordion: 'Customize provider',
label: 'Base URL',
defaultValue: defaultOpenAIOptions.baseUrl,
}),
apiVersion: option.string.layout({
accordion: 'Customize provider',
Expand Down
3 changes: 1 addition & 2 deletions packages/forge/blocks/openai/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@ export const modelsWithImageUrlSupport = [
export const excludedModelsFromImageUrlSupport = ['gpt-4-turbo-preview']

export const defaultOpenAIOptions = {
baseUrl: 'https://api.openai.com/v1',
model: 'gpt-3.5-turbo',
model: 'gpt-4o-mini',
voiceModel: 'tts-1',
temperature: 1,
} as const
Expand Down
5 changes: 2 additions & 3 deletions packages/forge/blocks/openai/helpers/fetchModels.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import OpenAI, { ClientOptions } from 'openai'
import { defaultOpenAIOptions } from '../constants'

type Props = {
apiKey?: string
Expand All @@ -9,14 +8,14 @@ type Props = {

export const fetchGPTModels = async ({
apiKey,
baseUrl = defaultOpenAIOptions.baseUrl,
baseUrl,
apiVersion,
}: Props) => {
if (!apiKey) return []

const config = {
apiKey: apiKey,
baseURL: baseUrl ?? defaultOpenAIOptions.baseUrl,
baseURL: baseUrl,
defaultHeaders: {
'api-key': apiKey,
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { parseTools } from '@typebot.io/ai/parseTools'
import { parseChatCompletionMessages } from '@typebot.io/ai/parseChatCompletionMessages'

type OpenAIConfig = {
baseUrl: string
baseUrl?: string
defaultModel?: string
}

Expand Down Expand Up @@ -37,11 +37,6 @@ export const runOpenAIChatCompletion = async ({

const model = createOpenAI({
baseURL: openAIConfig.baseUrl ?? options.baseUrl,
headers: options.baseUrl
? {
'api-key': apiKey,
}
: undefined,
apiKey,
compatibility,
})(modelName)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ type Props = {
credentials: { apiKey?: string }
options: ChatCompletionOptions
variables: AsyncVariableStore
config: { baseUrl: string; defaultModel?: string }
config: { baseUrl?: string; defaultModel?: string }
compatibility?: 'strict' | 'compatible'
}

Expand All @@ -34,11 +34,6 @@ export const runOpenAIChatCompletionStream = async ({

const model = createOpenAI({
baseURL: openAIConfig.baseUrl ?? options.baseUrl,
headers: options.baseUrl
? {
'api-key': apiKey,
}
: undefined,
apiKey,
compatibility,
})(modelName)
Expand Down

0 comments on commit 72517a1

Please sign in to comment.