# ingredient **Repository Path**: congye111/ingredient ## Basic Information - **Project Name**: ingredient - **Description**: 配料表解码器是一款基于人工智能技术的食品健康分析工具,通过 OCR 文字识别和大语言模型分析,帮助用户快速了解食品配料成分、营养价值和健康风险。 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-04-29 - **Last Updated**: 2026-07-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 配料表解码器 - Ingredient Analyzer 一款基于人工智能的食品配料表智能分析工具,通过 OCR 文字识别和大语言模型分析,帮助用户快速了解食品配料成分、营养价值和健康风险。 版本:1.0.0 | 许可证:MIT | Node.js >= 16.0.0 | MongoDB >= 4.4 ## 📱 项目演示 ### 核心功能 - 📷 **拍照识别** - 直接拍摄配料表,OCR 自动识别 - 🖼️ **相册选择** - 从相册上传图片进行分析 - 🤖 **AI 解析** - 智能分析营养成分和添加剂安全性 - 💡 **个性化建议** - 根据健康状况提供定制化建议 - 📋 **历史记录** - 随时查看历史分析记录 ### 使用场景 - 关注糖分摄入的人群 - 需要控制钠含量的人群 - 为婴幼儿选择食品的家长 - 健身人群控制热量和营养 - 选择健康食品送礼 ### 界面截图 #### 1️⃣ 首页 - 拍照/相册选择 ![首页截图](./image/3.png) #### 2️⃣ 图片确认页 - 编辑识别结果和选择标签 ![确认页](./image/5.png) #### 3️⃣ 更多功能截图请查看./image目录 ## 🏗️ 项目架构 ``` ingredient/ ├── backend/ # 后端服务 (Node.js + Express) │ ├── config/ # 配置文件 │ ├── controllers/ # 控制器 │ ├── models/ # 数据模型 │ ├── routes/ # 路由 │ ├── middleware/ # 中间件 │ ├── utils/ # 工具函数 │ └── uploads/ # 上传文件目录 ├── image/ # 项目截图 ├── uniapp/ # 前端应用 (uni-app + uView UI) │ ├── src/ │ │ ├── pages/ # 页面组件 │ │ ├── api/ # API 接口 │ │ ├── common/ # 公共模块 │ │ ├── components/ # 组件 │ │ ├── static/ # 静态资源 │ │ └── utils/ # 工具函数 │ └── unpackage/ # 编译输出目录 ├── 功能需求文档.md # 详细功能需求文档 └── README.md # 项目说明文档 ``` ## 🛠️ 技术栈 ### 前端 - **框架**: uni-app (Vue 2) - **UI 组件**: uView UI - **目标平台**: 微信小程序 - **开发工具**: HBuilderX ### 后端 - **运行时**: Node.js (v16+) - **框架**: Express.js - **数据库**: MongoDB + Mongoose - **文件上传**: Multer - **OCR 服务**: Tesseract.js - **HTTP 请求**: Axios ## 🚀 快速开始 ### 环境要求 - Node.js >= 16.0.0 - MongoDB >= 4.4 - HBuilderX (前端开发) - 微信开发者工具 ### 1. 克隆项目 ```bash git clone cd ingredient ``` ### 2. 启动 MongoDB **本地 MongoDB** ```bash # Windows net start MongoDB # Docker docker run -d -p 27017:27017 --name mongodb mongo:latest ``` ### 3. 配置并启动后端 ```bash # 进入后端目录 cd backend # 安装依赖 npm install # 配置环境变量 cp .env.example .env # 编辑 .env 文件,配置 MongoDB 连接字符串等 # 启动服务(开发模式) npm run dev ``` ### 4. 启动前端 **使用 HBuilderX**: 1. 使用 HBuilderX 打开 `uniapp` 目录 2. 点击菜单「运行」→「运行到小程序模拟器」→「微信开发者工具」 3. 在微信开发者工具中预览效果 **或使用命令行**: ```bash cd uniapp # 安装依赖 npm install # 启动 H5 开发服务器 npm run dev:h5 ``` ## 📖 API 接口文档 ### 基础信息 - **基础 URL**: - **响应格式**: ```json { "code": 200, "message": "成功", "data": {} } ``` ### 接口列表 | 接口 | 方法 | 说明 | |------|------|------| | `/health` | GET | 健康检查 | | `/images/upload` | POST | 上传图片 | | `/images/:id` | GET | 获取图片信息 | | `/ocr/recognize` | POST | OCR 文字识别 | | `/ai/analyze` | POST | AI 智能分析 | | `/records` | GET | 获取历史记录列表 | | `/records/:id` | GET | 获取记录详情 | | `/records/:id` | DELETE | 删除记录 | | `/records/batch-delete` | POST | 批量删除 | | `/records/all` | DELETE | 清空所有记录 | ### 接口示例 **上传图片**: ```bash POST /api/images/upload Content-Type: multipart/form-data 参数:image (File) ``` **OCR 识别**: ```bash POST /api/ocr/recognize Content-Type: application/json { "imageId": "65f1234567890abcdef" } ``` **AI 分析**: ```bash POST /api/ai/analyze Content-Type: application/json { "imageId": "65f1234567890abcdef", "ocrText": "配料:小麦粉、白砂糖...", "prompt": "特殊饮食需求" } ``` 详细 API 文档请查看 [功能需求文档.md](./功能需求文档.md) ## 📝 功能特性 ### 已实现功能 ✅ - [x] 拍照/相册选择配料表图片 - [x] OCR 自动识别配料表文字(Tesseract.js) - [x] AI 提取营养成分和矫正错别字 - [x] 个性化提示词输入 - [x] AI 智能分析营养成分 - [x] 添加剂详细解读和安全性评估 - [x] 过敏原提示 - [x] 个性化食用建议 - [x] 历史记录管理(增删改查) - [x] 图片上传和管理 - [x] 前后端联调 ### 计划中功能 📋 - [ ] 用户登录系统 - [ ] 云端数据同步 - [ ] 数据统计分析 - [ ] 分享功能 - [ ] 食品对比功能 - [ ] 每日摄入统计 ## 🔧 配置说明 ### 后端环境变量 (.env) ```env # 服务器配置 PORT=3000 NODE_ENV=development # MongoDB 配置 # 跨域配置 # OCR API 配置(可选,开发环境使用 Tesseract.js) OCR_API_KEY=your_ocr_api_key OCR_SECRET_KEY=your_ocr_secret_key # AI API 配置(可选,开发环境使用模拟数据) AI_API_KEY=your_ai_api_key AI_API_URL=https://api.ai-service.com/v1/chat ``` ### 前端 API 配置 编辑 `uniapp/src/api/index.js`: ## 🧪 测试 ### 后端测试 ```bash cd backend # 运行测试 npm test # 测试 AI 接口 npm run test:ai ``` ### 前端测试 - 使用微信开发者工具的调试面板 - 查看 Network 请求 - 查看 Console 日志 ## 📦 部署 ### 后端部署 ```bash # 安装 PM2 npm install -g pm2 # 生产环境配置 export NODE_ENV=production export MONGODB_URI=你的生产数据库连接 # 启动服务 pm2 start app.js --name ingredient-api pm2 save pm2 startup ``` ### 前端部署 1. **微信小程序**: - 在 HBuilderX 中编译为微信小程序 - 上传代码到微信小程序后台 - 提交审核并发布 2. **H5 版本**: - 使用 HBuilderX 发行 H5 - 部署到静态文件服务器 ## 📊 数据库设计 ### Image 集合 ```javascript { _id: ObjectId, url: String, filename: String, originalName: String, mimetype: String, size: Number, createdAt: Date } ``` ### Record 集合 ```javascript { _id: ObjectId, imageId: ObjectId, ocrText: String, prompt: String, result: { score: String, scoreDescription: String, nutrition: { items: [] }, additives: [], allergens: { tags: [], warning: String }, suggestions: [] }, tags: [String], createdAt: Date, updatedAt: Date } ``` ## 🎨 UI 设计 ### 主题色 - 主绿色:#07C160 - 深绿色:#06AD56 - 浅绿色:#E8F5E9 ### 评分等级颜色 - 优秀(A+/A):绿色 - 良好(B+/B):浅绿色 - 一般(C+/C):黄色 - 较差(D/F):红色 详细 UI 规范请查看 [功能需求文档.md](./功能需求文档.md) ## 📚 文档 - [功能需求文档](./功能需求文档.md) - 详细的功能需求和技术规范 - [后端文档](./backend/README.md) - 后端服务详细说明 - [前端文档](./uniapp/README.md) - 前端应用详细说明 ## 🤝 贡献 欢迎贡献代码、提出建议或报告问题! 1. Fork 本仓库 2. 创建特性分支 3. 提交更改 4. 推送到分支 5. 开启 Pull Request ## 📄 许可证 MIT License ## 🙏 致谢 感谢以下开源项目: - uni-app - uView UI - Express.js - MongoDB - Tesseract.js ## 📞 联系方式 如有问题或建议,请通过以下方式联系: - 提交 Issue - 发送邮件至项目维护者