59 lines
1.7 KiB
Python
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) |