Files
assist/start_dashboard.py

125 lines
3.7 KiB
Python
Raw Normal View History

2025-09-06 21:06:18 +08:00
# -*- coding: utf-8 -*-
"""
启动TSP智能助手综合管理平台
"""
import sys
import os
import logging
import threading
import asyncio
2025-09-06 21:06:18 +08:00
from datetime import datetime
# 添加项目根目录到Python路径
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
def setup_logging():
"""设置日志"""
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
handlers=[
logging.FileHandler('logs/dashboard.log'),
logging.StreamHandler()
]
)
def start_websocket_server():
"""启动WebSocket服务器"""
try:
from src.web.websocket_server import WebSocketServer
server = WebSocketServer(host="localhost", port=8765)
server.run()
except Exception as e:
print(f"WebSocket服务器启动失败: {e}")
2025-09-06 21:06:18 +08:00
def main():
"""主函数"""
print("=" * 60)
print("TSP智能助手 - 综合管理平台")
print("=" * 60)
print(f"启动时间: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")
print()
# 设置日志
setup_logging()
logger = logging.getLogger(__name__)
try:
# 检查必要目录
os.makedirs('logs', exist_ok=True)
os.makedirs('data', exist_ok=True)
logger.info("正在启动TSP智能助手综合管理平台...")
# 快速系统检查(不创建完整实例)
try:
from src.core.database import db_manager
from src.core.llm_client import QwenClient
# 快速测试数据库连接
db_ok = db_manager.test_connection()
# 快速测试LLM连接
llm_client = QwenClient()
llm_ok = llm_client.test_connection()
logger.info(f"系统检查结果: 数据库={db_ok}, LLM={llm_ok}")
if not (db_ok and llm_ok):
logger.warning("系统检查发现问题,但继续启动...")
except Exception as e:
logger.error(f"系统检查失败: {e}")
print(f"警告: 系统检查失败 - {e}")
2025-09-06 21:06:18 +08:00
# 导入并启动Flask应用
from src.web.app import app
print("系统功能:")
print(" ✓ 智能对话系统")
print(" ✓ 对话历史管理")
print(" ✓ Token消耗监控")
print(" ✓ AI调用成功率监控")
2025-09-06 21:06:18 +08:00
print(" ✓ Agent管理")
print(" ✓ 预警管理")
print(" ✓ 知识库管理")
print(" ✓ 工单管理")
print(" ✓ 数据分析")
print(" ✓ 系统设置")
print(" ✓ Redis缓存支持")
print(" ✓ 性能优化")
2025-09-06 21:06:18 +08:00
print()
print("访问地址:")
print(" 主页: http://localhost:5000")
print(" 预警管理: http://localhost:5000/alerts")
print(" 实时对话: http://localhost:5000/chat")
print(" WebSocket: ws://localhost:8765")
2025-09-06 21:06:18 +08:00
print()
print("按 Ctrl+C 停止服务")
print("=" * 60)
# 在单独线程中启动WebSocket服务器
websocket_thread = threading.Thread(target=start_websocket_server, daemon=True)
websocket_thread.start()
2025-09-06 21:06:18 +08:00
# 启动Flask应用
app.run(
debug=False,
host='0.0.0.0',
port=5000,
threaded=True
)
except KeyboardInterrupt:
print("\n正在停止服务...")
logger.info("用户手动停止服务")
except Exception as e:
print(f"启动失败: {e}")
logger.error(f"启动失败: {e}")
sys.exit(1)
if __name__ == "__main__":
main()