Skip to content

Zchary1106/AIwufan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AICooker

AICooker 是一款由 AI 驱动的智能烹饪助手,为用户提供从灵感获取到饮食管理的完整体验。 它不仅能根据你的食材、偏好和健康目标自动生成高质量菜谱,还支持周计划、智能购物单、体重与营养管理、用餐提醒等全流程功能。

系统采用 React + FastAPI 的前后端分离架构,整合 MySQL、Redis、向量知识库(RAG) 等基础设施,具备智能推荐、快速响应与可扩展能力,轻松支持本地开发与云端部署。


🔭 架构总览

  • 前端:React 18 + TypeScript,通过统一的 apiClient 调用后端 REST API。
  • 后端:FastAPI + SQLModel,位于 backend/,提供菜谱生成、周计划、收藏、通知、体重等业务接口。
  • 数据库:MySQL 8(backend/db/schema.sql 提供建表和种子数据)。
  • 缓存 & 限流:Redis 实现分布式滑动窗口限流;可选用向量知识库加速回答。
  • 测试体系:前端使用 Jest,后端使用 pytest;已补充核心业务的单元测试。

🧩 Demo地址

https://aicooker.southeastasia.cloudapp.azure.com

demo

环境变量速览

变量 说明
DATABASE_URL MySQL 连接串
REDIS_URL Redis 地址(限流、共享缓存)
RATE_LIMIT_* 滑动窗口策略配置(是否启用、单位时间、额度等)
CORS_ORIGINS 允许访问的前端域名列表,默认含本地 & Azure 站点
KNOWLEDGE_BASE_PATH / KNOWLEDGE_VECTOR_STORE_PATH 知识库文档及向量索引路径
AZURE_OPENAI_* Azure OpenAI / LangChain 相关配置

更多变量见 backend/.env.example


⚙️ 本地开发指南

1. 准备环境

  • Python 3.10+
  • Node.js 18+
  • MySQL 8.x
  • Redis 6.x(启用限流必需)

2. 配置 .env

cp backend/.env.example .env
# 根据实际情况修改数据库、Redis、OpenAI 等配置

3. 初始化数据库

mysql -u <user> -p <database> < backend/db/schema.sql

4. 安装依赖并运行后端

cd backend
pip install -r requirements.txt
uvicorn app.main:app --reload

5. 安装依赖并运行前端

cd recipe-generator
npm install
npm start

前端默认联向 http://localhost:8000/v1,若需对接远程后端,可在 .env 中配置 REACT_APP_API_BASE_URL


✅ 测试与验证

  • 后端
    cd backend
    python -m pytest
  • 前端
    cd recipe-generator
    npm test

📂 目录速览

cooker/
├── backend/
│   ├── app/
│   │   ├── api/              # FastAPI 路由
│   │   ├── core/             # 配置、Redis、限流等核心组件
│   │   ├── models/           # SQLModel 实体
│   │   ├── schemas/          # Pydantic 响应/请求模型
│   │   └── services/         # 业务逻辑
a│   ├── db/schema.sql       # MySQL 建表脚本
│   └── tests/                # pytest 单元测试
├── recipe-generator/
│   ├── src/
│   │   ├── services/         # 调用后端的 API 封装
│   │   ├── context/          # 全局状态管理
│   │   └── components/       # UI 组件
└── README.md                 # 项目说明

如需更多帮助或想法交流,欢迎继续提问。祝开发顺利!

About

AICooker is an AI-powered cooking assistant that generates recipes, plans weekly meals, manages shopping lists and health data, and runs on a modern React + FastAPI architecture with MySQL, Redis, and vector search support.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors