start.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #!/usr/bin/env python3
  2. """MES AI服务启动脚本"""
  3. import sys
  4. import os
  5. import subprocess
  6. from pathlib import Path
  7. def main():
  8. """启动MES AI服务"""
  9. print("🚀 启动MES AI服务...")
  10. # 获取项目根目录
  11. root_dir = Path(__file__).parent.parent
  12. os.chdir(root_dir)
  13. # 检查Python版本
  14. if sys.version_info < (3, 11):
  15. print("❌ 错误: 需要Python 3.11或更高版本")
  16. sys.exit(1)
  17. # 检查环境变量文件
  18. env_file = root_dir / ".env"
  19. if not env_file.exists():
  20. print("⚠️ 警告: .env文件不存在")
  21. print("请复制.env.example为.env并配置OpenAI API密钥")
  22. # 创建基本的.env文件
  23. with open(env_file, "w", encoding="utf-8") as f:
  24. f.write("# MES AI服务配置\n")
  25. f.write("MES_AI_OPENAI_API_KEY=your_openai_api_key_here\n")
  26. f.write("MES_AI_DEBUG=true\n")
  27. print("✅ 已创建基本.env文件,请编辑并添加OpenAI API密钥")
  28. # 检查依赖
  29. try:
  30. import uvicorn
  31. import fastapi
  32. import openai
  33. print("✅ 依赖检查通过")
  34. except ImportError as e:
  35. print(f"❌ 缺少依赖: {e}")
  36. print("请运行: uv sync")
  37. sys.exit(1)
  38. # 启动服务
  39. try:
  40. print("🌟 MES AI服务正在启动...")
  41. print("📖 API文档: http://localhost:8000/docs")
  42. print("🔗 聊天接口: http://localhost:8000/api/v1/chat")
  43. print("❤️ 健康检查: http://localhost:8000/api/v1/health")
  44. print("\n按 Ctrl+C 停止服务\n")
  45. subprocess.run([sys.executable, "main.py"], check=True)
  46. except KeyboardInterrupt:
  47. print("\n👋 MES AI服务已停止")
  48. except subprocess.CalledProcessError as e:
  49. print(f"❌ 服务启动失败: {e}")
  50. sys.exit(1)
  51. if __name__ == "__main__":
  52. main()