diff --git a/README.md b/README.md index 863b1881..34a8bc7f 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,10 @@ _⚠️ READ BEFORE PROCEEDING_ - `semantic` (default) - `none` +#### Alternate AI providers (experimental) + +Set `OPENAI_BASE_URL` in order to use an alternate OpenAI-compatible provider + ### Web Analytics 1. Open project on Vercel diff --git a/src/app/config.ts b/src/app/config.ts index 681afb2b..019789ff 100644 --- a/src/app/config.ts +++ b/src/app/config.ts @@ -199,6 +199,7 @@ export const CURRENT_STORAGE: StorageType = // AI +export const OPENAI_BASE_URL = process.env.OPENAI_BASE_URL; export const AI_TEXT_GENERATION_ENABLED = Boolean(process.env.OPENAI_SECRET_KEY); export const AI_TEXT_AUTO_GENERATED_FIELDS = parseAiAutoGeneratedFieldsString( diff --git a/src/platforms/openai.ts b/src/platforms/openai.ts index 64f1d7a0..7e20caad 100644 --- a/src/platforms/openai.ts +++ b/src/platforms/openai.ts @@ -6,6 +6,7 @@ import { Ratelimit } from '@upstash/ratelimit'; import { AI_TEXT_GENERATION_ENABLED, HAS_REDIS_STORAGE, + OPENAI_BASE_URL, } from '@/app/config'; import { removeBase64Prefix } from '@/utility/image'; import { cleanUpAiTextResponse } from '@/photo/ai'; @@ -16,7 +17,10 @@ const RATE_LIMIT_IDENTIFIER = 'openai-image-query'; const MODEL = 'gpt-4o'; const openai = AI_TEXT_GENERATION_ENABLED - ? createOpenAI({ apiKey: process.env.OPENAI_SECRET_KEY }) + ? createOpenAI({ + apiKey: process.env.OPENAI_SECRET_KEY, + ...OPENAI_BASE_URL && { baseURL: OPENAI_BASE_URL }, + }) : undefined; const ratelimit = redis