SDK & API Reference

Official SDK and REST API for Compresr.

View on GitHub

Installation

pip install compresr

Two Types of Compression

Choose the right compression type based on your use case:

Agnostic Compression

General-purpose compression without needing a specific question. Best for system prompts and static contexts.

Uses: CompressionClient

Question-Specific Compression

Compresses context based on a specific question. Best for RAG and Q&A systems.

Uses: QSCompressionClient

1. Agnostic Compression

from compresr import CompressionClient

client = CompressionClient(api_key="cmp_your_api_key")

result = client.compress(
    context="Your very long context that needs compression...",
    compression_model_name="A_CMPRSR_V1"  # or "A_CMPRSR_V1_FLASH" for speed
)

print(f"Original: {result.data.original_tokens} tokens")
print(f"Compressed: {result.data.compressed_tokens} tokens")
print(f"Saved: {result.data.tokens_saved} tokens")

2. Question-Specific Compression

from compresr import QSCompressionClient

client = QSCompressionClient(api_key="cmp_your_api_key")

result = client.compress(
    context="Python was created in 1991. JavaScript in 1995. Java in 1995.",
    question="Who created Python?",
    compression_model_name="QS_CMPRSR_V1"
)

print(f"Compressed: {result.data.compressed_context}")
print(f"Saved: {result.data.tokens_saved} tokens")

Streaming Support

from compresr import CompressionClient, QSCompressionClient

# Agnostic streaming
client = CompressionClient(api_key="cmp_your_api_key")
for chunk in client.compress_stream(
    context="Your long context...",
    compression_model_name="A_CMPRSR_V1"
):
    print(chunk.content, end="", flush=True)

# Question-specific streaming
qs_client = QSCompressionClient(api_key="cmp_your_api_key")
for chunk in qs_client.compress_stream(
    context="Your context...",
    question="What is important?",
    compression_model_name="QS_CMPRSR_V1"
):
    print(chunk.content, end="", flush=True)

Workflow Integration

Integrate Compresr into your existing LLM workflows. Works with any LLM provider.

Agnostic (System Prompts)

from compresr import CompressionClient

compresr = CompressionClient(api_key="cmp_xxx")

# Compress your system prompt or context
compressed = compresr.compress(
    context="Your long system prompt...",
    compression_model_name="A_CMPRSR_V1"
)

# Use with any LLM provider
messages = [
    {"role": "system", "content": compressed.data.compressed_context},
    {"role": "user", "content": "Your question..."}
]

# Pass to OpenAI, Anthropic, or any other LLM

Question-Specific (RAG/QA)

from compresr import QSCompressionClient

compresr = QSCompressionClient(api_key="cmp_xxx")

user_question = "What is machine learning?"

# Compress retrieved documents based on the question
compressed = compresr.compress(
    context="Retrieved documents from your vector DB...",
    question=user_question,
    compression_model_name="QS_CMPRSR_V1"
)

# Use with any LLM provider
messages = [
    {"role": "system", "content": compressed.data.compressed_context},
    {"role": "user", "content": user_question}
]

License

Proprietary License - see LICENSE for details.