Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
File size: 3,084 Bytes
f555806 ba7e878 f555806 ba7e878 f555806 ba7e878 f555806 ba7e878 f555806 ba7e878 f555806 ba7e878 f555806 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
import { PrismaClient } from '@prisma/client';
import { defaultDatasetsFolder, defaultDataRoot } from '@/paths';
import { defaultTrainFolder } from '@/paths';
import NodeCache from 'node-cache';
import { usingBrowserDb } from '@/utils/env';
const myCache = new NodeCache();
const isBrowserMode = usingBrowserDb || (process.env.DB_MODE || '').toLowerCase() === 'browser';
const prisma = !isBrowserMode ? new PrismaClient() : null;
const safeSettingLookup = async (key: string) => {
if (!prisma) {
return null;
}
try {
return await prisma.settings.findFirst({ where: { key } });
} catch (error) {
console.error(`Prisma settings lookup failed for key ${key}:`, error);
return null;
}
};
const envOrDefault = (envValue: string | undefined, fallback: string) => {
if (envValue && envValue.trim() !== '') {
return envValue.trim();
}
return fallback;
};
export const flushCache = () => {
myCache.flushAll();
};
export const getDatasetsRoot = async () => {
const key = 'DATASETS_FOLDER';
let datasetsPath = myCache.get(key) as string;
if (datasetsPath) {
return datasetsPath;
}
if (isBrowserMode) {
datasetsPath = envOrDefault(process.env.DATASETS_FOLDER, defaultDatasetsFolder);
} else {
const row = await safeSettingLookup('DATASETS_FOLDER');
datasetsPath = envOrDefault(process.env.DATASETS_FOLDER, defaultDatasetsFolder);
if (row?.value && row.value !== '') {
datasetsPath = row.value;
}
}
myCache.set(key, datasetsPath);
return datasetsPath as string;
};
export const getTrainingFolder = async () => {
const key = 'TRAINING_FOLDER';
let trainingRoot = myCache.get(key) as string;
if (trainingRoot) {
return trainingRoot;
}
if (isBrowserMode) {
trainingRoot = envOrDefault(process.env.TRAINING_FOLDER, defaultTrainFolder);
} else {
const row = await safeSettingLookup(key);
trainingRoot = envOrDefault(process.env.TRAINING_FOLDER, defaultTrainFolder);
if (row?.value && row.value !== '') {
trainingRoot = row.value;
}
}
myCache.set(key, trainingRoot);
return trainingRoot as string;
};
export const getHFToken = async () => {
const key = 'HF_TOKEN';
let token = myCache.get(key) as string;
if (token) {
return token;
}
if (isBrowserMode) {
token = envOrDefault(process.env.HF_TOKEN, '');
} else {
const row = await safeSettingLookup(key);
token = envOrDefault(process.env.HF_TOKEN, '');
if (row?.value && row.value !== '') {
token = row.value;
}
}
myCache.set(key, token);
return token;
};
export const getDataRoot = async () => {
const key = 'DATA_ROOT';
let dataRoot = myCache.get(key) as string;
if (dataRoot) {
return dataRoot;
}
if (isBrowserMode) {
dataRoot = envOrDefault(process.env.DATA_ROOT, defaultDataRoot);
} else {
const row = await safeSettingLookup(key);
dataRoot = envOrDefault(process.env.DATA_ROOT, defaultDataRoot);
if (row?.value && row.value !== '') {
dataRoot = row.value;
}
}
myCache.set(key, dataRoot);
return dataRoot;
};
|