Skip to main content

Python SDK for Compresr - Intelligent prompt compression service

Project description

Compresr Python SDK

Intelligent context compression service to optimize LLM costs and performance.

Installation

pip install compresr

Quick Start

API Key Setup

Get your API key from compresr.ai and set it up:

import os
os.environ["COMPRESR_API_KEY"] = "cmp_your_api_key_here"

# Or pass directly to client
from compresr import CompressionClient
client = CompressionClient(api_key="cmp_your_api_key_here")

Compression Client

Get compressed context for use with your own LLM:

from compresr import CompressionClient

client = CompressionClient(api_key="cmp_your_api_key")

# Get compressed context
result = client.compress(
    context="Your very long context that needs compression...",
    compression_model_name="cmprsr_v1"
)

compressed_context = result.data.compressed_context
print(f"Original: {result.data.original_tokens} tokens")
print(f"Compressed: {result.data.compressed_tokens} tokens")
print(f"Compression ratio: {result.data.actual_compression_ratio:.2%}")
print(f"Tokens saved: {result.data.tokens_saved}")

# Use compressed context with your own LLM
# openai.chat.completions.create(messages=[{"role": "user", "content": compressed_context}])

Streaming Support

Compression client supports real-time streaming:

from compresr import CompressionClient

client = CompressionClient(api_key="cmp_your_api_key")

# Compression streaming  
for chunk in client.compress_stream(
    context="Your long context...",
    compression_model_name="cmprsr_v1"
):
    print(chunk.content, end="", flush=True)

Async Support

All methods have async variants:

import asyncio
from compresr import CompressionClient

async def main():
    client = CompressionClient(api_key="cmp_your_api_key")
    
    result = await client.compress_async(
        context="Your context...",
        compression_model_name="cmprsr_v1"
    )
    
    print(result.data.compressed_context)
    await client.close()

asyncio.run(main())

Batch Processing

Process multiple contexts efficiently:

from compresr import CompressionClient

client = CompressionClient(api_key="cmp_your_api_key")
results = client.compress_batch(
    contexts=[
        "First context to compress...",
        "Second context to compress..."
    ],
    compression_model_name="cmprsr_v1"
)

for result in results.data.results:
    print(f"Original tokens: {result.original_tokens}")
    print(f"Compressed: {result.compressed_context}")
    print(f"Tokens saved: {result.tokens_saved}")

Key Features

  • 🗜️ Intelligent Compression: Reduce context lengths while preserving meaning
  • 💰 Cost Optimization: Save 30-70% on LLM API costs through intelligent compression
  • ⚡ Compression Service: Focus on context compression for your own LLM integration
  • 🔄 Streaming Support: Real-time response streaming
  • 📊 Usage Tracking: Monitor credits, costs, and compression ratios
  • 🔗 Async Ready: Full async/await support
  • 📦 Batch Processing: Handle multiple requests efficiently

Available Models

Compression Models:

  • cmprsr_v1 - Compresr V1 (default compression model)

Error Handling

from compresr import CompressionClient
from compresr.exceptions import CompresrError, AuthenticationError, RateLimitError

client = CompressionClient(api_key="cmp_your_api_key")

try:
    result = client.compress(
        context="Your context...",
        compression_model_name="cmprsr_v1"
    )
except AuthenticationError:
    print("Invalid API key")
except RateLimitError:
    print("Rate limit exceeded")
except CompresrError as e:
    print(f"API error: {e}")

Authentication

The Compresr SDK uses API key authentication. You can get your API key from compresr.ai:

  1. Create an account at compresr.ai
  2. Navigate to your API Keys section
  3. Generate a new API key
  4. Use it with the SDK

Requirements

  • Python 3.9+
  • httpx >= 0.27.0
  • pydantic >= 2.10.0

License

Proprietary License

Support

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

compresr-1.0.16.tar.gz (13.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

compresr-1.0.16-py3-none-any.whl (12.1 kB view details)

Uploaded Python 3

File details

Details for the file compresr-1.0.16.tar.gz.

File metadata

  • Download URL: compresr-1.0.16.tar.gz
  • Upload date:
  • Size: 13.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.8

File hashes

Hashes for compresr-1.0.16.tar.gz
Algorithm Hash digest
SHA256 955686115c86db1b0dfc2fef985361d308127f4dc68b0745f9eda59964d423d7
MD5 46ba729b19ba21641a4344a3e6f24e47
BLAKE2b-256 690996212e81143a1f5b10cd9cb208d5f6a656a1d555867645b9ccf2e53c085c

See more details on using hashes here.

File details

Details for the file compresr-1.0.16-py3-none-any.whl.

File metadata

  • Download URL: compresr-1.0.16-py3-none-any.whl
  • Upload date:
  • Size: 12.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.8

File hashes

Hashes for compresr-1.0.16-py3-none-any.whl
Algorithm Hash digest
SHA256 f70e8d6d668edaf1ede18143472b0d8821f963e76b414934246a59cd13acc177
MD5 6b888b96bb46369adb9d1a2a2625b3bf
BLAKE2b-256 350991dc8dc8bc68f58a3e96bdbaaf80b0bbc86f4d98f01fd03d8474a5761ba4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page