- Removed deprecated functions related to document parsing and blob storage in blobstore.ts. - Introduced new PDF rendering logic in pdf-preview-renderer.ts and pdf-preview-pdfjs-runtime.ts. - Updated previews-render.ts to utilize the new PDF rendering functions. - Refactored user-whisper-align-job.ts to use the compute-worker client for alignment requests. - Enhanced artifact.ts and operation.ts to validate parsed PDF artifacts and resolve current PDF parses. - Updated snapshot.ts to align with new worker operation types. - Adjusted runtime-config.ts to check for compute-worker availability. - Modified types in parsed-pdf.ts and tts.ts to reflect changes in the compute-worker protocol. - Added unit tests for PDF artifact validation and compute-worker client contract. - Removed obsolete pdf-op-key.vitest.spec.ts test file.
28 lines
972 B
TypeScript
28 lines
972 B
TypeScript
import os from 'node:os';
|
|
|
|
function readPositiveInt(name: string, fallback: number): number {
|
|
const raw = process.env[name]?.trim();
|
|
if (!raw) return fallback;
|
|
const parsed = Number(raw);
|
|
if (!Number.isFinite(parsed) || parsed <= 0) return fallback;
|
|
return Math.floor(parsed);
|
|
}
|
|
|
|
export function getComputeJobConcurrency(): number {
|
|
return readPositiveInt('COMPUTE_JOB_CONCURRENCY', 1);
|
|
}
|
|
|
|
export function getAvailableCpuCores(): number {
|
|
if (typeof os.availableParallelism === 'function') {
|
|
const value = os.availableParallelism();
|
|
if (Number.isFinite(value) && value >= 1) return Math.floor(value);
|
|
}
|
|
const fallback = os.cpus().length;
|
|
return Number.isFinite(fallback) && fallback >= 1 ? Math.floor(fallback) : 1;
|
|
}
|
|
|
|
export function getOnnxThreadsPerJob(): number {
|
|
const concurrency = getComputeJobConcurrency();
|
|
const usableCores = Math.max(1, getAvailableCpuCores() - 1);
|
|
return Math.max(1, Math.floor(usableCores / concurrency));
|
|
}
|