ForcePilot/server/routers/base_router.py

62 lines
1.6 KiB
Python
Raw Normal View History

from fastapi import Request, Body, Depends
2024-10-02 20:11:28 +08:00
from fastapi import APIRouter
from src import config, retriever, knowledge_base, graph_base
from server.utils.auth_middleware import get_admin_user, get_superadmin_user
from server.models.user_model import User
2024-10-02 20:11:28 +08:00
2025-05-24 11:29:45 +08:00
base = APIRouter()
2024-10-02 20:11:28 +08:00
@base.get("/")
async def route_index():
return {"message": "You Got It!"}
@base.get("/health")
async def health_check():
"""简单的健康检查接口"""
return {"status": "ok", "message": "服务正常运行"}
2024-10-02 20:11:28 +08:00
@base.get("/config")
def get_config(current_user: User = Depends(get_admin_user)):
return config.dump_config()
2024-10-02 20:11:28 +08:00
@base.post("/config")
async def update_config(
key = Body(...),
value = Body(...),
current_user: User = Depends(get_admin_user)
) -> dict:
2025-03-16 01:11:13 +08:00
config[key] = value
config.save()
return config.dump_config()
2024-10-02 20:11:28 +08:00
2025-05-05 19:40:23 +08:00
@base.post("/config/update")
async def update_config_item(
items: dict = Body(...),
current_user: User = Depends(get_admin_user)
) -> dict:
config.update(items)
config.save()
return config.dump_config()
2024-10-02 20:11:28 +08:00
@base.post("/restart")
async def restart(current_user: User = Depends(get_superadmin_user)):
knowledge_base.restart()
graph_base.start()
2025-03-16 01:11:13 +08:00
retriever.restart()
2024-10-02 20:11:28 +08:00
return {"message": "Restarted!"}
@base.get("/log")
def get_log(current_user: User = Depends(get_admin_user)):
2024-10-02 20:11:28 +08:00
from src.utils.logging_config import LOG_FILE
from collections import deque
2025-05-24 11:29:45 +08:00
with open(LOG_FILE) as f:
2024-10-02 20:11:28 +08:00
last_lines = deque(f, maxlen=1000)
log = ''.join(last_lines)
2025-02-28 00:38:59 +08:00
return {"log": log, "message": "success", "log_file": LOG_FILE}
2024-10-02 20:11:28 +08:00