start_prod.sh 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #!/bin/bash
  2. # 生产环境启动脚本
  3. # 用于启动记忆总结服务
  4. set -e # 遇到错误立即退出
  5. # 获取脚本所在目录
  6. SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  7. cd "$SCRIPT_DIR"
  8. # 颜色输出
  9. GREEN='\033[0;32m'
  10. YELLOW='\033[1;33m'
  11. RED='\033[0;31m'
  12. BLUE='\033[0;34m'
  13. NC='\033[0m' # No Color
  14. # 检查配置文件
  15. CONF_FILE="$SCRIPT_DIR/summarize.conf"
  16. if [ ! -f "$CONF_FILE" ]; then
  17. echo -e "${RED}❌ 错误: 未找到配置文件 $CONF_FILE${NC}"
  18. echo -e "${YELLOW}提示: 请确保 summarize.conf 文件存在于 memory_summaries 目录${NC}"
  19. exit 1
  20. fi
  21. echo -e "${GREEN}✅ 找到配置文件: $CONF_FILE${NC}"
  22. # 检查 Python 环境
  23. if ! command -v python3 &> /dev/null; then
  24. echo -e "${RED}❌ 错误: 未找到 python3 命令${NC}"
  25. exit 1
  26. fi
  27. # 检查虚拟环境(可选,如果使用虚拟环境)
  28. if [ -d "venv" ] || [ -d ".venv" ]; then
  29. VENV_DIR=""
  30. if [ -d "venv" ]; then
  31. VENV_DIR="venv"
  32. else
  33. VENV_DIR=".venv"
  34. fi
  35. echo -e "${GREEN}✅ 激活虚拟环境: $VENV_DIR${NC}"
  36. source "$VENV_DIR/bin/activate"
  37. fi
  38. # 检查依赖是否已安装
  39. MISSING_DEPS=0
  40. if ! python3 -c "import sqlalchemy" &> /dev/null; then
  41. echo -e "${RED}❌ 错误: 未检测到 SQLAlchemy${NC}"
  42. MISSING_DEPS=1
  43. fi
  44. if ! python3 -c "import openai" &> /dev/null; then
  45. echo -e "${RED}❌ 错误: 未检测到 openai 模块${NC}"
  46. MISSING_DEPS=1
  47. fi
  48. if ! python3 -c "import redis" &> /dev/null; then
  49. echo -e "${RED}❌ 错误: 未检测到 redis 模块${NC}"
  50. MISSING_DEPS=1
  51. fi
  52. if [ $MISSING_DEPS -eq 1 ]; then
  53. echo -e "${YELLOW}📦 请先安装依赖:${NC}"
  54. echo -e "${YELLOW} pip3 install -r requirements.txt${NC}"
  55. echo -e "${YELLOW} 或者手动安装: pip3 install openai sqlalchemy aiomysql PyMySQL redis pydantic pydantic-settings${NC}"
  56. exit 1
  57. fi
  58. echo -e "${GREEN}✅ 依赖检查通过${NC}"
  59. # 启动服务
  60. start_summary_service() {
  61. echo -e "${BLUE}📝 启动记忆总结服务...${NC}"
  62. nohup python3 summarize_memory.py > summarize_memory_nohup.log 2>&1 &
  63. SUMMARY_PID=$!
  64. echo $SUMMARY_PID > summarize_memory.pid
  65. echo -e "${GREEN}✅ 记忆总结服务已启动,PID: $SUMMARY_PID${NC}"
  66. echo -e "${YELLOW}日志文件: logs/summarize_memory.log, logs/summarize_memory_error.log${NC}"
  67. echo -e "${YELLOW}后台日志: summarize_memory_nohup.log${NC}"
  68. }
  69. start_summary_service
  70. echo ""
  71. echo -e "${GREEN}🚀 服务启动完成!${NC}"
  72. echo -e "${YELLOW}查看进程: ps aux | grep summarize_memory${NC}"
  73. echo -e "${YELLOW}停止服务: ./stop_prod.sh${NC}"
  74. echo -e "${YELLOW}查看状态: ./status_prod.sh${NC}"