🤖 自动格式化代码 [skip ci]

This commit is contained in:
github-actions[bot]
2025-05-06 16:21:18 +00:00
parent 1e2cdeeea5
commit afbe4f280e
5 changed files with 25 additions and 11 deletions

16
bot.py
View File

@@ -35,15 +35,16 @@ loop = None
# shutdown_requested = False # 新增全局变量 # shutdown_requested = False # 新增全局变量
async def request_shutdown() -> bool: async def request_shutdown() -> bool:
"""请求关闭程序""" """请求关闭程序"""
try: try:
if loop and not loop.is_closed(): if loop and not loop.is_closed():
try: try:
loop.run_until_complete(graceful_shutdown()) loop.run_until_complete(graceful_shutdown())
except Exception as ge: # 捕捉优雅关闭时可能发生的错误 except Exception as ge: # 捕捉优雅关闭时可能发生的错误
logger.error(f"优雅关闭时发生错误: {ge}") logger.error(f"优雅关闭时发生错误: {ge}")
return False return False
return True return True
except Exception as e: except Exception as e:
logger.error(f"请求关闭程序时发生错误: {e}") logger.error(f"请求关闭程序时发生错误: {e}")
@@ -246,9 +247,6 @@ def raw_main():
return MainSystem() return MainSystem()
if __name__ == "__main__": if __name__ == "__main__":
exit_code = 0 # 用于记录程序最终的退出状态 exit_code = 0 # 用于记录程序最终的退出状态
try: try:
@@ -272,7 +270,7 @@ if __name__ == "__main__":
except Exception as ge: # 捕捉优雅关闭时可能发生的错误 except Exception as ge: # 捕捉优雅关闭时可能发生的错误
logger.error(f"优雅关闭时发生错误: {ge}") logger.error(f"优雅关闭时发生错误: {ge}")
# 新增:检测外部请求关闭 # 新增:检测外部请求关闭
# except Exception as e: # 将主异常捕获移到外层 try...except # except Exception as e: # 将主异常捕获移到外层 try...except
# logger.error(f"事件循环内发生错误: {str(e)} {str(traceback.format_exc())}") # logger.error(f"事件循环内发生错误: {str(e)} {str(traceback.format_exc())}")
# exit_code = 1 # exit_code = 1

View File

@@ -1,6 +1,7 @@
from src.heart_flow.heartflow import heartflow from src.heart_flow.heartflow import heartflow
from src.heart_flow.sub_heartflow import ChatState from src.heart_flow.sub_heartflow import ChatState
from src.common.logger_manager import get_logger from src.common.logger_manager import get_logger
logger = get_logger("api") logger = get_logger("api")

View File

@@ -2,6 +2,7 @@ from fastapi import APIRouter
from strawberry.fastapi import GraphQLRouter from strawberry.fastapi import GraphQLRouter
import os import os
import sys import sys
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..", ".."))) sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..")))
# from src.config.config import BotConfig # from src.config.config import BotConfig
from src.common.logger_manager import get_logger from src.common.logger_manager import get_logger
@@ -53,10 +54,12 @@ async def forced_change_subheartflow_status_api(subheartflow_id: str, status: Ch
logger.error(f"子心流 {subheartflow_id} 状态更改为 {status.value} 失败") logger.error(f"子心流 {subheartflow_id} 状态更改为 {status.value} 失败")
return {"status": "failed"} return {"status": "failed"}
@router.get("/stop") @router.get("/stop")
async def force_stop_maibot(): async def force_stop_maibot():
"""强制停止MAI Bot""" """强制停止MAI Bot"""
from bot import request_shutdown from bot import request_shutdown
success = await request_shutdown() success = await request_shutdown()
if success: if success:
logger.info("MAI Bot已强制停止") logger.info("MAI Bot已强制停止")
@@ -65,6 +68,7 @@ async def force_stop_maibot():
logger.error("MAI Bot强制停止失败") logger.error("MAI Bot强制停止失败")
return {"status": "failed"} return {"status": "failed"}
def start_api_server(): def start_api_server():
"""启动API服务器""" """启动API服务器"""
global_server.register_router(router, prefix="/api/v1") global_server.register_router(router, prefix="/api/v1")

View File

@@ -28,7 +28,11 @@ from rich.progress import (
install(extra_lines=3) install(extra_lines=3)
ROOT_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..", "..", "..")) ROOT_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..", "..", ".."))
EMBEDDING_DATA_DIR = os.path.join(ROOT_PATH, "data", "embedding") if global_config["persistence"]["embedding_data_dir"] is None else os.path.join(ROOT_PATH, global_config["persistence"]["embedding_data_dir"]) EMBEDDING_DATA_DIR = (
os.path.join(ROOT_PATH, "data", "embedding")
if global_config["persistence"]["embedding_data_dir"] is None
else os.path.join(ROOT_PATH, global_config["persistence"]["embedding_data_dir"])
)
EMBEDDING_DATA_DIR_STR = str(EMBEDDING_DATA_DIR).replace("\\", "/") EMBEDDING_DATA_DIR_STR = str(EMBEDDING_DATA_DIR).replace("\\", "/")
TOTAL_EMBEDDING_TIMES = 3 # 统计嵌入次数 TOTAL_EMBEDDING_TIMES = 3 # 统计嵌入次数

View File

@@ -30,9 +30,16 @@ from .lpmmconfig import (
) )
from .global_logger import logger from .global_logger import logger
ROOT_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..", "..", "..")) ROOT_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..", "..", ".."))
KG_DIR = os.path.join(ROOT_PATH, "data/rag") if global_config["persistence"]["rag_data_dir"] is None else os.path.join(ROOT_PATH, global_config["persistence"]["rag_data_dir"]) KG_DIR = (
os.path.join(ROOT_PATH, "data/rag")
if global_config["persistence"]["rag_data_dir"] is None
else os.path.join(ROOT_PATH, global_config["persistence"]["rag_data_dir"])
)
KG_DIR_STR = str(KG_DIR).replace("\\", "/") KG_DIR_STR = str(KG_DIR).replace("\\", "/")
class KGManager: class KGManager:
def __init__(self): def __init__(self):
# 会被保存的字段 # 会被保存的字段