mirror of
https://github.com/linkwarden/linkwarden.git
synced 2026-03-03 02:27:00 +00:00
used the "@ai-sdk/openai-compatible" package instead
This commit is contained in:
12
.env.sample
12
.env.sample
@@ -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=
|
||||
|
||||
|
||||
@@ -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 &&
|
||||
|
||||
@@ -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": "*",
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user