-
Notifications
You must be signed in to change notification settings - Fork 10
feat: add compression fields to Rust SDK #412
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
KokaKiwi
approved these changes
Feb 3, 2026
SachaMorard
approved these changes
Feb 3, 2026
Member
|
@CLEMENTINATOR Do you want to add the |
SachaMorard
previously requested changes
Feb 3, 2026
Add optional enable_compression and compression_rate fields to support token compression configuration in the AI gateway. - Add enable_compression (bool) and compression_rate (f64) to InputObject - Add builder methods with_enable_compression() and with_compression_rate() - Include fields in both send() and stream() request bodies - Fields are gateway-internal and not serialized to providers 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Rename with_enable_compression to with_compression for better API consistency - Add Compression struct with input_tokens, saved_tokens, and rate fields - Add optional compression field to SendResponse for root-level compression data
- Add test for response with compression field deserialization - Add test for response without compression field - Add test for InputObject with_compression builder method
a156b5d to
1be772b
Compare
- Add example showing how to access compression data in responses - Add compression info to features list
- Add example showing how to enable compression using builder pattern - Demonstrate accessing compression metrics from response - Show usage information alongside compression data
- Add substantial AI history document as context (~3000+ chars) - Demonstrate meaningful compression on large input - Show percentage of tokens saved - Explain that compression works on input tokens
- Only USER messages are compressed, not system messages - Update example to put context in user message - Add clarifying comment about compression behavior
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
enable_compression: Option<bool>field toInputObjectcompression_rate: Option<f64>field toInputObjectwith_enable_compression()andwith_compression_rate()send()andstream()methods#[serde(default, skip_serializing)])Test plan
send()andstream()methods🤖 Generated with Claude Code