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="agnostic_cmprsr"
)

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="agnostic_cmprsr"
):
    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="agnostic_cmprsr"
    )
    
    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="agnostic_cmprsr"
)

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:

  • agnostic_cmprsr - 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="agnostic_cmprsr"
    )
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.20.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.20-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: compresr-1.0.20.tar.gz
  • Upload date:
  • Size: 11.6 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.20.tar.gz
Algorithm Hash digest
SHA256 dd0964d8b6ad1e2cff18f3020a399844a63f89a29f6cd9e156dd87daa09cfecd
MD5 33a564b270127a17beeee8b9ac2a6598
BLAKE2b-256 db986d0fc27794d8fd84ec0876c851ddff6f1c216e7ef568b497715c3566a7c9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: compresr-1.0.20-py3-none-any.whl
  • Upload date:
  • Size: 12.4 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.20-py3-none-any.whl
Algorithm Hash digest
SHA256 9980c7485cf4e16b29aa1d69d6c8e670cddde7610065d07a07044c293fdd4d63
MD5 0174cf4fb6ca1300355cf75aa3e62f85
BLAKE2b-256 6c2f4ac85ebfdf23c6c60ea2a2854eaa88df58a244ef22d7c619132073090d1a

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