From 0cd8380d28575bde7dec9db6cef0396f65f1399d Mon Sep 17 00:00:00 2001 From: Dan Chen Date: Tue, 30 Apr 2024 16:21:17 +0800 Subject: [PATCH 1/8] tmp --- router.py | 8 ++------ src/blackbox/asr.py | 8 ++++++-- src/configuration.py | 7 +++++++ src/log/log.py | 15 +++++++++++++++ 4 files changed, 30 insertions(+), 8 deletions(-) create mode 100644 src/log/log.py diff --git a/router.py b/router.py index fc8c3fd..18a729d 100644 --- a/router.py +++ b/router.py @@ -1,13 +1,9 @@ -from typing import Annotated, Union +from typing import Union -from fastapi import FastAPI, Request, status, Form +from fastapi import FastAPI, Request, status from fastapi.responses import JSONResponse -from src.dotchain.runtime.interpreter import program_parser -from src.dotchain.runtime.tokenizer import Tokenizer -from src.dotchain.runtime.runtime import Runtime from src.blackbox.blackbox_factory import BlackboxFactory -import uvicorn from fastapi.middleware.cors import CORSMiddleware from injector import Injector diff --git a/src/blackbox/asr.py b/src/blackbox/asr.py index 4f92659..9fc55dc 100644 --- a/src/blackbox/asr.py +++ b/src/blackbox/asr.py @@ -4,15 +4,19 @@ from typing import Any, Coroutine from fastapi import Request, Response, status from fastapi.responses import JSONResponse +from ..log.log import Logger + from ..asr.rapid_paraformer.utils import read_yaml from ..asr.rapid_paraformer import RapidParaformer from .blackbox import Blackbox -from injector import singleton +from injector import singleton, inject @singleton class ASR(Blackbox): - def __init__(self, path = ".env.yaml") -> None: + @inject + def __init__(self,logger: Logger,path = ".env.yaml") -> None: + logger.info("ASR init") config = read_yaml(path) self.paraformer = RapidParaformer(config) diff --git a/src/configuration.py b/src/configuration.py index 8c3e6fb..f14439f 100644 --- a/src/configuration.py +++ b/src/configuration.py @@ -45,3 +45,10 @@ class TesouConf(): @inject def __init__(self,config: Configuration) -> None: self.url = config.get("tesou.url") + +class LogConf(): + level: str + + @inject + def __init__(self,config: Configuration) -> None: + self.level = config.get("log.level") \ No newline at end of file diff --git a/src/log/log.py b/src/log/log.py new file mode 100644 index 0000000..2c7c0b1 --- /dev/null +++ b/src/log/log.py @@ -0,0 +1,15 @@ +import logging +from injector import singleton, inject + +from ..configuration import LogConf + +@singleton +class Logger(logging.Logger): + + @inject + def __init__(self, config: LogConf) -> None: + super().__init__(__name__) + self.setLevel(config.level) + self.addHandler(logging.StreamHandler()) + self.addHandler(logging.FileHandler('log.log')) + From d1e6eb2d2d33ef9b38655775a268f43def4ee5bf Mon Sep 17 00:00:00 2001 From: superobk Date: Tue, 30 Apr 2024 17:59:37 +0800 Subject: [PATCH 2/8] feat: log --- main.py | 25 +++++++++++++++- router.py => server.py | 2 +- src/blackbox/asr.py | 6 ++-- src/blackbox/audio_chat.py | 4 +++ src/blackbox/blackbox_factory.py | 2 +- src/configuration.py | 51 +++++++++++++++++++++++++------- src/log/handler.py | 13 ++++++++ src/log/log.py | 15 ---------- src/tts/tts_service.py | 1 - 9 files changed, 85 insertions(+), 34 deletions(-) rename router.py => server.py (93%) create mode 100644 src/log/handler.py delete mode 100644 src/log/log.py diff --git a/main.py b/main.py index 7480f82..06af313 100644 --- a/main.py +++ b/main.py @@ -1,4 +1,27 @@ import uvicorn +import logging +from injector import Injector,inject +from src.log.handler import LogHandler +from src.configuration import EnvConf, LogConf, singleton + +@singleton +class Main(): + env_conf: EnvConf + @inject + def __init__(self, log_config: LogConf, env_conf: EnvConf, log_handler: LogHandler) -> None: + self.env_conf=env_conf + logging.basicConfig( + handlers=[log_handler], + level=log_config.level, + datefmt=log_config.time_format, + format='%(asctime)s %(message)s') + + def run(self): + logger = logging.getLogger(__name__) + logger.info("jarvis-models start", "version", "0.0.1") + uvicorn.run("server:app", host="0.0.0.0", port=8000, log_level="info") if __name__ == "__main__": - uvicorn.run("router:app", host="0.0.0.0", port=8000, log_level="info") + injector = Injector() + main = injector.get(Main) + main.run() \ No newline at end of file diff --git a/router.py b/server.py similarity index 93% rename from router.py rename to server.py index 18a729d..d32b58d 100644 --- a/router.py +++ b/server.py @@ -25,7 +25,7 @@ async def blackbox(blackbox_name: Union[str, None] = None, request: Request = No if not blackbox_name: return await JSONResponse(content={"error": "blackbox_name is required"}, status_code=status.HTTP_400_BAD_REQUEST) try: - box = blackbox_factory.call_blackbox(blackbox_name) + box = blackbox_factory.get_blackbox(blackbox_name) except ValueError: return await JSONResponse(content={"error": "value error"}, status_code=status.HTTP_400_BAD_REQUEST) return await box.fast_api_handler(request) diff --git a/src/blackbox/asr.py b/src/blackbox/asr.py index 9fc55dc..5338ec2 100644 --- a/src/blackbox/asr.py +++ b/src/blackbox/asr.py @@ -4,8 +4,6 @@ from typing import Any, Coroutine from fastapi import Request, Response, status from fastapi.responses import JSONResponse -from ..log.log import Logger - from ..asr.rapid_paraformer.utils import read_yaml from ..asr.rapid_paraformer import RapidParaformer from .blackbox import Blackbox @@ -15,8 +13,7 @@ from injector import singleton, inject class ASR(Blackbox): @inject - def __init__(self,logger: Logger,path = ".env.yaml") -> None: - logger.info("ASR init") + def __init__(self,path = ".env.yaml") -> None: config = read_yaml(path) self.paraformer = RapidParaformer(config) @@ -38,6 +35,7 @@ class ASR(Blackbox): async def fast_api_handler(self, request: Request) -> Response: data = (await request.form()).get("audio") if data is None: + self.logger.warn("asr bag request","type", "fast_api_handler", "api", "asr") return JSONResponse(content={"error": "data is required"}, status_code=status.HTTP_400_BAD_REQUEST) d = await data.read() try: diff --git a/src/blackbox/audio_chat.py b/src/blackbox/audio_chat.py index cf5fb71..1108b44 100644 --- a/src/blackbox/audio_chat.py +++ b/src/blackbox/audio_chat.py @@ -1,3 +1,4 @@ +import logging from fastapi import Request, Response,status from fastapi.responses import JSONResponse from injector import inject, singleton @@ -8,11 +9,14 @@ from .tts import TTS from .blackbox import Blackbox +logger = logging.getLogger(__name__) + @singleton class AudioChat(Blackbox): @inject def __init__(self, asr: ASR, gpt: Tesou, tts: TTS): + logger.info("audio chat initint") self.asr = asr self.gpt = gpt self.tts = tts diff --git a/src/blackbox/blackbox_factory.py b/src/blackbox/blackbox_factory.py index 55ad618..1cb26ad 100644 --- a/src/blackbox/blackbox_factory.py +++ b/src/blackbox/blackbox_factory.py @@ -41,7 +41,7 @@ class BlackboxFactory: def __call__(self, *args, **kwargs): return self.processing(*args, **kwargs) - def call_blackbox(self, blackbox_name: str) -> Blackbox: + def get_blackbox(self, blackbox_name: str) -> Blackbox: model = self.models.get(blackbox_name) if model is None: raise ValueError("Invalid blockbox type") diff --git a/src/configuration.py b/src/configuration.py index f14439f..0965101 100644 --- a/src/configuration.py +++ b/src/configuration.py @@ -1,9 +1,10 @@ -from dataclasses import dataclass -from injector import Injector, inject +from injector import inject,singleton import yaml import sys +import logging +@singleton class Configuration(): @inject @@ -26,19 +27,20 @@ class Configuration(): bbb: ccc: "hello world" """ - def get(self, path: str | list[str], cfg: dict = None): + def get(self, path: str | list[str], cfg: dict = None, default = None): if isinstance(path, str): if cfg is None: cfg = self.cfg - return self.get(path.split("."), cfg) + return self.get(path.split("."), cfg, default=default) lenght = len(path) if lenght == 0 or not isinstance(cfg, dict): - return None + if default is None: + return None + return default if lenght == 1: return cfg.get(path[0]) - return self.get(path[1:], cfg.get(path[0])) - - + return self.get(path[1:], cfg.get(path[0]), default=default) + class TesouConf(): url: str @@ -46,9 +48,36 @@ class TesouConf(): def __init__(self,config: Configuration) -> None: self.url = config.get("tesou.url") +# 'CRITICAL': CRITICAL, +# 'FATAL': FATAL, +# 'ERROR': ERROR, +# 'WARN': WARNING, +# 'WARNING': WARNING, +# 'INFO': INFO, +# 'DEBUG': DEBUG, +# 'NOTSET': NOTSET, +DEFAULT_LEVEL="WARNING" +DEFAULT_TIME_FORMAT="%Y-%m-%d %H:%M:%S" + +@singleton class LogConf(): - level: str - + level: int + time_format = "%Y-%m-%d %H:%M:%S" + @inject def __init__(self,config: Configuration) -> None: - self.level = config.get("log.level") \ No newline at end of file + c = config.get("log.level", default=DEFAULT_LEVEL).upper() + level=logging._nameToLevel.get(c) + if level is None: + self.level = logging.WARNING + else: + self.level = level + self.time_format=config.get("log.time_format", default=DEFAULT_TIME_FORMAT) + +@singleton +class EnvConf(): + version: str + + @inject + def __init__(self, config: Configuration) -> None: + self.version = config.get("env.version") \ No newline at end of file diff --git a/src/log/handler.py b/src/log/handler.py new file mode 100644 index 0000000..cd9a154 --- /dev/null +++ b/src/log/handler.py @@ -0,0 +1,13 @@ +import logging + +class LogHandler(logging.Handler): + + def __init__(self)-> None: + logging.Handler.__init__(self=self) + + def emit(self, record) -> None: + print("emit", record) + + def handle(self, record) -> None: + print("@ handle",record) + \ No newline at end of file diff --git a/src/log/log.py b/src/log/log.py deleted file mode 100644 index 2c7c0b1..0000000 --- a/src/log/log.py +++ /dev/null @@ -1,15 +0,0 @@ -import logging -from injector import singleton, inject - -from ..configuration import LogConf - -@singleton -class Logger(logging.Logger): - - @inject - def __init__(self, config: LogConf) -> None: - super().__init__(__name__) - self.setLevel(config.level) - self.addHandler(logging.StreamHandler()) - self.addHandler(logging.FileHandler('log.log')) - diff --git a/src/tts/tts_service.py b/src/tts/tts_service.py index e140ff4..e1d1b1b 100644 --- a/src/tts/tts_service.py +++ b/src/tts/tts_service.py @@ -16,7 +16,6 @@ from src.tts.vits.text.symbols import symbols from src.tts.vits.text import text_to_sequence import logging -logging.getLogger().setLevel(logging.INFO) logging.basicConfig(level=logging.INFO) dirbaspath = __file__.split("\\")[1:-1] From 25155c8051fef780959725744e69f6215485a96b Mon Sep 17 00:00:00 2001 From: superobk Date: Thu, 2 May 2024 09:34:49 +0800 Subject: [PATCH 3/8] feat: requirements.txt --- requirements.txt | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 requirements.txt diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..1efc43a --- /dev/null +++ b/requirements.txt @@ -0,0 +1,7 @@ +filetype==1.2.0 +fastapi==0.110.3 +python-multipart==0.0.9 +uvicorn==0.29.0 +SpeechRecognition==3.10.3 +PyYAML==6.0.1 +injector==0.21.0 From f8e51135cbe9eaf6c2a33db23d9ca45f4f345667 Mon Sep 17 00:00:00 2001 From: Dan Chen Date: Tue, 30 Apr 2024 16:21:17 +0800 Subject: [PATCH 4/8] tmp --- router.py | 8 ++------ src/blackbox/asr.py | 8 ++++++-- src/configuration.py | 7 +++++++ src/log/log.py | 15 +++++++++++++++ 4 files changed, 30 insertions(+), 8 deletions(-) create mode 100644 src/log/log.py diff --git a/router.py b/router.py index fc8c3fd..18a729d 100644 --- a/router.py +++ b/router.py @@ -1,13 +1,9 @@ -from typing import Annotated, Union +from typing import Union -from fastapi import FastAPI, Request, status, Form +from fastapi import FastAPI, Request, status from fastapi.responses import JSONResponse -from src.dotchain.runtime.interpreter import program_parser -from src.dotchain.runtime.tokenizer import Tokenizer -from src.dotchain.runtime.runtime import Runtime from src.blackbox.blackbox_factory import BlackboxFactory -import uvicorn from fastapi.middleware.cors import CORSMiddleware from injector import Injector diff --git a/src/blackbox/asr.py b/src/blackbox/asr.py index 4f92659..9fc55dc 100644 --- a/src/blackbox/asr.py +++ b/src/blackbox/asr.py @@ -4,15 +4,19 @@ from typing import Any, Coroutine from fastapi import Request, Response, status from fastapi.responses import JSONResponse +from ..log.log import Logger + from ..asr.rapid_paraformer.utils import read_yaml from ..asr.rapid_paraformer import RapidParaformer from .blackbox import Blackbox -from injector import singleton +from injector import singleton, inject @singleton class ASR(Blackbox): - def __init__(self, path = ".env.yaml") -> None: + @inject + def __init__(self,logger: Logger,path = ".env.yaml") -> None: + logger.info("ASR init") config = read_yaml(path) self.paraformer = RapidParaformer(config) diff --git a/src/configuration.py b/src/configuration.py index 38086e6..ab3f31b 100644 --- a/src/configuration.py +++ b/src/configuration.py @@ -53,3 +53,10 @@ class MeloConf(): @inject def __init__(self, config: Configuration) -> None: self.melotts = config.get("melotts.url") + +class LogConf(): + level: str + + @inject + def __init__(self,config: Configuration) -> None: + self.level = config.get("log.level") diff --git a/src/log/log.py b/src/log/log.py new file mode 100644 index 0000000..2c7c0b1 --- /dev/null +++ b/src/log/log.py @@ -0,0 +1,15 @@ +import logging +from injector import singleton, inject + +from ..configuration import LogConf + +@singleton +class Logger(logging.Logger): + + @inject + def __init__(self, config: LogConf) -> None: + super().__init__(__name__) + self.setLevel(config.level) + self.addHandler(logging.StreamHandler()) + self.addHandler(logging.FileHandler('log.log')) + From 981bdc881051bc494e802c6c17d49dcad644145a Mon Sep 17 00:00:00 2001 From: superobk Date: Tue, 30 Apr 2024 17:59:37 +0800 Subject: [PATCH 5/8] feat: log --- main.py | 25 +++++++++++++++++- router.py => server.py | 2 +- src/blackbox/asr.py | 6 ++--- src/blackbox/audio_chat.py | 4 +++ src/blackbox/blackbox_factory.py | 2 +- src/configuration.py | 44 ++++++++++++++++++++++++++------ src/log/handler.py | 13 ++++++++++ src/log/log.py | 15 ----------- src/tts/tts_service.py | 1 - 9 files changed, 81 insertions(+), 31 deletions(-) rename router.py => server.py (93%) create mode 100644 src/log/handler.py delete mode 100644 src/log/log.py diff --git a/main.py b/main.py index 7480f82..06af313 100644 --- a/main.py +++ b/main.py @@ -1,4 +1,27 @@ import uvicorn +import logging +from injector import Injector,inject +from src.log.handler import LogHandler +from src.configuration import EnvConf, LogConf, singleton + +@singleton +class Main(): + env_conf: EnvConf + @inject + def __init__(self, log_config: LogConf, env_conf: EnvConf, log_handler: LogHandler) -> None: + self.env_conf=env_conf + logging.basicConfig( + handlers=[log_handler], + level=log_config.level, + datefmt=log_config.time_format, + format='%(asctime)s %(message)s') + + def run(self): + logger = logging.getLogger(__name__) + logger.info("jarvis-models start", "version", "0.0.1") + uvicorn.run("server:app", host="0.0.0.0", port=8000, log_level="info") if __name__ == "__main__": - uvicorn.run("router:app", host="0.0.0.0", port=8000, log_level="info") + injector = Injector() + main = injector.get(Main) + main.run() \ No newline at end of file diff --git a/router.py b/server.py similarity index 93% rename from router.py rename to server.py index 18a729d..d32b58d 100644 --- a/router.py +++ b/server.py @@ -25,7 +25,7 @@ async def blackbox(blackbox_name: Union[str, None] = None, request: Request = No if not blackbox_name: return await JSONResponse(content={"error": "blackbox_name is required"}, status_code=status.HTTP_400_BAD_REQUEST) try: - box = blackbox_factory.call_blackbox(blackbox_name) + box = blackbox_factory.get_blackbox(blackbox_name) except ValueError: return await JSONResponse(content={"error": "value error"}, status_code=status.HTTP_400_BAD_REQUEST) return await box.fast_api_handler(request) diff --git a/src/blackbox/asr.py b/src/blackbox/asr.py index 9fc55dc..5338ec2 100644 --- a/src/blackbox/asr.py +++ b/src/blackbox/asr.py @@ -4,8 +4,6 @@ from typing import Any, Coroutine from fastapi import Request, Response, status from fastapi.responses import JSONResponse -from ..log.log import Logger - from ..asr.rapid_paraformer.utils import read_yaml from ..asr.rapid_paraformer import RapidParaformer from .blackbox import Blackbox @@ -15,8 +13,7 @@ from injector import singleton, inject class ASR(Blackbox): @inject - def __init__(self,logger: Logger,path = ".env.yaml") -> None: - logger.info("ASR init") + def __init__(self,path = ".env.yaml") -> None: config = read_yaml(path) self.paraformer = RapidParaformer(config) @@ -38,6 +35,7 @@ class ASR(Blackbox): async def fast_api_handler(self, request: Request) -> Response: data = (await request.form()).get("audio") if data is None: + self.logger.warn("asr bag request","type", "fast_api_handler", "api", "asr") return JSONResponse(content={"error": "data is required"}, status_code=status.HTTP_400_BAD_REQUEST) d = await data.read() try: diff --git a/src/blackbox/audio_chat.py b/src/blackbox/audio_chat.py index cf5fb71..1108b44 100644 --- a/src/blackbox/audio_chat.py +++ b/src/blackbox/audio_chat.py @@ -1,3 +1,4 @@ +import logging from fastapi import Request, Response,status from fastapi.responses import JSONResponse from injector import inject, singleton @@ -8,11 +9,14 @@ from .tts import TTS from .blackbox import Blackbox +logger = logging.getLogger(__name__) + @singleton class AudioChat(Blackbox): @inject def __init__(self, asr: ASR, gpt: Tesou, tts: TTS): + logger.info("audio chat initint") self.asr = asr self.gpt = gpt self.tts = tts diff --git a/src/blackbox/blackbox_factory.py b/src/blackbox/blackbox_factory.py index 97109b9..af29e45 100644 --- a/src/blackbox/blackbox_factory.py +++ b/src/blackbox/blackbox_factory.py @@ -59,7 +59,7 @@ class BlackboxFactory: def __call__(self, *args, **kwargs): return self.processing(*args, **kwargs) - def call_blackbox(self, blackbox_name: str) -> Blackbox: + def get_blackbox(self, blackbox_name: str) -> Blackbox: model = self.models.get(blackbox_name) if model is None: raise ValueError("Invalid Blackbox Type...") diff --git a/src/configuration.py b/src/configuration.py index ab3f31b..81d425f 100644 --- a/src/configuration.py +++ b/src/configuration.py @@ -1,9 +1,10 @@ -from dataclasses import dataclass -from injector import Injector, inject +from injector import inject,singleton import yaml import sys +import logging +@singleton class Configuration(): @inject @@ -26,7 +27,7 @@ class Configuration(): bbb: ccc: "hello world" """ - def get(self, path: str | list[str], cfg: dict = None): + def get(self, path: str | list[str], cfg: dict = None, default = None): if isinstance(path, str): if cfg is None: cfg = self.cfg @@ -36,9 +37,8 @@ class Configuration(): return None if length == 1: return cfg.get(path[0]) - return self.get(path[1:], cfg.get(path[0])) - - + return self.get(path[1:], cfg.get(path[0]), default=default) + class TesouConf(): url: str @@ -54,9 +54,37 @@ class MeloConf(): def __init__(self, config: Configuration) -> None: self.melotts = config.get("melotts.url") +# 'CRITICAL': CRITICAL, +# 'FATAL': FATAL, +# 'ERROR': ERROR, +# 'WARN': WARNING, +# 'WARNING': WARNING, +# 'INFO': INFO, +# 'DEBUG': DEBUG, +# 'NOTSET': NOTSET, +DEFAULT_LEVEL="WARNING" +DEFAULT_TIME_FORMAT="%Y-%m-%d %H:%M:%S" + +@singleton class LogConf(): - level: str - + level: int + time_format = "%Y-%m-%d %H:%M:%S" + @inject def __init__(self,config: Configuration) -> None: self.level = config.get("log.level") + c = config.get("log.level", default=DEFAULT_LEVEL).upper() + level=logging._nameToLevel.get(c) + if level is None: + self.level = logging.WARNING + else: + self.level = level + self.time_format=config.get("log.time_format", default=DEFAULT_TIME_FORMAT) + +@singleton +class EnvConf(): + version: str + + @inject + def __init__(self, config: Configuration) -> None: + self.version = config.get("env.version") diff --git a/src/log/handler.py b/src/log/handler.py new file mode 100644 index 0000000..cd9a154 --- /dev/null +++ b/src/log/handler.py @@ -0,0 +1,13 @@ +import logging + +class LogHandler(logging.Handler): + + def __init__(self)-> None: + logging.Handler.__init__(self=self) + + def emit(self, record) -> None: + print("emit", record) + + def handle(self, record) -> None: + print("@ handle",record) + \ No newline at end of file diff --git a/src/log/log.py b/src/log/log.py deleted file mode 100644 index 2c7c0b1..0000000 --- a/src/log/log.py +++ /dev/null @@ -1,15 +0,0 @@ -import logging -from injector import singleton, inject - -from ..configuration import LogConf - -@singleton -class Logger(logging.Logger): - - @inject - def __init__(self, config: LogConf) -> None: - super().__init__(__name__) - self.setLevel(config.level) - self.addHandler(logging.StreamHandler()) - self.addHandler(logging.FileHandler('log.log')) - diff --git a/src/tts/tts_service.py b/src/tts/tts_service.py index e140ff4..e1d1b1b 100644 --- a/src/tts/tts_service.py +++ b/src/tts/tts_service.py @@ -16,7 +16,6 @@ from src.tts.vits.text.symbols import symbols from src.tts.vits.text import text_to_sequence import logging -logging.getLogger().setLevel(logging.INFO) logging.basicConfig(level=logging.INFO) dirbaspath = __file__.split("\\")[1:-1] From 5c7a8b4088024667d330a3ef82033ab1efbfd147 Mon Sep 17 00:00:00 2001 From: superobk Date: Thu, 2 May 2024 09:34:49 +0800 Subject: [PATCH 6/8] feat: requirements.txt --- requirements.txt | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 requirements.txt diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..1efc43a --- /dev/null +++ b/requirements.txt @@ -0,0 +1,7 @@ +filetype==1.2.0 +fastapi==0.110.3 +python-multipart==0.0.9 +uvicorn==0.29.0 +SpeechRecognition==3.10.3 +PyYAML==6.0.1 +injector==0.21.0 From 0ca946836c05bd59ec967fd23a6acd21b6d7ada1 Mon Sep 17 00:00:00 2001 From: superobk Date: Thu, 16 May 2024 16:02:13 +0800 Subject: [PATCH 7/8] wip: temp --- main.py | 5 +++-- src/blackbox/blackbox_factory.py | 14 ++++++-------- src/blackbox/g2e.py | 7 ++++--- src/log/handler.py | 6 +++--- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/main.py b/main.py index 06af313..83ace40 100644 --- a/main.py +++ b/main.py @@ -7,18 +7,19 @@ from src.configuration import EnvConf, LogConf, singleton @singleton class Main(): env_conf: EnvConf + @inject def __init__(self, log_config: LogConf, env_conf: EnvConf, log_handler: LogHandler) -> None: self.env_conf=env_conf logging.basicConfig( - handlers=[log_handler], + handlers=[logging.StreamHandler()], level=log_config.level, datefmt=log_config.time_format, format='%(asctime)s %(message)s') def run(self): logger = logging.getLogger(__name__) - logger.info("jarvis-models start", "version", "0.0.1") + logger.info("jarvis-models start", extra={"version": "0.0.1"}) uvicorn.run("server:app", host="0.0.0.0", port=8000, log_level="info") if __name__ == "__main__": diff --git a/src/blackbox/blackbox_factory.py b/src/blackbox/blackbox_factory.py index af29e45..a4b0b52 100644 --- a/src/blackbox/blackbox_factory.py +++ b/src/blackbox/blackbox_factory.py @@ -34,10 +34,9 @@ class BlackboxFactory: audio_chat: AudioChat, g2e: G2E, text_and_image: TextAndImage, - chroma_query: ChromaQuery, - chroma_upsert: ChromaUpsert, - chroma_chat: ChromaChat, - melotts: MeloTTS, + #chroma_query: ChromaQuery, + #chroma_upsert: ChromaUpsert, + #chroma_chat: ChromaChat, vlms: VLMS) -> None: self.models["audio_to_text"] = audio_to_text self.models["text_to_audio"] = text_to_audio @@ -50,10 +49,9 @@ class BlackboxFactory: self.models["audio_chat"] = audio_chat self.models["g2e"] = g2e self.models["text_and_image"] = text_and_image - self.models["chroma_query"] = chroma_query - self.models["chroma_upsert"] = chroma_upsert - self.models["chroma_chat"] = chroma_chat - self.models["melotts"] = melotts + #self.models["chroma_query"] = chroma_query + #self.models["chroma_upsert"] = chroma_upsert + #self.models["chroma_chat"] = chroma_chat self.models["vlms"] = vlms def __call__(self, *args, **kwargs): diff --git a/src/blackbox/g2e.py b/src/blackbox/g2e.py index 8bd5507..4a6640a 100755 --- a/src/blackbox/g2e.py +++ b/src/blackbox/g2e.py @@ -22,8 +22,8 @@ class G2E(Blackbox): def processing(self, model_name, prompt, template, context: list) -> str: if context == None: context = [] - url = 'http://120.196.116.194:48890/v1' - #url = 'http://120.196.116.194:48892/v1' + #url = 'http://120.196.116.194:48890/v1' + url = 'http://120.196.116.194:48892/v1' background_prompt = '''KOMBUKIKI是一款茶饮料,目标受众 年龄:20-35岁 性别:女性 地点:一线城市、二线城市 职业:精英中产、都市白领 收入水平:中高收入,有一定消费能力 兴趣和爱好:注重健康,有运动习惯 @@ -65,7 +65,8 @@ class G2E(Blackbox): api_key='YOUR_API_KEY', base_url=url ) - model_name = client.models.list().data[0].id + #model_name = client.models.list().data[0].id + model_name = client.models.list().data[1].id print(model_name) response = client.chat.completions.create( model=model_name, diff --git a/src/log/handler.py b/src/log/handler.py index cd9a154..21b7c0d 100644 --- a/src/log/handler.py +++ b/src/log/handler.py @@ -1,13 +1,13 @@ import logging -class LogHandler(logging.Handler): +class LogHandler(logging.StreamHandler): def __init__(self)-> None: logging.Handler.__init__(self=self) - + def emit(self, record) -> None: print("emit", record) - + def handle(self, record) -> None: print("@ handle",record) \ No newline at end of file From 9d9047d590b18e0c5e6e7cd5ff85ccbcbb3e7963 Mon Sep 17 00:00:00 2001 From: superobk Date: Thu, 16 May 2024 16:30:33 +0800 Subject: [PATCH 8/8] confi.get --- main.py | 7 +------ src/configuration.py | 13 +++---------- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/main.py b/main.py index 06af313..e6b0faa 100644 --- a/main.py +++ b/main.py @@ -8,13 +8,8 @@ from src.configuration import EnvConf, LogConf, singleton class Main(): env_conf: EnvConf @inject - def __init__(self, log_config: LogConf, env_conf: EnvConf, log_handler: LogHandler) -> None: + def __init__(self, log_config: LogConf, env_conf: EnvConf) -> None: self.env_conf=env_conf - logging.basicConfig( - handlers=[log_handler], - level=log_config.level, - datefmt=log_config.time_format, - format='%(asctime)s %(message)s') def run(self): logger = logging.getLogger(__name__) diff --git a/src/configuration.py b/src/configuration.py index 30ae637..8156c5c 100644 --- a/src/configuration.py +++ b/src/configuration.py @@ -27,24 +27,17 @@ class Configuration(): bbb: ccc: "hello world" """ - def get(self, path: str | list[str], cfg: dict = None, default = None): + def get(self, path: str | list[str], cfg: dict = None, default=None): if isinstance(path, str): if cfg is None: cfg = self.cfg return self.get(path.split("."), cfg) length = len(path) if length == 0 or not isinstance(cfg, dict): - return None - if length == 1: - return self.get(path.split("."), cfg, default=default) - lenght = len(path) - if lenght == 0 or not isinstance(cfg, dict): - if default is None: - return None return default - if lenght == 1: + if length == 1: return cfg.get(path[0]) - return self.get(path[1:], cfg.get(path[0]), default=default) + return self.get(path[1:], cfg.get(path[0])) class TesouConf(): url: str