feat: implement rate limiting for LLM requests #765
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.
Description
This PR implements a comprehensive rate limiting system for LLM requests to prevent API rate limit errors and control costs, which addresses [Feature] Add rate limit slider #646)
🚀 Features Added
maxRequestsPerMinutesetting to control request frequencytestRateLimit()for debugging and verification which constinously send calls to LLMMessageService(The code was commented out)�� Technical Details
LLMMessageService📝 Files Changed
src/vs/workbench/contrib/void/common/rateLimiterService.ts(new)src/vs/workbench/contrib/void/browser/rateLimiter.contribution.ts(new)src/vs/workbench/contrib/void/common/sendLLMMessageService.ts(modified)src/vs/workbench/contrib/void/browser/autocompleteService.ts(modified)src/vs/workbench/contrib/void/browser/chatThreadService.ts(modified)src/vs/workbench/contrib/void/browser/editCodeService.ts(modified)src/vs/workbench/contrib/void/browser/react/src/void-settings-tsx/Settings.tsx(modified)src/vs/workbench/contrib/void/browser/voidSCMService.ts(modified)src/vs/workbench/contrib/void/browser/void.contribution.ts(modified)src/vs/workbench/contrib/void/common/voidSettingsTypes.ts(modified)�� Testing
⚙️ Configuration
Users can configure the rate limit via:
{ "void.globalSettings.maxRequestsPerMinute": 60 }🔍 Screenshots
Slider

Notifications
