From 02fd89b1fe89af9bbf9b8e95399732b5abb30efc Mon Sep 17 00:00:00 2001 From: Justin Hayes Date: Fri, 31 May 2024 12:29:39 -0400 Subject: [PATCH 1/2] Add envvar init to rate limit --- examples/rate_limit_filter_pipeline.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/examples/rate_limit_filter_pipeline.py b/examples/rate_limit_filter_pipeline.py index cf98d47..9c3ea9b 100644 --- a/examples/rate_limit_filter_pipeline.py +++ b/examples/rate_limit_filter_pipeline.py @@ -33,13 +33,19 @@ class Pipeline: sliding_window_minutes: Optional[int] = None # Initialize rate limits + pipelines = os.getenv("RATE_LIMIT_PIPELINES", "*").split(",") + requests_per_minute = int(os.getenv("RATE_LIMIT_REQUESTS_PER_MINUTE", 10)) + requests_per_hour = int(os.getenv("RATE_LIMIT_REQUESTS_PER_HOUR", 1000)) + sliding_window_limit = int(os.getenv("RATE_LIMIT_SLIDING_WINDOW_LIMIT", 100)) + sliding_window_minutes = int(os.getenv("RATE_LIMIT_SLIDING_WINDOW_MINUTES", 15)) + self.valves = Valves( **{ - "pipelines": ["*"], # Connect to all pipelines - "requests_per_minute": 10, - "requests_per_hour": 1000, - "sliding_window_limit": 100, - "sliding_window_minutes": 15, + "pipelines": pipelines, + "requests_per_minute": requests_per_minute, + "requests_per_hour": requests_per_hour, + "sliding_window_limit": sliding_window_limit, + "sliding_window_minutes": sliding_window_minutes, } ) From 8c7af9258b2c3234a8f02efb2576b10c017afdb0 Mon Sep 17 00:00:00 2001 From: Justin Hayes Date: Fri, 31 May 2024 12:31:20 -0400 Subject: [PATCH 2/2] import os --- examples/rate_limit_filter_pipeline.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/rate_limit_filter_pipeline.py b/examples/rate_limit_filter_pipeline.py index 9c3ea9b..49ae733 100644 --- a/examples/rate_limit_filter_pipeline.py +++ b/examples/rate_limit_filter_pipeline.py @@ -1,9 +1,9 @@ +import os from typing import List, Optional from pydantic import BaseModel from schemas import OpenAIChatMessage import time - class Pipeline: def __init__(self): # Pipeline filters are only compatible with Open WebUI