菜谱智能问答2025

菜谱智能问答2025

项目概述

菜谱智能问答项目基于Django框架,融合Neo4j图数据库和大语言模型技术,旨在构建一个智能化、语义丰富的菜谱知识图谱问答系统。项目通过构建菜谱相关知识图谱,支持用户以自然语言查询和交互,提升用户获取菜谱信息的效率和体验。

该项目解决了传统菜谱信息检索难以理解用户自然语言需求、数据孤立且关系不明确的问题,利用图数据库的关系表达优势和大语言模型的语义理解能力,实现智能问答和知识图谱的高效结合。

目标用户群体包括家庭厨师、美食爱好者、烹饪教学人员以及任何希望通过智能问答快速获取菜谱信息的用户。

技术架构

整体架构设计

项目采用典型的Web应用三层架构:

  • 表现层(前端):基于Django模板系统实现动态页面渲染,结合Bootstrap和多种JS插件,提供响应式交互界面。
  • 业务逻辑层(后端):Django视图处理用户请求,协调图数据库访问、用户管理和问答生成等核心功能。
  • 数据层:采用Neo4j图数据库存储和管理菜谱知识图谱,结合关系模型和节点数据,支持复杂查询和关系推断。

同时,项目引入大语言模型(LLM)API作为智能问答引擎,增强自然语言理解和答案生成能力。

主要技术栈

  • 后端框架:Python Django
  • 数据库
  • 关系型数据库(Django默认,用于用户信息等)
  • 图数据库:Neo4j(通过py2neo库交互)
  • 自然语言处理:jieba分词
  • 智能问答:OpenAI大语言模型API
  • 前端技术
  • Django模板语言(DTL)
  • Bootstrap框架
  • JavaScript插件(FullCalendar、日期时间选择器等)
  • 其他
  • 用户认证扩展基于Django自带认证系统
  • 静态文件管理与资源优化

模块间关系和交互

  • accounts模块负责用户身份认证和信息管理,为系统提供安全的访问控制和用户个性化支持。
  • myneo4j模块作为系统核心,管理菜谱知识图谱数据,处理图谱查询和智能问答请求,依赖accounts模块用户数据,调用外部LLM服务生成答案。
  • templates目录提供前端展示页面,与后端视图紧密配合,实现用户界面展示、交互和数据呈现。
  • static目录支撑前端样式和脚本,为页面功能和视觉效果提供基础资源。

整体架构中,用户通过前端页面提交请求,经由Django视图处理后访问myneo4j模块的图谱数据和问答服务,系统结合Neo4j数据库和大语言模型,最终将结果动态渲染回前端,实现完整的智能问答流程。

功能模块

1. myneo4j模块(知识图谱与智能问答核心)

  • 图谱管理:定义图谱节点(MyNode)和问答数据(MyWenda)模型,支持复杂节点和关系的创建、维护。
  • 数据库操作:封装Neo4j访问工具(pyneo_utils.py),实现高效查询和关系获取。
  • 智能问答:结合jieba分词和OpenAI大语言模型API,实现对用户自然语言提问的语义解析和答案生成。
  • 业务视图:处理图谱查询请求、问答交互,动态生成页面数据,支持前端数据展示。
  • 路由设计:RESTful接口,支持图谱查询、问答输入、数据初始化等多种请求。
  • 扩展性:模块设计清晰,便于后续功能扩展和维护。

2. accounts模块(用户管理与认证)

  • 用户模型扩展:基于Django AbstractUser,增加自定义字段如密码加密存储支持。
  • 认证流程:实现用户注册、登录、登出功能,表单层严格验证输入合法性。
  • 信息维护:用户可编辑个人信息,支持头像上传和资料更新。
  • 后台管理:管理员通过Django admin界面管理用户,支持密码加密和界面定制。
  • 安全机制:访问权限控制(login_required装饰器),保障用户数据安全。

3. templates目录(前端页面模板)

  • 基础布局:base.html定义全局结构和导航,保证页面风格一致。
  • 首页功能入口:index.html展示系统整体功能入口和交互界面。
  • 用户认证页:login.html和register.html提供用户登录和注册表单。
  • 用户信息页:my_info.html支持用户资料查看和编辑。
  • 图谱展示页:show.html集成FullCalendar和时间选择器,动态展示知识图谱数据。
  • 智能问答页:wenda.html和wenda2.html支持问答输入和结果展示,后者可能支持更丰富的聊天交互体验。
  • 技术特点:采用Django模板语言,结合Bootstrap实现响应式设计,集成多种JS插件提升用户体验。

模块协作关系

  • accounts模块保障用户身份验证与权限管理,支持myneo4j模块的问答数据关联。
  • myneo4j模块提供知识图谱数据和智能问答服务,供前端页面调用和展示。
  • templates目录作为前端视图层,承载所有页面渲染,与后端视图和模块数据紧密互动。
  • static资源目录支持前端样式和脚本,为各页面功能提供基础支持。

项目结构

xy25_neo4j_cookbook/
├── accounts/          # 用户管理模块
│   ├── models.py      # 用户模型定义
│   ├── forms.py       # 登录、注册表单
│   ├── views.py       # 用户认证与信息视图
│   ├── urls.py        # 用户相关路由
│   └── admin.py       # 后台用户管理
├── myneo4j/           # 知识图谱与智能问答核心模块
│   ├── models.py      # 图谱节点和问答模型
│   ├── pyneo_utils.py # Neo4j数据库操作工具
│   ├── views.py       # 图谱查询与问答视图
│   ├── urls.py        # 图谱与问答路由
│   └── admin.py       # 预留后台管理扩展
├── templates/         # 前端页面模板
│   ├── base.html      # 基础布局
│   ├── index.html     # 首页
│   ├── login.html     # 登录页
│   ├── register.html  # 注册页
│   ├── my_info.html   # 用户信息页
│   ├── show.html      # 图谱展示页
│   ├── wenda.html     # 智能问答页
│   └── wenda2.html    # 智能问答扩展页
├── static/            # 静态资源(CSS、JS、图片等)
├── datas/             # 数据文件(词典、菜谱CSV等)
├── xy_neo4j/          # Django项目配置目录
│   ├── settings.py    # 项目配置文件
│   ├── urls.py        # 全局路由配置
│   └── wsgi.py        # WSGI入口
├── manage.py          # Django管理脚本
├── requirements.txt   # 依赖库列表
└── README.md          # 项目说明文档

关键目录和文件作用

  • accounts/models.py:定义用户扩展模型UserProfile,支持自定义字段。
  • myneo4j/models.py:定义知识图谱节点和问答数据模型,支撑图谱存储。
  • myneo4j/pyneo_utils.py:封装Neo4j操作,简化复杂图数据库交互。
  • templates/base.html:全局页面结构模板,保证一致的界面样式。
  • templates/show.html:核心图谱数据展示页面,集成交互插件。
  • xy_neo4j/settings.py:项目配置中心,包含数据库、静态文件、应用注册等。
  • manage.py:Django项目管理工具,支持启动和管理项目。

部署和运行

环境要求

  • Python 3.8及以上版本
  • Django 3.x或更高版本
  • Neo4j图数据库(建议Neo4j 4.x及以上)
  • py2neo Python库
  • jieba分词库
  • OpenAI API访问权限及密钥
  • 依赖库列于requirements.txt

安装和配置步骤

  1. 环境准备
  • 安装Python及pip
  • 创建并激活虚拟环境(推荐)
  • 安装依赖:pip install -r requirements.txt
  1. 数据库配置
  • 安装并启动Neo4j服务
  • 配置Neo4j连接参数(URI、账号、密码)于myneo4j/pyneo_utils.py或Django settings中
  1. OpenAI API配置
  • 申请OpenAI API密钥
  • 在项目配置文件或环境变量中设置API密钥,确保myneo4j模块调用接口正常
  1. Django配置
  • 配置xy_neo4j/settings.py数据库连接及静态文件路径
  • 执行迁移命令:python manage.py migrate
  • 创建超级用户:python manage.py createsuperuser
  1. 数据导入(可选)
  • 使用项目中提供的datas/recipe.csv等数据,初始化图谱数据

启动方式

  • 运行Django开发服务器:
  python manage.py runserver
  • 访问默认地址http://127.0.0.1:8000/,进入首页,开始使用菜谱智能问答功能。

以上即为菜谱智能问答项目的整体介绍。项目通过清晰的模块划分和先进的技术整合,提供了一个功能完备、交互友好的智能菜谱问答平台,具备较强的扩展性和实用价值。


如有问题请联系作者:https://qalangtao.com 。
900

图片[1]-菜谱智能问答2025
图片[2]-菜谱智能问答2025
图片[3]-菜谱智能问答2025
图片[4]-菜谱智能问答2025
图片[5]-菜谱智能问答2025
图片[6]-菜谱智能问答2025
图片[7]-菜谱智能问答2025
图片[8]-菜谱智能问答2025
图片[9]-菜谱智能问答2025
© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享