========【重要提示:主页置顶文章找我咨询】=======
博主介绍:👉全网个人号和企业号粉丝40W+,每年辅导几千名大学生较好的完成毕业设计,不断的进行新技术的项目实战👈
可定制,需求的各位可以先收藏起来
1. 项目概述
1.1 项目名称
基于大语言模型的食堂语音反馈分析系统
1.2 项目背景
高校食堂通常通过纸质意见箱、即时聊天工具或分散表单收集学生反馈,这类方式存在录入效率低、反馈内容不规整、问题定位慢、商铺归档不直观等问题。本项目围绕“语音输入 + 自动分析 + 商铺级展示”构建一个可演示、可运行的毕业设计系统。
1.3 项目目标
-
支持用户通过浏览器录入食堂反馈语音。
-
自动完成语音转文字、文本清洗和结构化语义分析。
-
将分析结果归档到对应商铺卡片。
-
展示商铺评分、问题类别、情感分布与趋势变化图。
-
支持商铺分析报告导出。
2. 系统功能
2.1 反馈输入
-
支持浏览器麦克风录音。
-
点击开始录音时,会先清空上一轮识别文本与总览分析结果,避免旧数据残留。
-
录音结束后上传音频并提交转写任务。
-
转写完成后在输入框中展示识别文本。
-
支持用户手动修正识别文本后再提交分析。
2.2 文本处理与智能分析
-
去除口语赘词与重复片段。
-
统一食堂楼层表述、空格与重复片段等基础文本形式。
-
基于大语言模型直接从系统内已知店铺清单中完成商铺匹配,并输出情感分析、问题归类、关键摘要、紧急度和问题权重。
-
当前提示词已增强对英文别名、近音、空格拆分、拼写误差和同义表达的容错能力。
-
当模型不可用、额度不足或输出异常时,使用规则兜底返回基础分析结果;兜底结果优先保证情感、问题类别和摘要可用。
2.3 总览分析区
-
展示目标商铺。
-
展示情感倾向。
-
展示主要问题类别。
-
展示紧急程度。
-
展示综合评分。
-
展示系统摘要、情感分值和问题权重。
2.4 商铺分析展示区
-
以商铺卡片形式展示商铺名称、综合评分、情感状态、高频问题、最新摘要、反馈总数、今日反馈数和本周反馈数。
-
点击卡片可切换右侧图表联动。
-
支持商铺报告下载。
-
支持通过弹窗查看当前商铺的趋势图与问题类别占比图。
-
弹窗图表在每次打开时重新初始化,确保多次打开后仍能正常显示。
2.5 图表与报告区
-
商铺评分对比图。
-
问题类别占比图。
-
情感分布图。
-
商铺趋势变化图。
-
下载当前选中商铺报告。
-
右侧图表区支持随页面布局自适应拉伸,减少图表底部无效留白。
-
=======【重要提示:主页置顶文章找我咨询】=========
3. 技术架构
3.1 前端
-
Vue 3
-
Vite
-
Pinia
-
Vue Router
-
Element Plus
-
ECharts
-
Axios
3.2 后端
-
FastAPI
-
SQLAlchemy
-
SQLite
-
Pydantic Settings
-
Uvicorn
-
ReportLab
3.3 模型与服务
-
阿里云 DashScope 长音频转写接口
-
通义千问兼容 OpenAI 协议接口
-
已知店铺清单驱动的大语言模型商铺匹配
-
本地规则兜底分析
3.4 系统结构
系统采用前后端分离架构:
-
前端负责录音、页面交互、状态展示、图表渲染和报告下载。
-
后端负责音频接收、语音转写任务提交与轮询、文本清洗、智能分析、评分计算、数据入库和报告生成。
4. 目录结构
MealFeedbackAnalytics/
├─ backend/
│ ├─ app/
│ │ ├─ api/
│ │ ├─ core/
│ │ ├─ db/
│ │ ├─ models/
│ │ ├─ schemas/
│ │ ├─ services/
│ │ └─ utils/
│ ├─ data/
│ │ └─ seeds/
│ ├─ reports/
│ ├─ storage/
│ │ └─ audio/
│ ├─ main.py
│ ├─ pyproject.toml
│ └─ requirements.txt
├─ frontend/
│ ├─ src/
│ │ ├─ api/
│ │ ├─ components/
│ │ ├─ router/
│ │ ├─ stores/
│ │ ├─ styles/
│ │ └─ views/
│ ├─ index.html
│ ├─ package.json
│ └─ vite.config.ts
└─ docs/
├─ 需求文档.txt
├─ 开发方案设计文档.md
├─ 开发步骤文档.md
└─ 项目说明文档.md
5. 核心业务流程
用户打开前端页面并点击开始录音。
前端清空上一轮识别文本、分析结果和关联音频状态。
浏览器获取麦克风权限并录制音频。
录音结束后,前端将音频上传到后端。
后端提交阿里云长音频转写任务,前端轮询任务状态。
转写成功后,识别文本回填到前端输入框。
用户点击提交分析。
后端执行文本清洗、大语言模型店铺匹配、多维分析、评分计算和结果入库。
前端刷新总览分析区、商铺分析展示区和图表与报告区。
用户可下载商铺分析报告,或通过商铺卡片查看弹窗图表。
6. 数据存储说明
系统使用 SQLite 进行本地持久化,主要包含以下数据实体:
-
商铺表:存储商铺名称、分类、别名、当前评分、反馈数量等。
-
反馈表:存储音频路径、原始文本、清洗文本、语言和创建时间。
-
分析结果表:存储商铺分类、情感分值、问题分类、问题权重、摘要、紧急度和总评分。
-
商铺统计表:存储商铺情感分布、问题分布和趋势点数据。
-
评分历史表:存储商铺评分变化记录。
项目首次启动时会自动初始化数据库并导入种子商铺与样例反馈。
7. 接口说明
后端统一前缀为 http://127.0.0.1:8000/api/v1。
7.1 系统接口
-
GET /system 用途:系统健康检查。
7.2 语音转写接口
-
POST /asr/upload-and-submit 用途:上传音频并提交长音频转写任务。
-
GET /asr/tasks/{task_id} 用途:查询转写任务状态与识别结果。
-
POST /asr/tasks/submit 用途:手动提交转写任务。
7.3 文本分析接口
-
POST /feedback/analyze 用途:提交文本分析请求,返回商铺、情感、问题类别、权重、摘要和评分结果。
7.4 商铺接口
-
GET /shops 用途:获取商铺卡片列表数据。
-
GET /shops/{shop_id} 用途:获取单个商铺的详细图表数据。
7.5 图表汇总接口
-
GET /dashboard/summary 用途:获取首页图表与聚合统计数据。
7.6 报告接口
-
GET /report/shops/{shop_id} 用途:下载指定商铺 PDF 报告。
8. 运行环境
8.1 后端环境
-
Python 3.12 及以上
-
建议使用 uv
-
操作系统:Windows / WSL / Linux 均可
8.2 前端环境
-
Node.js 18 及以上
-
npm
9. 环境变量配置
后端通过 backend/.env 读取配置,至少需要以下变量:
OSS_BUCKET_NAME=你的 OSS Bucket 名称
OSS_ACCESS_KEY_ID=你的 OSS AccessKey ID
OSS_ACCESS_KEY_SECRET=你的 OSS AccessKey Secret
DASHSCOPE_API_KEY=你的 DashScope API Key
9.1 OSS 相关变量如何申请
本项目的音频文件会先上传到阿里云对象存储 OSS,再由阿里云长音频转写服务读取,因此需要先准备一个 OSS Bucket 和对应访问凭据。
第一步:注册并登录阿里云账号
-
打开阿里云官网并完成账号注册。
-
登录后进入控制台。
第二步:开通 OSS 服务
-
在控制台搜索 对象存储 OSS。
-
首次进入时按页面提示开通 OSS 服务。
第三步:创建 Bucket
-
进入 OSS 控制台后,点击“创建 Bucket”。
-
Bucket 名称 需要全局唯一,这个值就是后面要填写的 OSS_BUCKET_NAME。
-
地域 建议选择与语音转写服务一致或较近的地域,减少上传与读取延迟。
-
存储类型 选择标准存储即可。
-
读写权限 建议选择“私有”,不要直接公开音频文件。
创建完成后,你会得到一个 Bucket 名称,例如:
OSS_BUCKET_NAME=meal-feedback-audio-demo
第四步:创建 AccessKey
-
在阿里云控制台右上角头像菜单中进入 AccessKey 管理。
-
创建一组新的 AccessKey。
-
系统会给出:
-
AccessKey ID
-
AccessKey Secret
-
这两个值分别填写到:
OSS_ACCESS_KEY_ID=你的 AccessKey ID
OSS_ACCESS_KEY_SECRET=你的 AccessKey Secret
注意事项:
-
AccessKey Secret 只在创建时完整展示一次,必须当场保存。
-
不要把这两个值提交到 Git 仓库,也不要截图发给别人。
-
建议专门为本项目创建一组最小权限的访问凭据。
9.2 DASHSCOPE_API_KEY 如何申请
本项目使用阿里云百炼平台 DashScope 的两个能力:
-
长音频语音转写
-
通义千问大语言模型分析
因此 DASHSCOPE_API_KEY 是整个系统最关键的一个配置项。
第一步:进入 DashScope / 阿里云百炼平台
-
登录阿里云账号后,进入百炼或 DashScope 控制台。
-
确认已经开通相关模型与 API 服务。
第二步:创建 API Key
-
在控制台中找到 API Key 管理 或 密钥管理。
-
创建新的 API Key。
-
创建完成后复制该密钥,这个值就是:
DASHSCOPE_API_KEY=你的 DashScope API Key
第三步:确认账号已开通所需能力
至少需要确认两类能力可用:
-
音频转写能力
-
通义千问文本模型能力
如果没有开通,对应接口调用时会报权限不足、额度不足或服务未授权。
补充说明:
-
如果 DashScope 控制台开启了“仅使用免费额度”模式,且免费额度耗尽,模型分析接口可能返回 403 Forbidden。
-
出现该情况时,语音转写仍可能正常,但文本分析会退回规则兜底结果。
-
若需要持续使用大语言模型完成店铺匹配与分析,需要在控制台确认模型服务可用状态与额度设置。
9.3 .env 文件应该怎么写
在 backend/ 目录下创建 .env 文件,填写你自己申请到的真实值,例如:
OSS_BUCKET_NAME=meal-feedback-audio-demo
OSS_ACCESS_KEY_ID=你的真实AccessKeyID
OSS_ACCESS_KEY_SECRET=你的真实AccessKeySecret
DASHSCOPE_API_KEY=你的真实DashScopeApiKey
说明:
-
DASHSCOPE_API_KEY 同时用于阿里云长音频转写和通义千问分析接口。
-
仓库中的 .env.example 只应作为字段参考,实际部署时应替换为你自己的有效凭据。
-
前端默认请求地址为 http://127.0.0.1:8000/api/v1,如需修改,可通过 VITE_API_BASE_URL 覆盖。
网硕互联帮助中心



评论前必须登录!
注册