Support OpenAI-compatible providers

This commit is contained in:
Sam Becker 2025-05-22 09:33:40 -05:00
parent 14ccc20f7a
commit 4f9da5d13d
3 changed files with 10 additions and 1 deletions

View File

@ -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

View File

@ -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(

View File

@ -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