Spaces:
Sleeping
Sleeping
feat: 添加utils工具模块
Browse files- 新增logger.py统一日志管理
- 新增validators.py数据验证模型
- 配置utils包的__init__.py导入接口
- 为模块化架构提供基础工具支持
- utils/__init__.py +20 -0
- utils/logger.py +36 -0
- utils/validators.py +14 -0
utils/__init__.py
CHANGED
|
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
provide a unified interface for logging and data validation
|
| 3 |
+
|
| 4 |
+
"""
|
| 5 |
+
|
| 6 |
+
from .logger import log, setup_logger
|
| 7 |
+
|
| 8 |
+
# import data validation classes
|
| 9 |
+
from .validators import ChatRequest, ChatResponse
|
| 10 |
+
|
| 11 |
+
# define the __all__ variable to control what is imported when using 'from module import *'
|
| 12 |
+
__all__ = [
|
| 13 |
+
'log',
|
| 14 |
+
'setup_logger',
|
| 15 |
+
'ChatRequest',
|
| 16 |
+
'ChatResponse'
|
| 17 |
+
]
|
| 18 |
+
|
| 19 |
+
# version information
|
| 20 |
+
__version__ = '1.0.0'
|
utils/logger.py
CHANGED
|
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import logging
|
| 2 |
+
import sys
|
| 3 |
+
|
| 4 |
+
|
| 5 |
+
def setup_logger():
|
| 6 |
+
"""Set up a logger for the application."""
|
| 7 |
+
logger = logging.getLogger("TravelAssistant")
|
| 8 |
+
logger.setLevel(logging.INFO)
|
| 9 |
+
|
| 10 |
+
# avoid duplicate handlers
|
| 11 |
+
if logger.hasHandlers():
|
| 12 |
+
logger.handlers.clear()
|
| 13 |
+
|
| 14 |
+
# 创建一个 handler,用于写入日志文件
|
| 15 |
+
# file_handler = logging.FileHandler("app.log")
|
| 16 |
+
# file_handler.setLevel(logging.INFO)
|
| 17 |
+
|
| 18 |
+
# 创建一个 handler,用于输出到控制台
|
| 19 |
+
stream_handler = logging.StreamHandler(sys.stdout)
|
| 20 |
+
stream_handler.setLevel(logging.INFO)
|
| 21 |
+
|
| 22 |
+
# 定义 handler 的输出格式
|
| 23 |
+
formatter = logging.Formatter(
|
| 24 |
+
'%(asctime)s - %(name)s - %(levelname)s - %(message)s'
|
| 25 |
+
)
|
| 26 |
+
# file_handler.setFormatter(formatter)
|
| 27 |
+
stream_handler.setFormatter(formatter)
|
| 28 |
+
|
| 29 |
+
# 给 logger 添加 handler
|
| 30 |
+
# logger.addHandler(file_handler)
|
| 31 |
+
logger.addHandler(stream_handler)
|
| 32 |
+
|
| 33 |
+
return logger
|
| 34 |
+
|
| 35 |
+
# 创建一个实例供其他模块导入
|
| 36 |
+
log = setup_logger()
|
utils/validators.py
CHANGED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# utils/validators.py
|
| 2 |
+
from pydantic import BaseModel
|
| 3 |
+
from typing import List, Optional
|
| 4 |
+
|
| 5 |
+
class ChatRequest(BaseModel):
|
| 6 |
+
message: str
|
| 7 |
+
session_id: Optional[str] = None
|
| 8 |
+
history: Optional[List[List[str]]] = []
|
| 9 |
+
|
| 10 |
+
class ChatResponse(BaseModel):
|
| 11 |
+
reply: str
|
| 12 |
+
session_id: str
|
| 13 |
+
status_info: str
|
| 14 |
+
history: List[List[str]]
|