整体流程与配置模块
发布于 2025-12-31
3.2 整体流程与配置模块
Section titled “3.2 整体流程与配置模块”- 理解项目的整体流程
- 掌握项目的配置模块
一、整体流程
Section titled “一、整体流程”- 配置基础环境(config.py 和 create_logger.py)
- 初始化数据库(SQL 脚本)
- 采集数据(spider_weather.py)
- 完成 MCP 服务器(mcp_weather_server.py 、mcp_ticket_server.py 和 mcp_order_server.py)
- 完成A2A代理服务器(weather_server.py 、ticket_server.py 和 order_server.py)
- 完成客户端(main.py)
- 启动服务进行联调
- 启动MCP 服务器(mcp_weather_server.py 、mcp_ticket_server.py 和 mcp_order_server.py)
- 启动代理服务器(weather_server.py 、ticket_server.py 和 order_server.py)
- 启动客户端(main.py)
二、配置模块
Section titled “二、配置模块”1 config.py
Section titled “1 config.py”config.py配置文件,主要是LLM 和数据库信息。统一管理配置,避免硬编码,便于修改。
项目中的定位:基础模块,提供全局参数(如 API 密钥、模型名称),所有脚本依赖它。
核心功能:定义 Config 类
位置:SmartVoyage/config.py
import os
# 项目根目录project_root = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..')
#定义配置文件class Config: def __init__(self): # 大模型配置 self.base_url = 'https://dashscope.aliyuncs.com/compatible-mode/v1' self.api_key = 'sk-67320312aa3e4fsdfsss3411aa0d7' self.model_name = 'qwen-plus'
# 数据库配置 self.host = 'localhost' self.user = 'root' self.password = 'root' self.database = 'travel_rag'
# 日志配置 self.log_file = os.path.join(project_root, 'SmartVoyage', 'logs/app.log')
if __name__ == '__main__': print(Config().log_file)2 create_logger.py
Section titled “2 create_logger.py”create_logger.py主要是配置日志,设置整个项目的logger对象。
项目中的定位:管理logger,全局统一使用这一个。
核心功能:通过setup_logger方法设置,然后调用setup_logger方法返回logger对象。
位置:SmartVoyage/create_logger.py
import loggingimport os
from SmartVoyage.config import Config
def setup_logger(name, log_file='logs/app.log'): # 创建日志文件夹 os.makedirs(os.path.dirname(log_file), exist_ok=True)
# 获取日志记录器 logger = logging.getLogger(name) logger.setLevel(logging.DEBUG) # 防止重复输出的关键! logger.propagate = False
# 定义日志格式 formatter = logging.Formatter('%(name)s - %(asctime)s - %(levelname)s - %(message)s')
# 创建控制台处理器 console_handler = logging.StreamHandler() console_handler.setFormatter(formatter) console_handler.setLevel(logging.INFO) # 每个日志处理器可以单独设置日志级别,但是这个日志级别必须高于或等于处理器级别
# 创建文件处理器 file_handler = logging.FileHandler(filename=log_file, encoding="utf-8", mode="a") file_handler.setFormatter(formatter) file_handler.setLevel(logging.DEBUG)
# 将处理器添加到日志记录器中 if not logger.handlers: # 先进行判断,再进行添加。避免重复添加处理器 logger.addHandler(console_handler) logger.addHandler(file_handler)
return logger
logger = setup_logger('SmartVoage', Config().log_file)注意:需要设置 logger.propagate = False 防止日志重复输出。因为某些包中,如create_fastapi_app也有日志对象,可能会重复。为了避免日志重复输出,需要设置 logger.propagate = False。
本节主要描述了smartVoyage的整体流程和配置模块。
发布于 2025-12-31