Merge branch 'feat/system-tenant-limiter' into deploy/dev

This commit is contained in:
Yeuoly 2025-03-19 15:42:04 +08:00
commit f52628bee6

View File

@ -14,6 +14,7 @@ from core.app.features.rate_limiting import RateLimit
from libs.helper import RateLimiter
from models.model import Account, App, AppMode, EndUser
from models.workflow import Workflow
from services.billing_service import BillingService
from services.errors.llm import InvokeRateLimitError
from services.workflow_service import WorkflowService
@ -40,14 +41,14 @@ class AppGenerateService:
:return:
"""
# system level rate limiter
if not dify_config.BILLING_ENABLED:
if dify_config.BILLING_ENABLED:
# check if it's free plan
limit_info = {"subscription": {"plan": "sandbox"}}
# limit_info = BillingService.get_info(app_model.tenant_id)
limit_info = BillingService.get_info(app_model.tenant_id)
if limit_info["subscription"]["plan"] == "sandbox":
if cls.system_rate_limiter.is_rate_limited(app_model.tenant_id):
raise InvokeRateLimitError(
f"Rate limit exceeded, please upgrade your plan, or your RPD was {dify_config.APP_DAILY_RATE_LIMIT} requests/day"
"Rate limit exceeded, please upgrade your plan"
f"or your RPD was {dify_config.APP_DAILY_RATE_LIMIT} requests/day"
)
cls.system_rate_limiter.increment_rate_limit(app_model.tenant_id)