used the "@ai-sdk/openai-compatible" package instead

This commit is contained in:
daniel31x13
2025-05-03 08:15:13 -04:00
parent 778dd764f6
commit bc36513952
4 changed files with 26 additions and 20 deletions

View File

@@ -48,21 +48,19 @@ MEILI_TIMEOUT=
NEXT_PUBLIC_OLLAMA_ENDPOINT_URL=
OLLAMA_MODEL=
# https://sdk.vercel.ai/providers/ai-sdk-providers/openai#model-capabilities
# https://ai-sdk.dev/providers/openai-compatible-providers
OPENAI_API_KEY=
OPENAI_MODEL=
# OPENAI_API_BASE=https://api.openai.com/v1
# OPENAI_COMPAT=compatible
# OPENAI_PROJECT=
# OPENAI_ORGANIZATION=
# Optional: Set a custom OpenAI base URL and name (for third-party providers)
CUSTOM_OPENAI_BASE_URL=
CUSTOM_OPENAI_NAME=
# https://sdk.vercel.ai/providers/ai-sdk-providers/azure
AZURE_API_KEY=
AZURE_RESOURCE_NAME=
AZURE_MODEL=
# https://sdk.vercel.ai/providers/ai-sdk-providers/anthropic#model-capabilities
# https://sdk.vercel.ai/providers/ai-sdk-providers/anthropic
ANTHROPIC_API_KEY=
ANTHROPIC_MODEL=

View File

@@ -6,7 +6,10 @@ import {
} from "./prompts";
import { prisma } from "@linkwarden/prisma";
import { generateObject, LanguageModelV1 } from "ai";
import { createOpenAI, OpenAIProviderSettings } from "@ai-sdk/openai";
import {
createOpenAICompatible,
OpenAICompatibleProviderSettings,
} from "@ai-sdk/openai-compatible";
import { azure } from "@ai-sdk/azure";
import { z } from "zod";
import { anthropic } from "@ai-sdk/anthropic";
@@ -20,19 +23,16 @@ const ensureValidURL = (base: string, path: string) =>
const getAIModel = (): LanguageModelV1 => {
if (process.env.OPENAI_API_KEY && process.env.OPENAI_MODEL) {
let config: OpenAIProviderSettings = {
compatibility: 'strict',
baseURL: process.env.OPENAI_API_BASE || "https://api.openai.com/v1",
name: process.env.OPENAI_NAME || "openai",
... process.env.OPENAI_PROJECT && {project: process.env.OPENAI_PROJECT},
... process.env.OPENAI_ORGANIZATION && {organization: process.env.OPENAI_ORGANIZATION},
let config: OpenAICompatibleProviderSettings = {
baseURL:
process.env.CUSTOM_OPENAI_BASE_URL || "https://api.openai.com/v1",
name: process.env.CUSTOM_OPENAI_NAME || "openai",
apiKey: process.env.OPENAI_API_KEY,
};
if (process.env.OPENAI_COMPAT == 'compatible')
config.compatibility = 'compatible';
let openai = createOpenAI(config);
return openai(process.env.OPENAI_MODEL);
const openaiCompatibleModel = createOpenAICompatible(config);
return openaiCompatibleModel(process.env.OPENAI_MODEL);
}
if (
process.env.AZURE_API_KEY &&

View File

@@ -11,7 +11,7 @@
"dependencies": {
"@ai-sdk/anthropic": "1.1.5",
"@ai-sdk/azure": "1.1.5",
"@ai-sdk/openai": "1.1.5",
"@ai-sdk/openai-compatible": "^0.2.13",
"@linkwarden/filesystem": "*",
"@linkwarden/lib": "*",
"@linkwarden/prisma": "*",

View File

@@ -29,6 +29,14 @@
"@ai-sdk/provider" "1.0.6"
"@ai-sdk/provider-utils" "2.1.5"
"@ai-sdk/openai-compatible@^0.2.13":
version "0.2.13"
resolved "https://registry.yarnpkg.com/@ai-sdk/openai-compatible/-/openai-compatible-0.2.13.tgz#ca214de7d08434e86d481fb34c6e7346a345af56"
integrity sha512-tB+lL8Z3j0qDod/mvxwjrPhbLUHp/aQW+NvMoJaqeTtP+Vmv5qR800pncGczxn5WN0pllQm+7aIRDnm69XeSbg==
dependencies:
"@ai-sdk/provider" "1.1.3"
"@ai-sdk/provider-utils" "2.2.7"
"@ai-sdk/openai@1.1.5":
version "1.1.5"
resolved "https://registry.yarnpkg.com/@ai-sdk/openai/-/openai-1.1.5.tgz#6d03802e8368b4be528fd51db32aa2e663724b13"