Initial commit: 个性化饮食推荐助手 - 包含OCR识别、AI分析、现代化界面等功能

This commit is contained in:
赵杰
2025-09-25 14:20:11 +01:00
commit aea5f6bf74
27 changed files with 14015 additions and 0 deletions

145
start.py Normal file
View File

@@ -0,0 +1,145 @@
"""
启动脚本 - 个性化饮食推荐助手
"""
import sys
import os
from pathlib import Path
# 添加项目根目录到Python路径
project_root = Path(__file__).parent
sys.path.insert(0, str(project_root))
def check_dependencies():
"""检查依赖包"""
required_packages = [
('customtkinter', 'customtkinter'),
('openai', 'openai'),
('anthropic', 'anthropic'),
('sklearn', 'scikit-learn'),
('pandas', 'pandas'),
('numpy', 'numpy'),
('dotenv', 'python-dotenv')
]
missing_packages = []
for import_name, package_name in required_packages:
try:
__import__(import_name)
except ImportError:
missing_packages.append(package_name)
if missing_packages:
print("❌ 缺少以下依赖包:")
for package in missing_packages:
print(f" - {package}")
print("\n请运行以下命令安装:")
print(f"pip install {' '.join(missing_packages)}")
return False
print("✅ 所有依赖包已安装")
return True
def check_config():
"""检查配置文件"""
env_file = Path('.env')
if not env_file.exists():
print("⚠️ 配置文件 .env 不存在")
print("正在创建示例配置文件...")
env_content = """# 个性化饮食推荐助手配置文件
# 数据库配置
DATABASE_URL=sqlite:///./data/app.db
# 大模型API配置 (可选,不配置将使用备用方案)
OPENAI_API_KEY=your-openai-api-key-here
ANTHROPIC_API_KEY=your-anthropic-api-key-here
# 模型配置
MODEL_SAVE_PATH=./models/
TRAINING_DATA_PATH=./data/training/
USER_DATA_PATH=./data/users/
# 推荐系统配置
RECOMMENDATION_TOP_K=5
MIN_TRAINING_SAMPLES=10
MODEL_RETRAIN_THRESHOLD=50
# 用户画像配置
ENABLE_PHYSIOLOGICAL_TRACKING=true
ENABLE_ASTROLOGY_FACTORS=true
ENABLE_TASTE_PREFERENCES=true
# GUI配置
APP_TITLE=个性化饮食推荐助手
WINDOW_SIZE=1200x800
THEME=dark
# 开发配置
DEBUG=true
LOG_LEVEL=INFO
"""
with open('.env', 'w', encoding='utf-8') as f:
f.write(env_content)
print("✅ 示例配置文件已创建: .env")
print("💡 提示: 如需使用大模型功能,请在 .env 文件中配置API密钥")
else:
print("✅ 配置文件存在")
return True
def create_directories():
"""创建必要的目录"""
directories = [
'data',
'data/users',
'data/training',
'models',
'logs',
'gui'
]
for directory in directories:
Path(directory).mkdir(parents=True, exist_ok=True)
print("✅ 目录结构创建完成")
def main():
"""主函数"""
print("🍎 个性化饮食推荐助手 - 启动检查")
print("=" * 50)
# 检查依赖
if not check_dependencies():
return False
# 检查配置
if not check_config():
return False
# 创建目录
create_directories()
print("\n🚀 启动应用...")
print("=" * 50)
try:
# 导入并运行主应用
from main import main as run_app
run_app()
except KeyboardInterrupt:
print("\n👋 用户中断,应用退出")
except Exception as e:
print(f"\n❌ 应用启动失败: {e}")
return False
return True
if __name__ == "__main__":
success = main()
if not success:
sys.exit(1)