Class for compression results with built-in metrics.
Copy
// CompressResponse properties:response.output // string: The compressed textresponse.outputTokens // number: Token count of compressed outputresponse.originalInputTokens // number: Token count of original inputresponse.compressionTime // number: Time taken to compress (seconds)// Computed properties:response.tokensSaved // number: Number of tokens savedresponse.compressionRatio // number: Ratio of original to compressed tokensresponse.compressionPercentage // number: Percentage reduction in tokens
Compress prompts before sending to OpenAI to reduce costs:
Copy
import { TokenClient } from "tokenc";import OpenAI from "openai";// Initialize clientsconst tc = new TokenClient({ apiKey: "your-ttc-api-key" });const openai = new OpenAI();// Your promptconst prompt = `Please explain the process of photosynthesis in detail,including the light-dependent and light-independent reactions,the role of chlorophyll, and how plants convert CO2 and waterinto glucose and oxygen. Thank you very much for your help!`;// Compress the promptconst compressed = await tc.compressInput({ input: prompt, aggressiveness: 0.6});console.log(`Compressed from ${compressed.originalInputTokens} to ${compressed.outputTokens} tokens`);console.log(`Compression: ${compressed.compressionPercentage.toFixed(1)}%`);// Use compressed prompt with OpenAIconst response = await openai.chat.completions.create({ model: "gpt-4o", messages: [{ role: "user", content: compressed.output }]});console.log(response.choices[0].message.content);