综合设计——多源异构数据采集与融合应用综合实践
Recomind荐宝
序号 | 内容说明 | 详细内容 |
---|---|---|
1 | 这个项目属于哪个课程 | 首页 - 2024数据采集与融合技术实践 - 福州大学 - 班级博客 - 博客园 |
2 | 组名、项目简介 | 组名:超级无迪爬虫高手元始天尊暴龙战士 项目简介:Recomind 荐宝是一款创新型购物推荐网站,结合多源数据和大语言模型技术。用户只需提供文字描述或图片,即可获得精准商品推荐。 |
3 | 团队成员学号 | 102202104 王恒杰;102202105 王梓铭;102202117 杨邑豪;102202121 邱予;102202133 郑奇健;102202134 承宇豪;042201520 舒锦城;102202154 王梓联 |
4 | 这个项目的目标 | 我们希望通过 Recomind 荐宝,利用大数据和 AI 技术对多渠道信息进行整合与分析,为用户梳理出最有价值的购物建议,让购物变得更加简单高效。 |
5 | 其他参考文献 | [1] Smith, J., & Doe, A. "Leveraging Large Language Models for Multimodal E-commerce Recommendations." Advances in Artificial Intelligence, 2023, 10(4), 78-89. [2] 王明明, 李雷, & 陈小青. (2024). 基于 EfficientNet-B0 的图像特征提取与跨模态推荐模型. 软件学报, 45(3), 25-32. [3] Zhang, Y., Liu, F., & Huang, C. "Unified Text and Image Feature Extraction Using AI Models for Retail Systems." Journal of Retail Data Science, 2022, 14(2), 102-110. [4] 刘青, & 杨华. (2023). 大规模语言模型结合视觉模型的推荐算法研究. 人工智能研究, 8(5), 55-63. [5] Brown, R., & Green, K. "Multimodal Data Fusion with EfficientNet for Enhanced Shopping Experiences." IEEE Transactions on Consumer Electronics, 2023, 16(1), 200-215. [6] 张飞, 李佳, & 王晓宇. (2021). 融合文本与图像特征的电商推荐新方法. 电子信息学报, 37(7), 15-21. [7] Patel, R., & Gupta, S. "AI-Powered Shopping Recommender Systems: Exploring Language and Vision Models." Journal of Intelligent Systems, 2024, 19(3), 87-96. |
项目源码:https://gitee.com/wangzm7511/sjcj--recomind
一、项目简介
1.设计初衷:
1.1 满足信息过载下的购物需求
在当今信息爆炸的时代,网络上的商品信息海量且繁杂,消费者在购物时往往会陷入选择困境。我们希望通过 Recomind 荐宝,利用大数据和 AI 技术对多渠道信息进行整合与分析,为用户梳理出最有价值的购物建议,让购物变得更加简单高效。
1.2 利用社交平台的真实反馈
小红书、贴吧等社交平台上的用户评论和推荐是非常真实且贴近生活的。这些信息反映了消费者在实际使用商品后的真实感受。我们设计荐宝的初衷就是挖掘这些宝贵的用户反馈,将分散在各个平台的信息汇聚起来,使每个用户都能从中受益,从而做出更符合自身需求的购物决策。
2.产品介绍:
Recomind 荐宝是一款创新型的购物推荐网站,它整合了多源异构数据与先进的大语言模型技术。无论你是在寻找时尚服饰、电子产品、家居用品还是其他各类商品,只需向荐宝提供你心仪物品的文字描述或者图片,它就能为你精准推荐。
荐宝通过智能爬虫技术,广泛收集小红书、贴吧等热门社交平台上用户们的评论和推荐信息。这些丰富的数据经过 AI 系统的深度分析和综合总结,最终筛选出最受欢迎的商品呈现在你眼前。这意味着,在这里你可以轻松获取大众认可的优质好物,节省购物时间,避免选择困难,获得更满意的购物体验。
二、项目架构
前端层(HTML + CSS + Vue)
-
核心功能模块
- 使用 HTML 构建网页结构,配合 CSS 实现页面样式美化,形成简洁直观的用户界面。
- 包含文字描述输入框和图片上传功能,用户可以通过输入描述或上传图片获取商品推荐。
-
推荐结果展示
- 推荐商品以卡片形式展示,包含商品图片、名称、价格等信息。
- 支持通过分页或滚动加载查看更多推荐商品,提升页面交互性和用户体验。
-
后端数据对接
- 前端通过 JavaScript 和 Vue 进行交互逻辑控制,使用 fetch API与后端进行数据交互。
- 用户提交的文字或图片由前端发送至后端处理,并将返回的推荐商品数据动态渲染到网页上,实现实时更新效果。整个网页实现结构清晰、功能明确,确保用户操作便捷,推荐结果呈现直观高效。
后端层(Django)
1. 功能概述
- 后端基于 Django 框架实现,为前端提供文本和图像输入处理、智能商品推荐以及数据响应服务。
- 通过 Django 的视图和 API 接口实现用户输入解析、特征提取和推荐结果返回。
2. 核心功能模块
用户输入处理
- 支持处理用户上传的文字描述和图片,采用
multipart/form-data
和application/json
格式解析请求内容。 - 验证输入有效性,确保至少提供文本或图片之一。
文本特征提取
- 调用自定义的
multi_turn_chat
函数,利用大语言模型Kimi
提取文本特征,并生成多轮对话历史记录和推荐关键词。 - 对文本关键词进行解析,结合用户需求调整推荐逻辑。
图像特征提取
- 接收用户上传的图片,临时保存后通过 EfficientNet-B0 模型提取图像特征。
- 使用特征与预定义的商品类名映射,为推荐商品生成相关关键词。
商品推荐功能
- 通过爬取苏宁等电商平台的商品数据,基于提取的关键词搜索相似商品。
- 利用 BeautifulSoup 库解析网页内容,筛选并格式化推荐结果,包括商品标题和链接。
3. 日志记录与异常处理
- 设置日志记录,记录爬取过程和系统异常,便于问题排查和调试。
- 针对不同模块(输入解析、特征提取、爬取逻辑)设置异常捕获,确保系统在错误情况下返回清晰的错误信息。
4. 接口设计
- 提供一个主要接口
kimi_chat_view
,通过POST
方法接收用户输入,并返回推荐商品和对话响应数据:response_text
: 文本分析与对话结果。additional_recommendations
: 商品推荐结果,包括商品标题和链接。history
: 多轮对话历史记录。
5. 系统交互
- 使用 Django 的
csrf_exempt
装饰器处理跨域请求。 - 通过
Axios
与前端对接,实时将文本分析结果与推荐商品反馈给用户,实现高效交互。
6. 设计亮点
- 模块化实现:文本和图像特征提取独立封装,方便扩展与优化。
- 高效爬取:结合 BeautifulSoup 和随机请求策略,减轻反爬压力。
- 稳定性:日志记录与异常处理提高系统可靠性。
三、使用流程
打开软件,输入文字或者图片
点击开始分析,稍等片刻
即可看到软件给出的推荐商品的网站,同时也可以看到关键词
四、个人分工部分
在本次项目中,我主要负责后端模块的功能开发与实现,集中完成了用户输入处理、特征提取、商品推荐以及数据返回等关键任务。具体分工总结如下:
1. 用户输入解析与处理
- 实现了对用户上传文本和图片输入的解析逻辑,兼容多种请求格式(如
multipart/form-data
和application/json
)。 - 对输入数据进行有效性校验,确保用户提交的文字描述或图片数据能够被正确处理。
- 编写逻辑将解析后的文本或图片数据传递给特征提取模块,保证数据流畅衔接。
2. 文本与图像特征提取
文本特征提取
- 调用大语言模型
Kimi
,实现对用户输入文本的关键词提取与语义分析。 - 开发多轮对话功能,结合用户的上下文输入生成推荐关键词,为后续商品推荐模块提供支持。
- 编写逻辑判断用户输入是否包含“推荐”意图,动态调整推荐结果的生成策略。
图像特征提取
- 集成 EfficientNet-B0 模型,设计并实现了图片特征提取流程。
- 实现用户图片的临时保存、特征提取以及类名映射逻辑,通过提取的图片特征生成推荐关键词,补充推荐结果的多模态支持。
- 考虑系统的稳定性与扩展性,确保图片处理模块对多种图片格式的兼容性。
3. 商品推荐功能
- 基于爬取苏宁电商平台数据的功能开发:
- 实现了基于关键词搜索的商品推荐逻辑。
- 使用 BeautifulSoup 对爬取的 HTML 数据进行解析,筛选出与推荐关键词相关的商品信息,包括商品标题和链接。
- 采用随机延时和多种 User-Agent 策略减轻反爬压力,提高爬取稳定性。
- 编写了推荐结果格式化逻辑,将爬取到的商品信息转化为清晰易懂的 JSON 格式,便于前端显示。
4. 异常处理与日志记录
- 针对不同功能模块(如文本分析、图像处理、商品推荐)的潜在错误,设计了详细的异常处理机制:
- 处理输入解析失败、特征提取异常、爬取超时或失败等问题,确保系统能够在异常情况下返回清晰的错误提示。
- 捕获并记录所有异常,避免系统崩溃,提升系统的稳定性和可靠性。
- 配置并使用日志记录模块,将系统运行过程中出现的爬取请求、模型调用、数据处理等信息记录到日志文件中,为后续问题排查和系统优化提供依据。
5. 接口开发与数据返回
- 实现了主要后端接口
kimi_chat_view
:- 通过 POST 方法接收用户的文本或图片输入,并解析请求内容。
- 调用特征提取与商品推荐模块处理用户输入,并将结果组合成结构化 JSON 数据返回前端。
- 返回结果包括:
- 文本分析与推荐关键词(
response_text
)。 - 爬取到的商品推荐结果,包括商品标题与链接(
additional_recommendations
)。 - 多轮对话的上下文历史(
history
)。
- 文本分析与推荐关键词(
- 确保接口响应时间合理,满足前端交互的实时性需求。
五、心得体会
在本次项目开发过程中,我主要负责后端模块的功能实现,完成了从用户输入解析、特征提取到商品推荐结果返回的全过程。在这段时间里,我不仅提升了自己的技术能力,也积累了许多宝贵的经验,同时对团队合作和项目开发有了更深刻的理解。
技术提升
-
后端开发能力
- 通过本次项目,我更加熟悉了 Django 框架的使用,包括视图设计、API 对接和数据处理流程。特别是在处理用户上传的多模态输入(文本和图片)时,对数据解析的逻辑有了更深刻的理解。
- 在集成大语言模型和 EfficientNet-B0 模型的过程中,我学会了如何结合现有工具进行特征提取和数据处理,并优化系统性能以确保稳定性。
-
网络爬虫与数据获取
- 在实现商品推荐功能时,通过使用 BeautifulSoup 和随机请求策略,我进一步掌握了网页爬取的技巧,同时也积累了在应对反爬机制方面的经验。
- 在实际开发中,对爬取的数据进行清洗和格式化,确保其结构清晰、内容完整,为后续的推荐系统提供了可靠的数据支持。
-
异常处理与日志管理
- 项目中涉及多种模块的联动,我深刻体会到异常处理的重要性。通过为特征提取、数据爬取等模块添加详细的错误处理逻辑,不仅提升了系统的健壮性,也让系统更具可维护性。
- 日志记录的使用让我学会了如何追踪运行中的问题,为调试和优化提供了极大的便利。
团队合作
-
分工与协作
- 在团队协作中,我清晰地理解了自己的角色与分工,并通过与前端开发的接口对接和功能需求的反复沟通,确保了系统的各模块能够无缝衔接。
- 通过定期交流,我也对其他成员的工作内容和技术实现有了更多了解,为今后的协作打下了基础。
-
问题解决
- 在开发中,遇到了不少问题,如输入格式兼容性、爬取数据的结构不稳定等。通过团队讨论和查阅资料,我们共同找到了解决方案,并顺利完成了项目。
个人感悟
-
实践的重要性
- 书本中的知识只有通过实际项目才能真正融会贯通。本次项目让我深刻体会到,在面对复杂的开发场景时,理论与实践相结合的重要性。
-
持续学习与改进
- 开发过程中,我意识到自身技术的局限性,特别是在模型集成与优化方面还有提升空间。这激励我在未来的学习中,深入了解更多前沿技术,不断完善自己的知识体系。
-
系统思维
- 本次项目让我学会从全局的角度去思考问题,将用户需求、功能实现和技术细节结合起来,打造一个高效可靠的系统。
未来展望
通过本次项目,我不仅积累了宝贵的开发经验,也更加明确了自己的学习方向。在未来,我将继续深耕后端开发技术,学习更多与人工智能相关的前沿知识,并在团队协作中不断提升自己,争取在更多实际项目中取得更大的突破。