import Database from "better-sqlite3"; import { v4 as uuidv4 } from "uuid"; import { config } from "../src/config"; function generateRandomIP() { return ( Math.floor(Math.random() * 255) + "." + Math.floor(Math.random() * 255) + "." + Math.floor(Math.random() * 255) + "." + Math.floor(Math.random() * 255) ); } function generateRandomDate() { const end = new Date(); const start = new Date(end); start.setDate(end.getDate() - 90); const randomDate = new Date( start.getTime() + Math.random() * (end.getTime() - start.getTime()) ); return randomDate.toISOString(); } function generateMockSHA256() { const characters = 'abcdef0123456789'; let hash = ''; for (let i = 0; i < 64; i++) { const randomIndex = Math.floor(Math.random() * characters.length); hash += characters[randomIndex]; } return hash; } function getRandomModelFamily() { const modelFamilies = [ "turbo", "gpt4", "gpt4-32k", "gpt4-turbo", "claude", "claude-opus", "gemini-pro", "mistral-tiny", "mistral-small", "mistral-medium", "mistral-large", "aws-claude", "aws-claude-opus", "azure-turbo", "azure-gpt4", "azure-gpt4-32k", "azure-gpt4-turbo", "dall-e", "azure-dall-e", ]; return modelFamilies[Math.floor(Math.random() * modelFamilies.length)]; } (async () => { const db = new Database(config.sqliteDataPath); const numRows = 100; const insertStatement = db.prepare(` INSERT INTO events (type, ip, date, model, family, hashes, userToken, inputTokens, outputTokens) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) `); const users = Array.from({ length: 10 }, () => uuidv4()); function getRandomUser() { return users[Math.floor(Math.random() * users.length)]; } const transaction = db.transaction(() => { for (let i = 0; i < numRows; i++) { insertStatement.run( "chat_completion", generateRandomIP(), generateRandomDate(), getRandomModelFamily() + "-" + Math.floor(Math.random() * 100), getRandomModelFamily(), Array.from( { length: Math.floor(Math.random() * 10) }, generateMockSHA256 ).join(","), getRandomUser(), Math.floor(Math.random() * 500), Math.floor(Math.random() * 6000) ); } }); transaction(); console.log(`Inserted ${numRows} rows into the events table.`); db.close(); })();