diff --git a/examples/filters/rate_limit_filter_pipeline.py b/examples/filters/rate_limit_filter_pipeline.py index d1e88236..4f8a8872 100644 --- a/examples/filters/rate_limit_filter_pipeline.py +++ b/examples/filters/rate_limit_filter_pipeline.py @@ -1,5 +1,6 @@ import os from typing import List, Optional +from fastapi import HTTPException from pydantic import BaseModel from schemas import OpenAIChatMessage import time @@ -121,7 +122,10 @@ async def inlet(self, body: dict, user: Optional[dict] = None) -> dict: if user.get("role", "admin") == "user": user_id = user["id"] if user and "id" in user else "default_user" if self.rate_limited(user_id): - raise Exception("Rate limit exceeded. Please try again later.") + raise HTTPException( + status_code=429, + detail="Rate limit exceeded. Please try again later.", + ) self.log_request(user_id) return body diff --git a/main.py b/main.py index e277d3a3..6233fa30 100644 --- a/main.py +++ b/main.py @@ -616,6 +616,8 @@ async def filter_inlet(pipeline_id: str, form_data: FilterForm): return body else: return form_data.body + except HTTPException: + raise except Exception as e: print(e) raise HTTPException( @@ -648,6 +650,8 @@ async def filter_outlet(pipeline_id: str, form_data: FilterForm): return body else: return form_data.body + except HTTPException: + raise except Exception as e: print(e) raise HTTPException(