# 菜单推荐系统 ### 介绍 本项目在Huggingface的基础上实现Chatglm2的本地部署,再结合Langchain和本地知识库实现了菜单的智能推荐,拥有菜单推荐、菜品识别、菜单规划、自由对话几种功能。NLP模型和Emmbeding模型可以在设置里自行更换,但需满足Huggingface的要求。最后,通过Gradio实现UI界面的部署。 ### 使用说明 使用前建议使用conda创建新的虚拟环境,乙方后面安装依赖包时对原有环境破坏,另外建议python>=3.10,torch>=2.0 。可以依次运行下面的命令。 ``` conda create -n caidan python=3.10 pip install -r requirements.txt ``` 安装好运行环境后在虚拟环境下运行下面代码启动UI界面。 ``` python .\UI界面.py ``` ### 功能简介 ##### 菜单推荐 基于知识库的菜单推荐:根据输入的饮食喜好,结合本地向量化的知识库进行推荐。 基于菜单的推荐:根据输入的饮食喜好,结合上传的文本或图片菜单进行推荐。 大模型推荐:根据输入的饮食喜好,模型自由发挥进行推荐。 自定义推荐:自定义随机范围,让机器随机选择。 ##### 智能识别 菜品识别: 用户上传照片,模型返回图片中可能的菜品名称。 果蔬识别:用户上传照片,模型返回图片中的果蔬名称。 补充:菜品识别和果蔬识别都是使用百度的API,需要该功能的可以去申请。没使用本地模型的是为了节省显存,追求性能且现存足够的需自行修改和微调。 ##### 菜单规划 菜单规划有两种模式,可以结合使用。 1. 根据输入的食材,返回可以制作的菜品名称。 2. 根据输入的菜品名称,返回制作的过程和细节。 ##### 自由对话 直接对接NLP模型,可以自由对话。 ### demo展示 #### 菜单推荐 ![输入图片说明](demo/%E8%8F%9C%E5%8D%95%E6%8E%A8%E8%8D%90--%E7%9F%A5%E8%AF%86%E5%BA%93.png) ![输入图片说明](demo/%E8%8F%9C%E5%8D%95%E6%8E%A8%E8%8D%90--%E8%87%AA%E5%AE%9A%E4%B9%89%E9%9A%8F%E6%9C%BA.png) #### 菜单规划 ![输入图片说明](demo/%E8%8F%9C%E5%8D%95%E8%A7%84%E5%88%92-%E5%90%AF%E5%8A%A8-%E8%8F%9C%E5%93%81.png) ![输入图片说明](demo/%E8%8F%9C%E5%8D%95%E8%A7%84%E5%88%92-%E5%90%AF%E5%8A%A8-%E9%A3%9F%E6%9D%90.png) #### 智能识别 ![输入图片说明](demo/%E8%8F%9C%E5%93%81%E8%AF%86%E5%88%AB.png) ![输入图片说明](demo/%E6%9E%9C%E8%94%AC%E8%AF%86%E5%88%AB.png) #### 自由对话 ![输入图片说明](demo/%E8%87%AA%E7%94%B1%E5%AF%B9%E8%AF%9D.png)