#!/usr/bin/env python3 """ DeepResearch 应用入口 """ import os import sys import signal from app import create_app, socketio from config import config # 获取配置名称 config_name = os.environ.get('FLASK_CONFIG', 'development') app = create_app(config_name) def shutdown_handler(signum, frame): """优雅关闭处理器""" print("\n正在关闭应用...") # 关闭任务管理器 try: from app.services.task_manager import task_manager task_manager.shutdown() print("任务管理器已关闭") except Exception as e: print(f"关闭任务管理器时出错: {e}") sys.exit(0) if __name__ == '__main__': # 注册信号处理器 signal.signal(signal.SIGINT, shutdown_handler) signal.signal(signal.SIGTERM, shutdown_handler) # 检查必要的环境变量 required_env_vars = ['DEEPSEEK_API_KEY', 'TAVILY_API_KEY'] missing_vars = [var for var in required_env_vars if not os.environ.get(var)] if missing_vars: print(f"错误: 缺少必要的环境变量: {', '.join(missing_vars)}") print("请在.env文件中设置这些变量") sys.exit(1) # 启动应用 port = int(os.environ.get('PORT', 8088)) debug = app.config.get('DEBUG', False) print(f"启动 DeepResearch 服务器...") print(f"配置: {config_name}") print(f"调试模式: {debug}") print(f"访问地址: http://localhost:{port}") print(f"\n提示: 不再需要 Redis 和 Celery Worker") print(f"按 Ctrl+C 优雅关闭应用\n") # 使用socketio运行以支持WebSocket socketio.run(app, host='0.0.0.0', port=port, debug=debug, use_reloader=debug)