Add more log lines when encountering rate limiting

This commit is contained in:
sabaimran
2024-10-07 14:36:12 -07:00
parent e4a8a69bc8
commit 3d0e183bea
3 changed files with 16 additions and 1 deletions

View File

@@ -27,6 +27,7 @@ from khoj.database.models import (
Subscription, Subscription,
TextToImageModelConfig, TextToImageModelConfig,
UserConversationConfig, UserConversationConfig,
UserRequests,
UserSearchModelConfig, UserSearchModelConfig,
UserVoiceModelConfig, UserVoiceModelConfig,
VoiceModelOption, VoiceModelOption,
@@ -103,6 +104,7 @@ admin.site.register(NotionConfig)
admin.site.register(UserVoiceModelConfig) admin.site.register(UserVoiceModelConfig)
admin.site.register(VoiceModelOption) admin.site.register(VoiceModelOption)
admin.site.register(UserConversationConfig) admin.site.register(UserConversationConfig)
admin.site.register(UserRequests)
@admin.register(Agent) @admin.register(Agent)

View File

@@ -66,7 +66,7 @@ from khoj.utils.rawconfig import FileFilterRequest, FilesFilterRequest, Location
# Initialize Router # Initialize Router
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
conversation_command_rate_limiter = ConversationCommandRateLimiter( conversation_command_rate_limiter = ConversationCommandRateLimiter(
trial_rate_limit=100, subscribed_rate_limit=100, slug="command" trial_rate_limit=100, subscribed_rate_limit=6000, slug="command"
) )

View File

@@ -1029,13 +1029,23 @@ class ApiUserRateLimiter:
# Check if the user has exceeded the rate limit # Check if the user has exceeded the rate limit
if subscribed and count_requests >= self.subscribed_requests: if subscribed and count_requests >= self.subscribed_requests:
logger.info(
f"Rate limit: {count_requests} requests in {self.window} seconds for user: {user}. Limit is {self.subscribed_requests} requests."
)
raise HTTPException(status_code=429, detail="Slow down! Too Many Requests") raise HTTPException(status_code=429, detail="Slow down! Too Many Requests")
if not subscribed and count_requests >= self.requests: if not subscribed and count_requests >= self.requests:
if self.requests >= self.subscribed_requests: if self.requests >= self.subscribed_requests:
logger.info(
f"Rate limit: {count_requests} requests in {self.window} seconds for user: {user}. Limit is {self.subscribed_requests} requests."
)
raise HTTPException( raise HTTPException(
status_code=429, status_code=429,
detail="Slow down! Too Many Requests", detail="Slow down! Too Many Requests",
) )
logger.info(
f"Rate limit: {count_requests} requests in {self.window} seconds for user: {user}. Limit is {self.subscribed_requests} requests."
)
raise HTTPException( raise HTTPException(
status_code=429, status_code=429,
detail="We're glad you're enjoying Khoj! You've exceeded your usage limit for today. Come back tomorrow or subscribe to increase your usage limit via [your settings](https://app.khoj.dev/settings).", detail="We're glad you're enjoying Khoj! You've exceeded your usage limit for today. Come back tomorrow or subscribe to increase your usage limit via [your settings](https://app.khoj.dev/settings).",
@@ -1073,6 +1083,9 @@ class ConversationCommandRateLimiter:
).acount() ).acount()
if subscribed and count_requests >= self.subscribed_rate_limit: if subscribed and count_requests >= self.subscribed_rate_limit:
logger.info(
f"Rate limit: {count_requests} requests in 24 hours for user: {user}. Limit is {self.subscribed_rate_limit} requests."
)
raise HTTPException(status_code=429, detail="Slow down! Too Many Requests") raise HTTPException(status_code=429, detail="Slow down! Too Many Requests")
if not subscribed and count_requests >= self.trial_rate_limit: if not subscribed and count_requests >= self.trial_rate_limit:
raise HTTPException( raise HTTPException(