Skip to content

Commit 6e94322

Browse files
feat: add per-request compression override fields (#12)
1 parent a49a457 commit 6e94322

2 files changed

Lines changed: 18 additions & 16 deletions

File tree

edgee/__init__.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,11 @@ class InputObject:
5959
tools: list[dict] | None = None
6060
tool_choice: str | dict | None = None
6161
tags: list[str] | None = None
62-
enable_compression: bool | None = (
63-
None # Enable token compression (gateway-internal, not sent to providers)
62+
compression_model: str | None = (
63+
None # Compression model: agentic, claude, opencode, cursor, customer (gateway-internal)
6464
)
65-
compression_rate: float | None = (
66-
None # Compression rate 0.0-1.0 (gateway-internal, not sent to providers)
65+
compression_configuration: dict | None = (
66+
None # Configuration for compression model: {"rate": 0.7, "semantic_preservation_threshold": 60}
6767
)
6868

6969

@@ -218,22 +218,22 @@ def send(
218218
tools = None
219219
tool_choice = None
220220
tags = None
221-
enable_compression = None
222-
compression_rate = None
221+
compression_model = None
222+
compression_configuration = None
223223
elif isinstance(input, InputObject):
224224
messages = input.messages
225225
tools = input.tools
226226
tool_choice = input.tool_choice
227227
tags = input.tags
228-
enable_compression = input.enable_compression
229-
compression_rate = input.compression_rate
228+
compression_model = input.compression_model
229+
compression_configuration = input.compression_configuration
230230
else:
231231
messages = input.get("messages", [])
232232
tools = input.get("tools")
233233
tool_choice = input.get("tool_choice")
234234
tags = input.get("tags")
235-
enable_compression = input.get("enable_compression")
236-
compression_rate = input.get("compression_rate")
235+
compression_model = input.get("compression_model")
236+
compression_configuration = input.get("compression_configuration")
237237

238238
body: dict = {"model": model, "messages": messages}
239239
if stream:
@@ -244,10 +244,10 @@ def send(
244244
body["tool_choice"] = tool_choice
245245
if tags:
246246
body["tags"] = tags
247-
if enable_compression is not None:
248-
body["enable_compression"] = enable_compression
249-
if compression_rate is not None:
250-
body["compression_rate"] = compression_rate
247+
if compression_model is not None:
248+
body["compression_model"] = compression_model
249+
if compression_configuration is not None:
250+
body["compression_configuration"] = compression_configuration
251251

252252
request = Request(
253253
f"{self.base_url}{API_ENDPOINT}",

example/compression.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,10 @@
9292
"messages": [
9393
{"role": "user", "content": user_message},
9494
],
95-
"enable_compression": True,
96-
"compression_rate": 0.5,
95+
"compression_model": "agentic",
96+
"compression_configuration": {
97+
"rate": 0.5,
98+
},
9799
},
98100
)
99101

0 commit comments

Comments
 (0)