尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

数据采集与融合技术综合实践-途个开心-102302145-黄加鸿

数据采集与融合技术综合实践-途个开心-102302145-黄加鸿
📅 发布时间:2026/6/21 21:21:14

数据采集与融合技术综合实践:途个开心


目录
  • 数据采集与融合技术综合实践:途个开心
    • 开篇
      • 1)项目简介
      • 2)个人角色
    • 主体
      • 1)完成情况
        • 接口测试与Postman
        • React组件开发
      • 2)问题解决
    • 结语
      • 收获成长


开篇

1)项目简介

项目属性 内容
课程名称 2025综合设计——多源异构数据采集与融合应用综合实践
小组及项目简介 组名:途个开心
项目需求:随着个性化旅游需求的爆发式增长,传统碎片化的信息获取与行程管理方式已无法满足用户对效率与深度的双重追求。同时,旅行结束后的数据资产(如足迹、消费、情感记忆)往往散落在不同平台,缺乏系统的沉淀与分析。
项目目标:构建一个集智能规划、实时地图联动、全生命周期旅行记录与多维数据洞察于一体的 Web 应用平台。
技术路线:
• 数据采集层:高德地图API实时地理数据获取 + 旅游信息采集 + AI清洗去重
• 数据存储层:SQLite/PostgreSQL关系型数据库 + Redis缓存机制 + 结构化行程数据建模
• 后端逻辑层:Python FastAPI异步框架 + 阿里云Qwen大模型Agent + Pydantic数据验证
• 算法层:高德地图多模式路线规划API + 旅行人格DNA量化算法 + 经济学模型分析
• 前端交互层:React 18数据流UI + 高德地图交互式组件 + 生态流光可视化仪表盘
团队成员学号 102302132(组长),102302133,102302134,102302135,102302137,102302145,102302107
项目核心目标 本项目旨在打造一款全生命周期的智能旅行助手,实现以下目标:
1. 智能规划:利用 LLM 实现“一句话生成可执行路书”。
2. 地图联动:实现对话与地图的实时双向交互,所见即所得。
3. 资产沉淀:提供完善的旅行记录功能,覆盖从计划到完成的全过程。
4. 深度分析:通过可视化数据看板,为用户提供上帝视角的旅行行为分析报告。

产品简介

我们小组项目“途个开心”是一款集智能规划、地图联动与数据记录和洞察于一体的智能旅行助手Web应用。系统后端采用Python FastAPI与阿里云Qwen大模型,实现自然语言交互与智能行程生成;前端基于React框架构建了沉浸式的“生态流光”交互界面。通过独创的“旅行仪表盘”,系统可对用户历史行程进行深度分析,生成旅行人格DNA、消费模型及心理诊断报告,将旅行行为转化为可量化、可沉淀的个人数字资产,旨在解决传统旅游规划中信息碎片化、行程不合理、数据资产流失等核心痛点。

产品运行截图

主页

2)个人角色

在本次项目中,我主要承担 测试与组件开发 的任务,具体包括:使用Postman对FastAPI后端接口进行测试,确保业务逻辑的健壮性与数据交互的准确性;负责开发多个可复用的React基础UI组件;并初步探索了向量数据库在智能推荐场景中的应用。这一角色使我深刻体会到,在前后端分离的现代架构中,严谨的测试是系统稳定的前提,而高内聚、可复用的组件化开发则是提升团队协作效率与项目可维护性的关键。

主体

1)完成情况

接口测试与Postman

首先是安装工具Postman:

postman安装

进行接口测试之前要先启动后端服务器,运行后端的main.py建立起服务器:

后端运行

然后回到Postman,新建一个测试,下面以测试AI聊天接口为例演示接口测试的基本流程:

创建新测试之后我们选择以POST方法发送请求,填入AI聊天的URL:/api/chat,然后在想要发送的数据body上填写参数比如发送一个“"message": "福州有什么好玩的地方?"”的JSON格式的数据:

填参数

填完之后发送请求查看收到的响应:

响应

更换问题再进行其他测试:

其他测试

从以上演示,可以看到所测试的接口对于发送的请求返回的状态码均为200(成功),说明对于AI聊天这一接口的测试没什么太大问题。

而对于其他接口的测试,比如用户登录、行程生成、地图搜索等接口,流程基本不变,就不一一演示了。测试时要注意url和传递的参数格式,可以像上面以使用测试的发送比如向AI提问来测试接口,也可以编写简单的脚本文件直接测试接口是否异常然后抛出问题,这样做也便于修改项目中异常的接口代码。

React组件开发

项目中,我还负责开发了一部分React组件,构成了项目的前端交互基石。组件库结合Tailwind CSS实现独特的“生态流光”视觉效果。以下通过两个典型组件展示我的开发实践:

1.AddTripModal组件 - 多功能旅行记录模态框

记录旅行

核心代码

// 图片上传与预览功能
const handleImageUpload = async (e) => {const files = Array.from(e.target.files);const previewImages = files.map(file => ({file,preview: URL.createObjectURL(file),name: file.name,isExisting: false}));setImages(prev => [...prev, ...previewImages]);
};// 智能数据回填(编辑模式)
useEffect(() => {if (tripToEdit) {setFormData({name: tripToEdit.name || '',destination: tripToEdit.destination || '',// ... 其他字段回填});// 处理已存在图片if (tripToEdit.images) {const existingImages = tripToEdit.images.map(url => ({preview: `http://localhost:8000${url}`,name: '已存图片',isExisting: true}));setImages(existingImages);}}
}, [tripToEdit]);

这是一个实现了创建、编辑、图片上传于一体的表单组件,支持完整的CRUD操作。根据tripToEdit参数自动切换新建/编辑模式,同时支持拖拽上传和图片预览,交互式标签管理,支持键盘操作。

2.BudgetCalculator组件 - 可视化旅行预算计算器

预算计算器

核心代码

// 核心计算逻辑(使用useMemo优化性能)
const { list: calculatedList, grandTotal, perPerson } = useMemo(() => {let total = 0;const list = items.map(item => {let subTotal = 0;// 根据类型动态计算if (item.type === 'daily') subTotal = item.amount * days * people;else if (item.type === 'fixed') subTotal = item.amount * people;else if (item.type === 'one-time') subTotal = item.amount;total += subTotal;return { ...item, total: subTotal };});return { list, grandTotal: total, perPerson: Math.round(total / (people || 1)) };
}, [items, days, people]);// SVG环形图组件
const DonutChart = ({ data, total }) => {const r = 40;const circ = 2 * Math.PI * r;return (<svg viewBox="0 0 100 100">{data.map((item, i) => {const pct = item.total / (total || 1);return (<circlekey={i} cx="50" cy="50" r={r}stroke={item.color}strokeWidth="10"strokeDasharray={`${pct * circ} ${circ}`}className="transition-all duration-700"/>);})}</svg>);
};

这是一个预算规划工具,内置可视化图表和预设模板,实际使用时可以在费用明细下面对生态住宿、绿色出行、地道美食、景点游玩乐、特产购物、综合杂项这些选项卡中设置旅游出行的预算、实际支出等信息,通过预算计算器计算出预算消耗并进行SVG环形图可视化。

另外,还使用了Tailwind CSS的@apply指令实现“生态流光”的视觉效果,实现了高性能的样式渲染。

/* 通过Tailwind CSS实现 */
.glass-effect {@apply bg-white/10 backdrop-blur-sm border border-white/20;
}.gradient-border {@apply border-2 border-transparent bg-gradient-to-r from-emerald-400 to-cyan-400 bg-clip-border;
}.hover-glow {@apply hover:shadow-lg hover:shadow-emerald-500/20 transition-shadow duration-300;
}

在项目中的具体作用就是使组件具有毛玻璃效果、渐变边框和悬浮发光效果等,虽然这些看起来像"没用"的代码,但是设计系统的核心样式,可以让"途个开心"的界面看起来更现代、更有科技感。

向量数据库

我们项目引入了向量数据库ChromaDB来进行一部分的数据管理,项目里rag_engine.py、llm_engine.py等文件是管理向量数据库的核心文件。我没有参与此部分开发,但在自己工作平台上测试过向量数据库的使用,仅此而已,对此部分有疑问可移步参考同组其余成员的博文。

2)问题解决

问题1:React组件状态管理混乱

在AddTripModal组件中,编辑模式和新建模式共用同一状态,导致数据互相污染。组件在编辑完成后,下次打开新建模态框时仍显示之前的数据,发现useEffect依赖项未正确处理组件卸载。

解决方法:

// 修复后的useEffect
useEffect(() => {if (!isOpen) return; // 关键:只在打开时执行const resetState = () => {setFormData(initialFormState);setImages([]);setError('');setSuccess('');};if (tripToEdit) {// 编辑模式:回填数据console.log('📝 进入编辑模式');setFormData({name: tripToEdit.name || '',destination: tripToEdit.destination || '',// ...其他字段});} else {// 新建模式:重置状态console.log('✨ 进入新建模式');resetState();}// 清理函数:组件卸载时释放图片预览URLreturn () => {images.forEach(img => {if (!img.isExisting && img.preview) {URL.revokeObjectURL(img.preview);}});};
}, [isOpen, tripToEdit]); // 依赖isOpen而不是空数组

结语

收获成长

我在技术能力、工程思维和团队协作等方面都获得了显著成长。"途个开心"不仅是课程项目,更是我技术成长道路上的重要里程碑。从测试端到开发端的多任务锻炼,再到能够独立开发复杂组件;从对前后端协作的模糊认识,到理解完整的Web应用架构,这个过程充满挑战,但也收获满满。

本文作者 江上雁

博文地址 https://www.cnblogs.com/jh2680513769/p/19423542

转载本文请注明作者及原文链接,谢谢!

相关新闻

  • PyTorch CUDA out of memory错误环境层面排查
  • Linux下PyTorch安装教程GPU版本:基于Miniconda的轻量级方案
  • SSH连接超时自动重连脚本编写示例

最新新闻

  • 2026年当下湖南集训画室机构怎么选择:聚焦成果与体系的双重考量 - 品牌鉴赏官2026
  • 让Windows文件管理器焕然一新:ExplorerBlurMica透明背景美化全攻略
  • 中山GEO优化咨询电话|融景科技中山本土直营对接方式与服务介绍 - Guangdong1
  • 从黑盒到白盒:基于推理溯源图的AI模型对抗样本检测与防御
  • 今日开源[第21期]yifanfeng97/Hyper-Extract - zhang
  • Java密码存储安全升级:从MD5到Bcrypt与Argon2实战指南

日新闻

  • 2026速览惠州叛逆青少年学校前十大排名名单出炉 - 武汉中职最新信息发布
  • 2026上饶白蚁消杀哪家好?15年本土2大权威白蚁防治公司推荐(金盾虫控/青蚁卫士) - 我叫一
  • 天龙八部单机版终极数据管理工具:5个技巧快速掌握游戏数据编辑

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号