import path from "node:path"; import fs from "node:fs"; import { downloadFile } from "@huggingface/hub"; export async function downloadFileFromHuggingFaceRepository( hfRepo: string, hfRepoFile: string, localFilePath: string, ): Promise { if (fs.existsSync(localFilePath)) return; const downloadResponse = await downloadFile({ repo: hfRepo, path: hfRepoFile, }); if (!downloadResponse) { throw new Error(`Failed to download file from ${hfRepo}/${hfRepoFile}`); } const fileArrayBuffer = await downloadResponse.arrayBuffer(); const fileBuffer = Buffer.from(fileArrayBuffer); const fileDirectory = path.dirname(localFilePath); if (!fs.existsSync(fileDirectory)) { fs.mkdirSync(fileDirectory, { recursive: true }); } fs.writeFileSync(localFilePath, fileBuffer); }