|
import dotenv from "dotenv"; |
|
dotenv.config(); |
|
|
|
import { fetchAllProviderData, type ApiKeys } from "../src/lib/server/providers/index.js"; |
|
import fs from "fs/promises"; |
|
import path from "path"; |
|
|
|
const CACHE_FILE_PATH = path.resolve("src/lib/data/context_length.json"); |
|
|
|
async function runUpdate() { |
|
console.log("Starting context length cache update..."); |
|
|
|
|
|
const apiKeys: ApiKeys = { |
|
COHERE_API_KEY: process.env.COHERE_API_KEY, |
|
TOGETHER_API_KEY: process.env.TOGETHER_API_KEY, |
|
FIREWORKS_API_KEY: process.env.FIREWORKS_API_KEY, |
|
HYPERBOLIC_API_KEY: process.env.HYPERBOLIC_API_KEY, |
|
REPLICATE_API_KEY: process.env.REPLICATE_API_KEY, |
|
NEBIUS_API_KEY: process.env.NEBIUS_API_KEY, |
|
NOVITA_API_KEY: process.env.NOVITA_API_KEY, |
|
SAMBANOVA_API_KEY: process.env.SAMBANOVA_API_KEY, |
|
}; |
|
|
|
try { |
|
|
|
const fetchedData = await fetchAllProviderData(apiKeys); |
|
|
|
|
|
let existingData = {}; |
|
try { |
|
const currentCache = await fs.readFile(CACHE_FILE_PATH, "utf-8"); |
|
existingData = JSON.parse(currentCache); |
|
} catch { |
|
|
|
console.log("No existing cache file found or error reading, creating new one."); |
|
} |
|
|
|
|
|
const combinedData = { ...existingData, ...fetchedData }; |
|
|
|
|
|
const tempFilePath = CACHE_FILE_PATH + ".tmp"; |
|
await fs.writeFile(tempFilePath, JSON.stringify(combinedData, null, "\t"), "utf-8"); |
|
await fs.rename(tempFilePath, CACHE_FILE_PATH); |
|
|
|
console.log("Context length cache update complete."); |
|
console.log(`Cache file written to: ${CACHE_FILE_PATH}`); |
|
} catch (error) { |
|
console.error("Error during context length cache update:", error); |
|
process.exit(1); |
|
} |
|
} |
|
|
|
runUpdate(); |
|
|