diff --git a/api_send_evaluate.py b/api_send_evaluate.py index 95d8009..fb877db 100644 --- a/api_send_evaluate.py +++ b/api_send_evaluate.py @@ -45,7 +45,7 @@ def classify_features(features_data_list): 返回: dict: 包含分类结果和模型文件信息的字典 """ - response = requests.post("http://p2p1.melulu.top:3397/evaluate/", json=features_data_list) + response = requests.post("http://127.0.0.1:8088/evaluate/", json=features_data_list) if response.status_code == 200: results = response.json() print("Precision:", results["classification_result"]["precision"]) diff --git a/api_send_inference.py b/api_send_inference.py index a6813c4..0e3dbb7 100644 --- a/api_send_inference.py +++ b/api_send_inference.py @@ -87,7 +87,7 @@ if __name__ == "__main__": features_data_list = [features_data4, features_data2, features_data3, features_data1] # 发送 POST 请求 - response = requests.post("http://p2p1.melulu.top:3397/inference/", json=features_data_list) + response = requests.post("http://127.0.0.1:8088/inference/", json=features_data_list) if response.status_code == 200: # 获取分类结果列表 diff --git a/api_send_train.py b/api_send_train.py index 99b5a87..bbe383a 100644 --- a/api_send_train.py +++ b/api_send_train.py @@ -54,7 +54,7 @@ def classify_features(features_data_list): 返回: dict: 包含分类结果和模型文件信息的字典 """ - response = requests.post("http://127.0.0.1:3397/train/", json=features_data_list) + response = requests.post("http://127.0.0.1:8088/train/", json=features_data_list) if response.status_code == 200: results = response.json() print("Precision:", results["classification_result"]["precision"]) diff --git a/psy_api.py b/psy_api.py index 7630949..acf6bd6 100644 --- a/psy_api.py +++ b/psy_api.py @@ -4,6 +4,8 @@ import datetime import logging import shutil import uvicorn +import schedule +import threading import yaml import numpy as np from fastapi import FastAPI, Request, File, UploadFile @@ -20,6 +22,12 @@ app = FastAPI() # 控制是否打印的宏定义 PRINT_LOG = True +# 日志保留天数 +DAYS = 1 + +# 清理文件夹 +DIRS = ["train_api", "inference_api", "evaluate_api"] + # 初始化配置文件 config_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "config/config.yaml")) @@ -69,6 +77,32 @@ def update_log_handler(log_path): file_handler.setFormatter(logging.Formatter('%(asctime)s %(levelname)s: %(message)s', datefmt='%Y-%m-%d %H:%M:%S')) logger.addHandler(file_handler) +# 定义清理旧文件的函数 +def clean_old_files(directory, days=DAYS): + now = time.time() + cutoff = now - (days * 86400) # 1天前的时间戳 + + for root, dirs, files in os.walk(directory): + for file in files: + file_path = os.path.join(root, file) + if os.path.getmtime(file_path) < cutoff: + os.remove(file_path) + log_print(f"Removed old file: {file_path}") + +# 定期清理任务 +def schedule_cleanup(): + directories = DIRS + for directory in directories: + abs_directory = os.path.abspath(os.path.join(os.path.dirname(__file__), directory)) + clean_old_files(abs_directory) + +# 启动定时任务 +def start_scheduler(): + schedule.every(1).hours.do(schedule_cleanup) + while True: + schedule.run_pending() + time.sleep(1) + # 定义训练接口 @app.post("/train/") async def train_model(request: Request, features_list: List[Features]): @@ -344,4 +378,10 @@ if __name__ == "__main__": app.mount("/evaluate_api", StaticFiles(directory=static_dir_evaluate), name="static_dir_evaluate") app.mount("/inference_api", StaticFiles(directory=static_dir_inference), name="static_dir_inference") app.mount("/models", StaticFiles(directory=static_dir_models), name="static_dir_models") - uvicorn.run(app, host="0.0.0.0", port=8088, reload=False) \ No newline at end of file + + # 启动定时任务 + scheduler_thread = threading.Thread(target=start_scheduler) + scheduler_thread.daemon = True + scheduler_thread.start() + + uvicorn.run(app, host="0.0.0.0", port=8089, reload=False) \ No newline at end of file