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.18.tar.gz (11.6 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.18-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for compresr-1.0.18.tar.gz
Algorithm Hash digest
SHA256 087f2a0423cf430e816eed19fdffc94f8cd82813cc631c073327d2b6134a46fb
MD5 757c130c82994d3a905c255a7e136c4c
BLAKE2b-256 0c7668420718f298b3be8e2a9c061f5ac35e6a995ad8b6d2228b5a17289ada4a

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for compresr-1.0.18-py3-none-any.whl
Algorithm Hash digest
SHA256 473484b419cd0b4fe2fb88ad7ff1e42e8c68037d5728d852e28d97e6105e4053
MD5 1b4743a81a6ea57f076554f8acf74c00
BLAKE2b-256 6df31f797c58b3f44596a2233fb2402c47e764dc40f6535dcf2d1fd1ffd52888

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