From 92b85f6050e6720eb48808523036bee559223a60 Mon Sep 17 00:00:00 2001 From: Clement Bouvet Date: Tue, 3 Feb 2026 17:56:13 +0100 Subject: [PATCH 1/2] feat: add optional compression fields to completion requests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add support for compression configuration with optional fields that can be passed per request to override API key settings. - Add optional `enable_compression: bool | None` field to `InputObject` dataclass - Add optional `compression_rate: float | None` field to `InputObject` dataclass - Include compression fields in request body when provided via InputObject or dict input - Compression fields are omitted from request when not provided - Fields are gateway-internal and not sent to providers 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- edgee/__init__.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/edgee/__init__.py b/edgee/__init__.py index 65f5dc2..6fec3db 100644 --- a/edgee/__init__.py +++ b/edgee/__init__.py @@ -46,6 +46,8 @@ class InputObject: tools: list[dict] | None = None tool_choice: str | dict | None = None tags: list[str] | None = None + enable_compression: bool | None = None # Enable token compression (gateway-internal, not sent to providers) + compression_rate: float | None = None # Compression rate 0.0-1.0 (gateway-internal, not sent to providers) @dataclass @@ -190,16 +192,22 @@ def send( tools = None tool_choice = None tags = None + enable_compression = None + compression_rate = None elif isinstance(input, InputObject): messages = input.messages tools = input.tools tool_choice = input.tool_choice tags = input.tags + enable_compression = input.enable_compression + compression_rate = input.compression_rate else: messages = input.get("messages", []) tools = input.get("tools") tool_choice = input.get("tool_choice") tags = input.get("tags") + enable_compression = input.get("enable_compression") + compression_rate = input.get("compression_rate") body: dict = {"model": model, "messages": messages} if stream: @@ -210,6 +218,10 @@ def send( body["tool_choice"] = tool_choice if tags: body["tags"] = tags + if enable_compression is not None: + body["enable_compression"] = enable_compression + if compression_rate is not None: + body["compression_rate"] = compression_rate request = Request( f"{self.base_url}{API_ENDPOINT}", From 095cf17e1ea1254eebc5e51a38ab936979865198 Mon Sep 17 00:00:00 2001 From: Clement Bouvet Date: Tue, 3 Feb 2026 18:03:51 +0100 Subject: [PATCH 2/2] ruff --- edgee/__init__.py | 8 ++++++-- uv.lock | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/edgee/__init__.py b/edgee/__init__.py index 6fec3db..653a4df 100644 --- a/edgee/__init__.py +++ b/edgee/__init__.py @@ -46,8 +46,12 @@ class InputObject: tools: list[dict] | None = None tool_choice: str | dict | None = None tags: list[str] | None = None - enable_compression: bool | None = None # Enable token compression (gateway-internal, not sent to providers) - compression_rate: float | None = None # Compression rate 0.0-1.0 (gateway-internal, not sent to providers) + enable_compression: bool | None = ( + None # Enable token compression (gateway-internal, not sent to providers) + ) + compression_rate: float | None = ( + None # Compression rate 0.0-1.0 (gateway-internal, not sent to providers) + ) @dataclass diff --git a/uv.lock b/uv.lock index ccc443e..8842f95 100644 --- a/uv.lock +++ b/uv.lock @@ -13,7 +13,7 @@ wheels = [ [[package]] name = "edgee" -version = "0.1.1" +version = "1.0.0" source = { editable = "." } [package.optional-dependencies]