Skip to content

Commit 92b85f6

Browse files
CLEMENTINATORclaude
andcommitted
feat: add optional compression fields to completion requests
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 <noreply@anthropic.com>
1 parent affa323 commit 92b85f6

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

edgee/__init__.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ class InputObject:
4646
tools: list[dict] | None = None
4747
tool_choice: str | dict | None = None
4848
tags: list[str] | None = None
49+
enable_compression: bool | None = None # Enable token compression (gateway-internal, not sent to providers)
50+
compression_rate: float | None = None # Compression rate 0.0-1.0 (gateway-internal, not sent to providers)
4951

5052

5153
@dataclass
@@ -190,16 +192,22 @@ def send(
190192
tools = None
191193
tool_choice = None
192194
tags = None
195+
enable_compression = None
196+
compression_rate = None
193197
elif isinstance(input, InputObject):
194198
messages = input.messages
195199
tools = input.tools
196200
tool_choice = input.tool_choice
197201
tags = input.tags
202+
enable_compression = input.enable_compression
203+
compression_rate = input.compression_rate
198204
else:
199205
messages = input.get("messages", [])
200206
tools = input.get("tools")
201207
tool_choice = input.get("tool_choice")
202208
tags = input.get("tags")
209+
enable_compression = input.get("enable_compression")
210+
compression_rate = input.get("compression_rate")
203211

204212
body: dict = {"model": model, "messages": messages}
205213
if stream:
@@ -210,6 +218,10 @@ def send(
210218
body["tool_choice"] = tool_choice
211219
if tags:
212220
body["tags"] = tags
221+
if enable_compression is not None:
222+
body["enable_compression"] = enable_compression
223+
if compression_rate is not None:
224+
body["compression_rate"] = compression_rate
213225

214226
request = Request(
215227
f"{self.base_url}{API_ENDPOINT}",

0 commit comments

Comments
 (0)