import "server-only"; import { getEnabledAiProviders } from "@/lib/db/queries"; import type { WorldLabsProviderConfig } from "./types"; const DEFAULT_WORLDLABS_BASE_URL = "https://api.worldlabs.ai"; function sanitizeWorldLabsApiKey(value: string): string { return String(value || "") .replace(/[\u2028\u2029]/g, "") .replace(/[\u0000-\u001F\u007F]/g, "") .replace(/\s+/g, "") .trim(); } function sanitizeWorldLabsBaseUrl(value: string): string { return String(value || "") .replace(/[\u2028\u2029]/g, "") .replace(/[\u0000-\u001F\u007F]/g, "") .trim(); } export async function getWorldLabsProviderConfig(): Promise { const providers = await getEnabledAiProviders(); const worldLabsProvider = providers.find((item) => item.type === "worldlabs-3d"); const providerApiKey = sanitizeWorldLabsApiKey(String(worldLabsProvider?.apiKey || "")); if (worldLabsProvider && providerApiKey) { return { apiKey: providerApiKey, baseUrl: sanitizeWorldLabsBaseUrl(String(worldLabsProvider?.baseUrl || "")) || DEFAULT_WORLDLABS_BASE_URL, providerId: worldLabsProvider.id, providerName: worldLabsProvider.name, }; } const envApiKey = sanitizeWorldLabsApiKey(String(process.env.WORLDLABS_API_KEY || "")); if (!envApiKey) { throw new Error("未配置 World Labs API,请在系统设置-本地AI新增 World Labs 提供商"); } return { apiKey: envApiKey, baseUrl: sanitizeWorldLabsBaseUrl(String(process.env.WORLDLABS_BASE_URL || "")) || DEFAULT_WORLDLABS_BASE_URL, }; }