You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
# 菜单推荐系统
### 介绍
本项目在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 )