deepresearch/所有文件/app.py
2025-07-02 15:35:36 +08:00

59 lines
1.7 KiB
Python

#!/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)