Dataclass for compression results with built-in metrics.
Copy
# CompressResponse attributes:response.output # str: The compressed textresponse.output_tokens # int: Token count of compressed outputresponse.original_input_tokens # int: Token count of original inputresponse.compression_time # float: Time taken to compress (seconds)# Computed properties:response.tokens_saved # int: Number of tokens savedresponse.compression_ratio # float: Ratio of original to compressed tokensresponse.compression_percentage # float: Percentage reduction in tokens
Compress prompts before sending to OpenAI to reduce costs:
Copy
from tokenc import TokenClientfrom openai import OpenAI# Initialize clientstc = TokenClient(api_key="your-ttc-api-key")openai = OpenAI(api_key="your-openai-api-key")# Your promptprompt = """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 promptcompressed = tc.compress_input( input=prompt, aggressiveness=0.6)print(f"Compressed from {compressed.original_input_tokens} to {compressed.output_tokens} tokens")print(f"Compression: {compressed.compression_percentage:.1f}%")# Use compressed prompt with OpenAIresponse = openai.chat.completions.create( model="gpt-4o", messages=[{"role": "user", "content": compressed.output}])print(response.choices[0].message.content)