基于ChatGLM与百度地图的智慧停车微信小程序的设计与实现
2024-07-23赵瀚深赵璘
关键词: ChatGLM 大模型; 智能对话引擎; 百度地图; 智慧停车; 停车服务
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2024)18-0060-04
0 引言
我国汽车保有量迅速增长,引发了停车难、车位不足和停车效率低下等问题。据2022年底数据,我国汽车保有量已达3.19亿辆,每年增加2 000万辆。然而,可供停车的车位数量远远不足以满足这一增长趋势。而且,市面上的停车App需要长时间手动操作,影响驾驶安全。据调查,截至目前,微信小程序越来越受到人们的追捧,在各个年龄段中普及[1]。由此,设计了一款智慧停车微信小程序。该小程序通过接口与百度地图进行协调联动,通过车位状态数据分析为社会公众提供反向寻车、车位导航以及停车场检索等智慧停车服务[2]。同时,对 ChatGLM 进行微调,训练其在停车领域的数据,实现 AI 智能语音助手功能。一方面,方便车主快速找到停车位,缓解由此造成的停车焦虑。另一方面可以减少车主在驾驶中使用手机的频率。具有较强的实用性。
1 研究的内容
1.1 智慧停车系统的研究内容
智慧停车系统研究旨在依托前沿科技与创造性策略,显著优化都市停车感受,有效缓解交通阻塞,提升交通流转效率,并致力于减轻对环境的不利影响。随着汽车数量的增加,传统停车方式存在效率和用户体验问题。国内外城市通过物联网技术、人工智能和大数据分析推动智慧停车发展,实现实时车位监控、智能导航和在线支付等服务。中国城市如上海、深圳、北京建设了智能停车场,通过 App 或车载设备提供实时查找和预订服务,有效缓解停车难题。在国外,智慧停车技术使用基于物联网的方法来解决在智能城市中寻找停车位的问题。所提出的智能停车系统(IPS) 由一个物联网框架组成,该框架收集实时数据,并将其发送到云端,从而向用户建议一个合适的地方,以便在附近的位置停车[3]。
1.2 ChatGLM 大模型的研究
当前,人工智能大语言模型的代表作有令人瞩目的 ChatGPT、Llama、ChatGLM、文心一言、通义千问等,它们在各种自然语言处理的基准测试中取得了惊人的成绩,也在各个领域产生了广泛的影响,例如搜索、医疗、教育、影视等[4]。ChatGLM 大模型是一款由清华大学 KEG 实验室和智谱 AI 共同训练的自然语言处理模型,拥有超过 10B 参数。该模型在文本分类、机器翻译、问答系统等多项任务中表现卓越,采用了旋转位置编码和 DeepNorm 等先进技术。在 Cora、Cite⁃Seer 和 PubMed 等数据集上取得了最优的准确率,在中英翻译数据集上也取得了领先水平的效果。除了在学术研究中的成功应用,ChatGLM 大模型还广泛应用于工业界,包括智能客服、智能问答、自动摘要、舆情分析等方面。ChatGLM 大模型是一款高性能、高效率、可扩展性良好的自然语言处理模型,无论是在学术研究领域还是在工业应用中,都能够为各种语言处理任务提供强大的支持和帮助。
1.3 百度地图的研究
百度地图在移动应用中发挥着重要的作用,为公众、企业提供了权威、可信、统一的地理信息服务[5]。其地图展示与导航功能通过高精度的地图数据呈现详细的地理信息,用户可轻松浏览地图并获取最优的出行路径规划,支持步行、驾车和骑行等多种导航模式。地点搜索与信息查询功能使用户能够通过关键词获取周边或指定区域的商家、景点等详细信息,包括地址、联系方式和用户评价。同时,定位服务与轨迹记录功能准确获取用户位置并记录活动轨迹,为实现个性化服务和位置分享提供了基础支持。这些功能的综合运用为百度地图在移动应用中的广泛应用奠定了基础,为智慧停车微信小程序的设计与实现提供了有力的技术支持和参考经验。
2 微信小程序需求分析与功能设计
2.1 需求分析
在当今的停车场景中,用户常常遭遇多种现实挑战和不便。这些挑战包括寻找合适的停车场或空闲车位的困难,以及在大型停车场中迷失方向、耗时寻找爱车的问题。不同场所的停车场,如购物中心、火车站、机场、旅游景点、医院和企业园区等,为用户提供了众多选择,但同时也带来了选择的困扰。此外,在驾驶过程中,使用手机寻找停车位,可能会分散驾驶员的注意力,从而对驾驶安全构成严重威胁。
尽管市场上的智慧停车应用提供了一些基本的车位信息,但用户在实际停车时仍需亲自寻找车位,尤其在高峰时段,这可能会导致交通拥堵和效率低下。为了解决这些问题,设计的微信小程序旨在提供全方位、便捷的停车解决方案。该小程序将适用于多种停车场景,包括但不限于商场、火车站、机场、旅游景点、医院和企业园区,以满足不同用户群体的需求。此外,该系统还提供了车位级别的导航功能,用户能够在进入停车场前预先查看并选定目标车位,从而在抵达停车场后能够直接前往指定车位,大幅缩短了寻找车位所需的时间。通过运用智能技术,不仅提升了停车管理效率,还为城市居民和游客提供了更加优质的停车服务,从而改善了整体的城市停车环境。
2.2 功能设计
根据以上需求分析,设计了微信小程序的5个功能,如表1所示。
在全国范围内,各大城市均设有众多停车场,每个停车场内部又划分为众多独立的停车车位。停车系统城市架构图,如图1所示。
在后台管理系统中,区分了普通管理员与超级管理员的不同职能。
普通管理员负责对车位信息和街景图片进行新增、删除、修改和查询操作,并负责将所有停车位的地理坐标录入系统数据库,以便用户能够使用车位导航功能(如图2所示)。
超级管理员拥有全面的权限,能够管理全国范围内的所有停车场、车位、街景图像,以及入驻城市的综合管理功能(如图3所示)。
3 技术实现
3.1 前端(微信小程序)开发
前端采用Uniapp作为微信小程序框架,该框架基于Vue.js。通过使用uni.$http.get和uni.request()等方法向后端发送请求,并接收后端返回的JSON数据,将该数据存储在变量res中。然后,将res中的信息属性赋值给当前Vue组件实例(this) 的相应属性,从而有效地将信息整合到前端组件中,最终渲染到页面上(如图4所示)。
超级管理员拥有全面的权限,能够管理全国范围内的所有停车场、车位、街景图像,以及入驻城市的综合管理功能(如图3所示)。
3 技术实现
3.1 前端(微信小程序)开发
前端采用Uniapp作为微信小程序框架,该框架基于Vue.js。通过使用uni.$http.get和uni.request()等方法向后端发送请求,并接收后端返回的JSON数据,将该数据存储在变量res中。然后,将res中的信息属性赋值给当前Vue组件实例(this) 的相应属性,从而有效地将信息整合到前端组件中,最终渲染到页面上(如图4所示)。
3.2 后端开发
后端开发采用Spring Boot结合MyBatis Plus,并使用MySQL作为后台数据库,执行多种条件的查询以快速返回结果[6]。代码遵循RESTful API设计风格,定义了功能接口以支持与微信小程序的数据交互。通过HTTP协议将数据信息从后端传递到前端。数据接口包括:用户信息、车位信息、停车场信息和入驻城市管理信息等。
微信小程序一般不会直接访问后台数据库。首先,需要向Web服务器发送HTTPS网络请求;其次,服务器收到HTTPS 请求后再获取相应数据[7],如图5 所示。
3.3 ChatGLM的部署与微调
在部署方面,需要确保主机上安装了NVIDIA的CUDA和cuDNN库,以支持GPU加速。根据ChatGLM的模型参数和预训练数据,使用相应的深度学习框架PyTorch进行模型加载和推理。在部署过程中,采用了模型量化技术的int4版本。
在ChatGLM的部署与微调过程中,进行了多轮实验,以优化模型在用户请求中的响应质量。然而,由于性能不稳定等诸多问题,关于大模型的优化方法和具体场景应用仍需进一步深入研究[8]。首先,采用了一个包含多个样本的微调数据集,每个样本包括用户提供的对话内容和期望的模型回复摘要。以下是微调的一些关键数据和实验结果的摘要,如表2所示。
通过多轮的微调实验,成功提高了ChatGLM 模型在特定任务中的性能,使其更加适用于实际场景的部署。这一过程不仅展示了模型在不同训练数据下的学习能力,也为实际应用中的对话系统性能优化提供了有益的经验(如图6所示)。
3.4 百度地图API的调用
地点检索输入提示服务(也被称为POI热词建议检索、在线建议检索、Suggestion POI search) ,简称Sug 检索,是指根据关键词查询在线建议词。该服务使用户在输入停车场等地点时无须键入完整名称,系统将智能联想并迅速显示相关地点的名称。
地址解析指将结构化地址(省/市/区/街道/门牌号)解析为对应的经纬度坐标。例如,将“大连北站”转化为“121.60740180967053,39.016778407450204”。地址结构越完整、内容越准确,解析的坐标精度也会越高。
使用该地址解析服务进行检索,返回的结果包含两个部分:marker数组数据和完整数据。marker数组数据符合微信小程序的marker规范,可以直接用于微信小程序地图(map) 中。
3.5 Haversine 数学公式的应用
在执行附近停车场查询时,Haversine公式被采用以计算地球表面上两点之间的大圆距离。公式如下:
a=sin²(Δlat/2)+cos(lat1)×cos(lat2)×sin²(Δlon/2)
为了实现这一计算,设计了一个名为 calculate⁃Distance()的函数。它接受四个参数:lat1和lon1代表第一个点的纬度和经度,lat2和 lon2代表第二个点的纬度和经度。计算得到的距离存储在变量 `distance` 中。如果这个距离小于1公里,系统便判定该停车场为“附近”,并将相应的停车场名称呈现给用户。
为了确保计算的精确性,calculateDistance函数内部使用了Haversine公式,并辅以一个名为 toRadians 的辅助函数,后者负责将角度转换为弧度。
4 结论
本研究通过开发一个融合了ChatGLM和百度地图技术的智慧停车微信小程序,旨在为广大用户提供高效的停车解决方案,从而减少寻找停车位的时间并减轻城市交通的负担。该小程序通过汇总停车场内所有车位的数据,允许用户在到达停车场前即可获取空闲车位的详细信息,包括车位编号和具体位置,显著提升了停车效率。
小程序集成的大语言模型技术,使用户在驾驶过程中无须频繁手动操作手机。通过融合语音识别技术,实现了安全的语音交互,进一步增强了驾驶安全性。与百度地图的结合不仅增强了小程序的功能性,如提供可视化地图、搜索建议和地理编码等功能,还使用户能够直观地了解周围的停车资源和交通情况。
研发的智慧停车小程序不仅极大地方便了用户的停车体验,也为改善城市交通状况作出积极贡献。通过提升停车效率和优化交通流动性,期望能够为城市交通管理提供智能化的支持,共同创造一个更加智能和便捷的出行环境。