diff --git a/solutions/69a86305c46fd26feae6bcaa_Human-in-the-Loop_через_middleware/solution.py b/solutions/69a86305c46fd26feae6bcaa_Human-in-the-Loop_через_middleware/solution.py deleted file mode 100644 index e4b7a7b..0000000 --- a/solutions/69a86305c46fd26feae6bcaa_Human-in-the-Loop_через_middleware/solution.py +++ /dev/null @@ -1,55 +0,0 @@ -# Human-in-the-Loop Middleware -# -# В этом примере реализован простой middleware, который позволяет -# вставлять человека в цикл обработки запросов. Он может быть использован -# в веб‑приложениях, чат‑ботах и других системах, где требуется -# ручная проверка или подтверждение. - -from typing import Callable, Any, Dict - -class HumanInTheLoopMiddleware: - """ - Middleware, который вызывает функцию‑обработчик для - каждого запроса. Если обработчик возвращает ``False`` - (или ``None``), запрос считается отклонённым и - передаётся в ручную обработку. - """ - - def __init__(self, handler: Callable[[Dict[str, Any]], bool]): - self.handler = handler - - def __call__(self, request: Dict[str, Any]) -> Dict[str, Any]: - # Предварительная проверка - approved = self.handler(request) - if not approved: - # Запрос отправляется в ручную обработку - # В реальном проекте здесь может быть вызов внешнего сервиса - # или отправка письма/сообщения в чат. - return { - "status": "pending", - "reason": "human review required", - "original": request, - } - # Если проверка пройдена – продолжаем обработку - return { - "status": "approved", - "original": request, - } - -# Пример простого обработчика, который проверяет наличие ключа "approve" -# в запросе. Если ключ отсутствует – запрос отклоняется. - -def simple_handler(request: Dict[str, Any]) -> bool: - return request.get("approve", False) - -# Пример использования -if __name__ == "__main__": - middleware = HumanInTheLoopMiddleware(simple_handler) - - # Запрос, который будет отклонён - req1 = {"id": 1, "data": "test"} - print(middleware(req1)) - - # Запрос, который будет одобрен - req2 = {"id": 2, "data": "test", "approve": True} - print(middleware(req2))