From e914aeee32fc9ee205f3e3b981141c4a674159ef Mon Sep 17 00:00:00 2001 From: superobk Date: Wed, 20 Mar 2024 10:39:53 +0800 Subject: [PATCH] feat: sum --- src/blackbox/blackbox_factory.py | 3 +++ src/blackbox/sum.py | 23 +++++++++++++++++++++++ src/blackbox/tts.py | 1 + 3 files changed, 27 insertions(+) create mode 100644 src/blackbox/sum.py diff --git a/src/blackbox/blackbox_factory.py b/src/blackbox/blackbox_factory.py index 4262b47..e540701 100644 --- a/src/blackbox/blackbox_factory.py +++ b/src/blackbox/blackbox_factory.py @@ -1,3 +1,4 @@ +from .sum import SUM from .sentiment import Sentiment from .tts import TTS from ..asr.asr import ASR @@ -27,4 +28,6 @@ class BlackboxFactory: return self.tts if blackbox_name == "sentiment_engine": return self.sentiment + if blackbox_name == "sum": + return SUM() raise ValueError("Invalid blockbox type") \ No newline at end of file diff --git a/src/blackbox/sum.py b/src/blackbox/sum.py new file mode 100644 index 0000000..71fea56 --- /dev/null +++ b/src/blackbox/sum.py @@ -0,0 +1,23 @@ +from typing import Any, Coroutine + +from fastapi import Request, Response, status +from fastapi.responses import JSONResponse +from .blackbox import Blackbox + + +class SUM(Blackbox): + + def valid(self, data: any) -> bool: + return isinstance(data, list) + + def processing(self, data: list) -> Coroutine[Any, Any, Any]: + return sum(data) + + async def fast_api_handler(self, request: Request) -> Response: + try: + data = await request.json() + except: + return JSONResponse(content={"error": "json parse error"}, status_code=status.HTTP_400_BAD_REQUEST) + if not self.valid(data): + return JSONResponse(content={"error": "format error"}, status_code=status.HTTP_400_BAD_REQUEST) + return JSONResponse(content={"result": self.processing(data)}, status_code=status.HTTP_200_OK) \ No newline at end of file diff --git a/src/blackbox/tts.py b/src/blackbox/tts.py index 55bebab..9393e50 100644 --- a/src/blackbox/tts.py +++ b/src/blackbox/tts.py @@ -5,6 +5,7 @@ from fastapi import Request, Response, status from fastapi.responses import JSONResponse from .blackbox import Blackbox from tts.tts_service import TTService +import time class TTS(Blackbox):