From 0d082327c85594ade74c0a68983bc2d8b6269ca4 Mon Sep 17 00:00:00 2001 From: binary-husky Date: Wed, 11 Sep 2024 08:49:55 +0000 Subject: [PATCH] logging -> loguru: stage 3 --- crazy_functions/Markdown_Translate.py | 9 +++++---- crazy_functions/crazy_utils.py | 3 +-- crazy_functions/json_fns/pydantic_io.py | 4 ++-- crazy_functions/live_audio/aliyunASR.py | 3 ++- request_llms/bridge_chatgpt.py | 3 --- request_llms/bridge_chatgpt_vision.py | 8 +++----- request_llms/bridge_chatgpt_website.py | 2 +- request_llms/bridge_claude.py | 3 ++- request_llms/bridge_cohere.py | 4 +--- request_llms/bridge_internlm.py | 4 ++-- request_llms/bridge_moonshot.py | 1 - request_llms/bridge_ollama.py | 2 +- request_llms/bridge_stackclaude.py | 11 ++++++----- request_llms/bridge_tgui.py | 1 - request_llms/com_qwenapi.py | 1 - request_llms/com_skylark2api.py | 6 +++--- request_llms/com_taichu.py | 2 +- request_llms/oai_std_model_template.py | 2 +- shared_utils/advanced_markdown_format.py | 12 +++++++----- shared_utils/config_loader.py | 4 ++-- shared_utils/handle_upload.py | 13 +++++++------ shared_utils/logging.py | 5 +---- themes/contrast.py | 3 ++- themes/default.py | 3 ++- themes/gradios.py | 11 ++++++----- themes/green.py | 3 ++- toolbox.py | 17 +++++++++++++---- 27 files changed, 73 insertions(+), 67 deletions(-) diff --git a/crazy_functions/Markdown_Translate.py b/crazy_functions/Markdown_Translate.py index 59f26fee..fd8c486f 100644 --- a/crazy_functions/Markdown_Translate.py +++ b/crazy_functions/Markdown_Translate.py @@ -1,4 +1,5 @@ -import glob, shutil, os, re, logging +import glob, shutil, os, re +from loguru import logger from toolbox import update_ui, trimmed_format_exc, gen_time_str from toolbox import CatchException, report_exception, get_log_folder from toolbox import write_history_to_file, promote_file_to_downloadzone @@ -34,7 +35,7 @@ class PaperFileGroup(): self.sp_file_contents.append(segment) self.sp_file_index.append(index) self.sp_file_tag.append(self.file_paths[index] + f".part-{j}.md") - logging.info('Segmentation: done') + logger.info('Segmentation: done') def merge_result(self): self.file_result = ["" for _ in range(len(self.file_paths))] @@ -106,7 +107,7 @@ def 多文件翻译(file_manifest, project_folder, llm_kwargs, plugin_kwargs, ch expected_f_name = plugin_kwargs['markdown_expected_output_path'] shutil.copyfile(output_file, expected_f_name) except: - logging.error(trimmed_format_exc()) + logger.error(trimmed_format_exc()) # <-------- 整理结果,退出 ----------> create_report_file_name = gen_time_str() + f"-chatgpt.md" @@ -126,7 +127,7 @@ def get_files_from_everything(txt, preference=''): proxies = get_conf('proxies') # 网络的远程文件 if preference == 'Github': - logging.info('正在从github下载资源 ...') + logger.info('正在从github下载资源 ...') if not txt.endswith('.md'): # Make a request to the GitHub API to retrieve the repository information url = txt.replace("https://github.com/", "https://api.github.com/repos/") + '/readme' diff --git a/crazy_functions/crazy_utils.py b/crazy_functions/crazy_utils.py index 110debc1..5751956f 100644 --- a/crazy_functions/crazy_utils.py +++ b/crazy_functions/crazy_utils.py @@ -1,5 +1,4 @@ import os -import logging import threading from loguru import logger from shared_utils.char_visual_effect import scolling_visual_effect @@ -596,7 +595,7 @@ class nougat_interface(): def nougat_with_timeout(self, command, cwd, timeout=3600): import subprocess from toolbox import ProxyNetworkActivate - logging.info(f'正在执行命令 {command}') + logger.info(f'正在执行命令 {command}') with ProxyNetworkActivate("Nougat_Download"): process = subprocess.Popen(command, shell=False, cwd=cwd, env=os.environ) try: diff --git a/crazy_functions/json_fns/pydantic_io.py b/crazy_functions/json_fns/pydantic_io.py index d7093359..bd78cefe 100644 --- a/crazy_functions/json_fns/pydantic_io.py +++ b/crazy_functions/json_fns/pydantic_io.py @@ -24,8 +24,8 @@ class Actor(BaseModel): film_names: List[str] = Field(description="list of names of films they starred in") """ -import json, re, logging - +import json, re +from loguru import logger as logging PYDANTIC_FORMAT_INSTRUCTIONS = """The output should be formatted as a JSON instance that conforms to the JSON schema below. diff --git a/crazy_functions/live_audio/aliyunASR.py b/crazy_functions/live_audio/aliyunASR.py index 3a523287..45481e26 100644 --- a/crazy_functions/live_audio/aliyunASR.py +++ b/crazy_functions/live_audio/aliyunASR.py @@ -1,5 +1,6 @@ -import time, logging, json, sys, struct +import time, json, sys, struct import numpy as np +from loguru import logger as logging from scipy.io.wavfile import WAVE_FORMAT def write_numpy_to_wave(filename, rate, data, add_header=False): diff --git a/request_llms/bridge_chatgpt.py b/request_llms/bridge_chatgpt.py index a30b5c6c..47e1e66c 100644 --- a/request_llms/bridge_chatgpt.py +++ b/request_llms/bridge_chatgpt.py @@ -12,7 +12,6 @@ import json import os import re import time -import logging import traceback import requests import random @@ -317,7 +316,6 @@ def predict(inputs:str, llm_kwargs:dict, plugin_kwargs:dict, chatbot:ChatBotWith # 前者是API2D的结束条件,后者是OPENAI的结束条件 if ('data: [DONE]' in chunk_decoded) or (len(chunkjson['choices'][0]["delta"]) == 0): # 判定为数据流的结束,gpt_replying_buffer也写完了 - # logging.info(f'[response] {gpt_replying_buffer}') log_chat(llm_model=llm_kwargs["llm_model"], input_str=inputs, output_str=gpt_replying_buffer) break # 处理数据流的主体 @@ -486,7 +484,6 @@ def generate_payload(inputs:str, llm_kwargs:dict, history:list, system_prompt:st "gpt-3.5-turbo-16k-0613", "gpt-3.5-turbo-0301", ]) - logging.info("Random select model:" + model) payload = { "model": model, diff --git a/request_llms/bridge_chatgpt_vision.py b/request_llms/bridge_chatgpt_vision.py index 449a8cf5..50b67437 100644 --- a/request_llms/bridge_chatgpt_vision.py +++ b/request_llms/bridge_chatgpt_vision.py @@ -8,15 +8,14 @@ 2. predict_no_ui_long_connection:支持多线程 """ +import os import json import time -import logging import requests import base64 -import os import glob from toolbox import get_conf, update_ui, is_any_api_key, select_api_key, what_keys, clip_history, trimmed_format_exc, is_the_upload_folder, \ - update_ui_lastest_msg, get_max_token, encode_image, have_any_recent_upload_image_files + update_ui_lastest_msg, get_max_token, encode_image, have_any_recent_upload_image_files, log_chat proxies, TIMEOUT_SECONDS, MAX_RETRY, API_ORG, AZURE_CFG_ARRAY = \ @@ -100,7 +99,6 @@ def predict(inputs, llm_kwargs, plugin_kwargs, chatbot, history=[], system_promp inputs, history = handle_core_functionality(additional_fn, inputs, history, chatbot) raw_input = inputs - logging.info(f'[raw_input] {raw_input}') def make_media_input(inputs, image_paths): for image_path in image_paths: inputs = inputs + f'

' @@ -185,7 +183,7 @@ def predict(inputs, llm_kwargs, plugin_kwargs, chatbot, history=[], system_promp # 判定为数据流的结束,gpt_replying_buffer也写完了 lastmsg = chatbot[-1][-1] + f"\n\n\n\n「{llm_kwargs['llm_model']}调用结束,该模型不具备上下文对话能力,如需追问,请及时切换模型。」" yield from update_ui_lastest_msg(lastmsg, chatbot, history, delay=1) - logging.info(f'[response] {gpt_replying_buffer}') + log_chat(llm_model=llm_kwargs["llm_model"], input_str=inputs, output_str=gpt_replying_buffer) break # 处理数据流的主体 status_text = f"finish_reason: {chunkjson['choices'][0].get('finish_reason', 'null')}" diff --git a/request_llms/bridge_chatgpt_website.py b/request_llms/bridge_chatgpt_website.py index 94e1ebb3..a15e98b0 100644 --- a/request_llms/bridge_chatgpt_website.py +++ b/request_llms/bridge_chatgpt_website.py @@ -13,10 +13,10 @@ import json import time import gradio as gr -import logging import traceback import requests import importlib +from loguru import logger as logging # config_private.py放自己的秘密如API和代理网址 # 读取时首先看是否存在私密的config_private配置文件(不受git管控),如果有,则覆盖原config文件 diff --git a/request_llms/bridge_claude.py b/request_llms/bridge_claude.py index 2c27fe30..59e07e8b 100644 --- a/request_llms/bridge_claude.py +++ b/request_llms/bridge_claude.py @@ -9,13 +9,14 @@ 具备多线程调用能力的函数 2. predict_no_ui_long_connection:支持多线程 """ -import logging import os import time import traceback import json import requests +from loguru import logger as logging from toolbox import get_conf, update_ui, trimmed_format_exc, encode_image, every_image_file_in_path, log_chat + picture_system_prompt = "\n当回复图像时,必须说明正在回复哪张图像。所有图像仅在最后一个问题中提供,即使它们在历史记录中被提及。请使用'这是第X张图像:'的格式来指明您正在描述的是哪张图像。" Claude_3_Models = ["claude-3-haiku-20240307", "claude-3-sonnet-20240229", "claude-3-opus-20240229", "claude-3-5-sonnet-20240620"] diff --git a/request_llms/bridge_cohere.py b/request_llms/bridge_cohere.py index 5ce5846c..abbb52d7 100644 --- a/request_llms/bridge_cohere.py +++ b/request_llms/bridge_cohere.py @@ -13,11 +13,9 @@ import json import time import gradio as gr -import logging import traceback import requests -import importlib -import random +from loguru import logger as logging # config_private.py放自己的秘密如API和代理网址 # 读取时首先看是否存在私密的config_private配置文件(不受git管控),如果有,则覆盖原config文件 diff --git a/request_llms/bridge_internlm.py b/request_llms/bridge_internlm.py index fb4437a1..4cd12235 100644 --- a/request_llms/bridge_internlm.py +++ b/request_llms/bridge_internlm.py @@ -65,10 +65,10 @@ class GetInternlmHandle(LocalLLMHandle): def llm_stream_generator(self, **kwargs): import torch - import logging import copy import warnings import torch.nn as nn + from loguru import logger as logging from transformers.generation.utils import LogitsProcessorList, StoppingCriteriaList, GenerationConfig # 🏃‍♂️🏃‍♂️🏃‍♂️ 子进程执行 @@ -119,7 +119,7 @@ class GetInternlmHandle(LocalLLMHandle): elif generation_config.max_new_tokens is not None: generation_config.max_length = generation_config.max_new_tokens + input_ids_seq_length if not has_default_max_length: - logging.warn( + logging.warning( f"Both `max_new_tokens` (={generation_config.max_new_tokens}) and `max_length`(=" f"{generation_config.max_length}) seem to have been set. `max_new_tokens` will take precedence. " "Please refer to the documentation for more information. " diff --git a/request_llms/bridge_moonshot.py b/request_llms/bridge_moonshot.py index 1f73bd50..e1b3cd48 100644 --- a/request_llms/bridge_moonshot.py +++ b/request_llms/bridge_moonshot.py @@ -5,7 +5,6 @@ import json import os import time -import logging from toolbox import get_conf, update_ui, log_chat from toolbox import ChatBotWithCookies diff --git a/request_llms/bridge_ollama.py b/request_llms/bridge_ollama.py index 96f30503..1114a9f0 100644 --- a/request_llms/bridge_ollama.py +++ b/request_llms/bridge_ollama.py @@ -13,11 +13,11 @@ import json import time import gradio as gr -import logging import traceback import requests import importlib import random +from loguru import logger as logging # config_private.py放自己的秘密如API和代理网址 # 读取时首先看是否存在私密的config_private配置文件(不受git管控),如果有,则覆盖原config文件 diff --git a/request_llms/bridge_stackclaude.py b/request_llms/bridge_stackclaude.py index 21590b8a..deed4676 100644 --- a/request_llms/bridge_stackclaude.py +++ b/request_llms/bridge_stackclaude.py @@ -1,12 +1,13 @@ +import time +import asyncio +import threading +import importlib + from .bridge_newbingfree import preprocess_newbing_out, preprocess_newbing_out_simple from multiprocessing import Process, Pipe from toolbox import update_ui, get_conf, trimmed_format_exc -import threading -import importlib -import logging -import time +from loguru import logger as logging from toolbox import get_conf -import asyncio load_message = "正在加载Claude组件,请稍候..." diff --git a/request_llms/bridge_tgui.py b/request_llms/bridge_tgui.py index 8a16f1bf..4be498a3 100644 --- a/request_llms/bridge_tgui.py +++ b/request_llms/bridge_tgui.py @@ -8,7 +8,6 @@ import json import random import string import websockets -import logging import time import threading import importlib diff --git a/request_llms/com_qwenapi.py b/request_llms/com_qwenapi.py index a3adad0b..8e037781 100644 --- a/request_llms/com_qwenapi.py +++ b/request_llms/com_qwenapi.py @@ -1,7 +1,6 @@ from http import HTTPStatus from toolbox import get_conf import threading -import logging timeout_bot_msg = '[Local Message] Request timeout. Network error.' diff --git a/request_llms/com_skylark2api.py b/request_llms/com_skylark2api.py index 38875c21..715c01a1 100644 --- a/request_llms/com_skylark2api.py +++ b/request_llms/com_skylark2api.py @@ -1,7 +1,7 @@ -from toolbox import get_conf -import threading -import logging import os +import threading +from toolbox import get_conf +from loguru import logger as logging timeout_bot_msg = '[Local Message] Request timeout. Network error.' #os.environ['VOLC_ACCESSKEY'] = '' diff --git a/request_llms/com_taichu.py b/request_llms/com_taichu.py index f8eb3981..22f8f5eb 100644 --- a/request_llms/com_taichu.py +++ b/request_llms/com_taichu.py @@ -4,7 +4,7 @@ # @Descr : 兼容最新的智谱Ai from toolbox import get_conf from toolbox import get_conf, encode_image, get_pictures_list -import logging, os, requests +import requests import json class TaichuChatInit: def __init__(self): ... diff --git a/request_llms/oai_std_model_template.py b/request_llms/oai_std_model_template.py index 2f8480c4..0aed2f9a 100644 --- a/request_llms/oai_std_model_template.py +++ b/request_llms/oai_std_model_template.py @@ -1,8 +1,8 @@ import json import time -import logging import traceback import requests +from loguru import logger as logging # config_private.py放自己的秘密如API和代理网址 # 读取时首先看是否存在私密的config_private配置文件(不受git管控),如果有,则覆盖原config文件 diff --git a/shared_utils/advanced_markdown_format.py b/shared_utils/advanced_markdown_format.py index 6a42fb65..883c3ffb 100644 --- a/shared_utils/advanced_markdown_format.py +++ b/shared_utils/advanced_markdown_format.py @@ -2,6 +2,8 @@ import markdown import re import os import math + +from loguru import logger from textwrap import dedent from functools import lru_cache from pymdownx.superfences import fence_code_format @@ -227,14 +229,14 @@ def fix_dollar_sticking_bug(txt): if single_stack_height > 0: if txt[:(index+1)].find('\n') > 0 or txt[:(index+1)].find('') > 0 or txt[:(index+1)].find('') > 0: - print('公式之中出现了异常 (Unexpect element in equation)') + logger.error('公式之中出现了异常 (Unexpect element in equation)') single_stack_height = 0 txt_result += ' $' continue if double_stack_height > 0: if txt[:(index+1)].find('\n\n') > 0: - print('公式之中出现了异常 (Unexpect element in equation)') + logger.error('公式之中出现了异常 (Unexpect element in equation)') double_stack_height = 0 txt_result += '$$' continue @@ -253,13 +255,13 @@ def fix_dollar_sticking_bug(txt): txt = txt[(index+2):] else: if double_stack_height != 0: - # print(txt[:(index)]) - print('发现异常嵌套公式') + # logger.info(txt[:(index)]) + logger.info('发现异常嵌套公式') if single_stack_height == 0: single_stack_height = 1 else: single_stack_height = 0 - # print(txt[:(index)]) + # logger.info(txt[:(index)]) txt_result += txt[:(index+1)] txt = txt[(index+1):] break diff --git a/shared_utils/config_loader.py b/shared_utils/config_loader.py index 8909b6eb..5a973a92 100644 --- a/shared_utils/config_loader.py +++ b/shared_utils/config_loader.py @@ -30,13 +30,13 @@ def read_env_variable(arg, default_value): env_arg = os.environ[arg] else: raise KeyError - print(f"[ENV_VAR] 尝试加载{arg},默认值:{default_value} --> 修正值:{env_arg}") + log亮绿(f"[ENV_VAR] 尝试加载{arg},默认值:{default_value} --> 修正值:{env_arg}") try: if isinstance(default_value, bool): env_arg = env_arg.strip() if env_arg == 'True': r = True elif env_arg == 'False': r = False - else: print('Enter True or False, but have:', env_arg); r = default_value + else: log亮红('Expect `True` or `False`, but have:', env_arg); r = default_value elif isinstance(default_value, int): r = int(env_arg) elif isinstance(default_value, float): diff --git a/shared_utils/handle_upload.py b/shared_utils/handle_upload.py index 6ecc0cdd..4e926b60 100644 --- a/shared_utils/handle_upload.py +++ b/shared_utils/handle_upload.py @@ -8,6 +8,7 @@ import gradio import shutil import glob from shared_utils.config_loader import get_conf +from loguru import logger def html_local_file(file): base_path = os.path.dirname(__file__) # 项目目录 @@ -100,7 +101,7 @@ def extract_archive(file_path, dest_dir): with zipfile.ZipFile(file_path, "r") as zipobj: zipobj._extract_member = lambda a,b,c: zip_extract_member_new(zipobj, a,b,c) # 修复中文乱码的问题 zipobj.extractall(path=dest_dir) - print("Successfully extracted zip archive to {}".format(dest_dir)) + logger.info("Successfully extracted zip archive to {}".format(dest_dir)) elif file_extension in [".tar", ".gz", ".bz2"]: with tarfile.open(file_path, "r:*") as tarobj: @@ -113,7 +114,7 @@ def extract_archive(file_path, dest_dir): raise Exception(f"Attempted Path Traversal in {member.name}") tarobj.extractall(path=dest_dir) - print("Successfully extracted tar archive to {}".format(dest_dir)) + logger.info("Successfully extracted tar archive to {}".format(dest_dir)) # 第三方库,需要预先pip install rarfile # 此外,Windows上还需要安装winrar软件,配置其Path环境变量,如"C:\Program Files\WinRAR"才可以 @@ -123,9 +124,9 @@ def extract_archive(file_path, dest_dir): with rarfile.RarFile(file_path) as rf: rf.extractall(path=dest_dir) - print("Successfully extracted rar archive to {}".format(dest_dir)) + logger.info("Successfully extracted rar archive to {}".format(dest_dir)) except: - print("Rar format requires additional dependencies to install") + logger.info("Rar format requires additional dependencies to install") return "\n\n解压失败! 需要安装pip install rarfile来解压rar文件。建议:使用zip压缩格式。" # 第三方库,需要预先pip install py7zr @@ -135,9 +136,9 @@ def extract_archive(file_path, dest_dir): with py7zr.SevenZipFile(file_path, mode="r") as f: f.extractall(path=dest_dir) - print("Successfully extracted 7z archive to {}".format(dest_dir)) + logger.info("Successfully extracted 7z archive to {}".format(dest_dir)) except: - print("7z format requires additional dependencies to install") + logger.info("7z format requires additional dependencies to install") return "\n\n解压失败! 需要安装pip install py7zr来解压7z文件" else: return "" diff --git a/shared_utils/logging.py b/shared_utils/logging.py index e21c0dee..d8a4bd69 100644 --- a/shared_utils/logging.py +++ b/shared_utils/logging.py @@ -59,11 +59,8 @@ def setup_logging(PATH_LOGGING): logger.warning(f"所有对话记录将自动保存在本地目录{sensitive_log_path}, 请注意自我隐私保护哦!") - logger.bind(chat_msg=True).info("This message is logged to the file!") - - - +# logger.bind(chat_msg=True).info("This message is logged to the file!") # logger.debug(f"debug message") # logger.info(f"info message") # logger.success(f"success message") diff --git a/themes/contrast.py b/themes/contrast.py index 1e988377..faa87f84 100644 --- a/themes/contrast.py +++ b/themes/contrast.py @@ -1,6 +1,7 @@ import os import gradio as gr from toolbox import get_conf +from loguru import logger CODE_HIGHLIGHT, ADD_WAIFU, LAYOUT = get_conf("CODE_HIGHLIGHT", "ADD_WAIFU", "LAYOUT") theme_dir = os.path.dirname(__file__) @@ -85,7 +86,7 @@ def adjust_theme(): ) except: set_theme = None - print("gradio版本较旧, 不能自定义字体和颜色") + logger.error("gradio版本较旧, 不能自定义字体和颜色") return set_theme diff --git a/themes/default.py b/themes/default.py index a65b0119..1542cb11 100644 --- a/themes/default.py +++ b/themes/default.py @@ -1,6 +1,7 @@ import os import gradio as gr from toolbox import get_conf +from loguru import logger CODE_HIGHLIGHT, ADD_WAIFU, LAYOUT = get_conf("CODE_HIGHLIGHT", "ADD_WAIFU", "LAYOUT") theme_dir = os.path.dirname(__file__) @@ -84,7 +85,7 @@ def adjust_theme(): ) except: set_theme = None - print("gradio版本较旧, 不能自定义字体和颜色") + logger.error("gradio版本较旧, 不能自定义字体和颜色") return set_theme diff --git a/themes/gradios.py b/themes/gradios.py index d72e7e8d..f4dc43b4 100644 --- a/themes/gradios.py +++ b/themes/gradios.py @@ -1,6 +1,7 @@ import os import gradio as gr from toolbox import get_conf, ProxyNetworkActivate +from loguru import logger CODE_HIGHLIGHT, ADD_WAIFU, LAYOUT = get_conf("CODE_HIGHLIGHT", "ADD_WAIFU", "LAYOUT") theme_dir = os.path.dirname(__file__) @@ -9,7 +10,7 @@ theme_dir = os.path.dirname(__file__) def dynamic_set_theme(THEME): set_theme = gr.themes.ThemeClass() with ProxyNetworkActivate("Download_Gradio_Theme"): - print("正在下载Gradio主题,请稍等。") + logger.info("正在下载Gradio主题,请稍等。") try: if THEME.startswith("Huggingface-"): THEME = THEME.lstrip("Huggingface-") @@ -17,7 +18,7 @@ def dynamic_set_theme(THEME): THEME = THEME.lstrip("huggingface-") set_theme = set_theme.from_hub(THEME.lower()) except: - print("下载Gradio主题时出现异常。") + logger.error("下载Gradio主题时出现异常。") return set_theme @@ -25,7 +26,7 @@ def adjust_theme(): try: set_theme = gr.themes.ThemeClass() with ProxyNetworkActivate("Download_Gradio_Theme"): - print("正在下载Gradio主题,请稍等。") + logger.info("正在下载Gradio主题,请稍等。") try: THEME = get_conf("THEME") if THEME.startswith("Huggingface-"): @@ -34,7 +35,7 @@ def adjust_theme(): THEME = THEME.lstrip("huggingface-") set_theme = set_theme.from_hub(THEME.lower()) except: - print("下载Gradio主题时出现异常。") + logger.error("下载Gradio主题时出现异常。") from themes.common import get_common_html_javascript_code js = get_common_html_javascript_code() @@ -54,7 +55,7 @@ def adjust_theme(): ) except Exception: set_theme = None - print("gradio版本较旧, 不能自定义字体和颜色。") + logger.error("gradio版本较旧, 不能自定义字体和颜色。") return set_theme diff --git a/themes/green.py b/themes/green.py index bd1179a3..ba681ae0 100644 --- a/themes/green.py +++ b/themes/green.py @@ -1,6 +1,7 @@ import os import gradio as gr from toolbox import get_conf +from loguru import logger CODE_HIGHLIGHT, ADD_WAIFU, LAYOUT = get_conf("CODE_HIGHLIGHT", "ADD_WAIFU", "LAYOUT") theme_dir = os.path.dirname(__file__) @@ -97,7 +98,7 @@ def adjust_theme(): ) except: set_theme = None - print("gradio版本较旧, 不能自定义字体和颜色") + logger.error("gradio版本较旧, 不能自定义字体和颜色") return set_theme diff --git a/toolbox.py b/toolbox.py index ca2e7f6e..060bf8dc 100644 --- a/toolbox.py +++ b/toolbox.py @@ -8,7 +8,6 @@ import base64 import gradio import shutil import glob -import logging import uuid from loguru import logger from functools import wraps @@ -1034,10 +1033,20 @@ def log_chat(llm_model: str, input_str: str, output_str: str): try: if output_str and input_str and llm_model: uid = str(uuid.uuid4().hex) - logging.info(f"[Model({uid})] {llm_model}") input_str = input_str.rstrip('\n') - logging.info(f"[Query({uid})]\n{input_str}") output_str = output_str.rstrip('\n') - logging.info(f"[Response({uid})]\n{output_str}\n\n") + logger.bind(chat_msg=True).info(dedent( + """ + ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ + [UID] + {uid} + [Model] + {llm_model} + [Query] + {input_str} + [Response] + {output_str} + ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ + """).format(uid=uid, llm_model=llm_model, input_str=input_str, output_str=output_str)) except: logger.error(trimmed_format_exc())