学习如何使用MongoDB管理联网车队、优化路线规划并提高驱动程序安全。
行业: 制造与运动
产品和工具: Atlas 数据库,Atlas Vector Search
解决方案概述
在此解决方案中,我们使用MongoDB Atlas、Voyage AI、OpenAI 和 LangGraph构建了一个AI驱动的 Connected Fleet Advisor。
该系统接收司机投诉或车队经理的查询,处理车辆遥测数据,生成思路链,对类似问题进行向量搜索,将数据保存在 MongoDB 中,最后使用 OpenAI LLM 生成诊断建议。
代理是一种可操作的应用程序,它尝试通过观察世界并使用其拥有的数据和工具采取行动来实现目标。“代理”术语表示具有代理作为AI代理,主动采取步骤以实现目标,而无需持续的人工监督。示例,互联车队的代理AI系统不仅仅是根据联网汽车遥测数据分析来报告异常,还可以自主地将异常与已知问题进行交叉检查,确定其是否严重,并自行安排维护预约。
图 1. AI 代理的基本组成部分
未来的增长和挑战
在车辆连接、自主系统、共享出行和电气化进步的推动下,汽车和移动行业正在经历重大变革。车辆现在是生成大量数据的复杂机器。下一个 20 年,汽车需求将以每年3% 的速度增长,人们对联网汽车和电动汽车的偏好与日俱增。汽车制造商采用人工智能 (AI)、纯电动汽车 (BEV) 和软件定义汽车 (SDV) 来保持竞争优势。全球联网汽车市场规模预计到 将达到. 4466十亿美元左右, 到2033 19之间的复合年增长率为.5 %。20242033管理互联车队是一项挑战。随着汽车变得越来越复杂并与内部和外部系统集成,数据量也随之增加。您需要通过各种下游应用程序来存储、传输和使用这些数据,以释放新的商机。全球车队管理市场预计到 将达到. 657203010十亿美元,增长率近.8 %每年。
Webfleet 进行的一项 2024 研究 显示,32% 的车队经理认为AI和机器学习将在未来几年对车队操作产生重大影响。这一比例略高于认为电动汽车是主节点 (primary node in the replica set)游戏规则改变者的 30%。车队经理认为,AI改变了他们的工作日,最常提到的两个方面是优化路线规划和提高驱动程序安全。随着车队管理软件提供商继续投资于AI,集成代理AI和能够做出实时决策的自主系统,可以极大地帮助路线优化和增强驱动程序安全等使用案例。示例,AI代理处理实时交通更新和天气条件,以动态调整路线,确保及时交付,同时根据需要向驾驶员提供汽车状况建议。这种主动方法与传统的被动方法形成鲜明对比,可提高车辆利用率并降低运营和维护成本。
参考架构
下面所示的参考架构说明了AI代理的内部工作原理和数据流。当用户(驾驶员)提交有关潜在问题的查询时,工作流程就开始了。示例,听到敲击声。然后,基于 LangGraph 的代理协调器使用 LLM (OpenAI GPT-4 o) 解释该请求并创建思想链 (CoT) 推理和工作流程,从而处理该请求。工作流由代理使用Atlas Vector Search等工具执行。
代理处理问题报告,如下所示:
读取遥测数据:从逗号分隔值(CSV)文件(或生产设置中的API)获取车辆传感器数据。
生成嵌入:使用 Voyage AI API 将投诉文本转换为数字表示形式。
Uses Atlas Vector Search: 使用生成的嵌入在MongoDB Atlas中搜索类似问题。
持久保存数据:在MongoDB Atlas中保存遥测数据、会话日志和建议。
提供最终建议:使用 OpenAI API 生成可行的诊断建议。
图2.所提议解决方案的参考架构
数据模型方法
代理需要不同类型的数据才能运行。MongoDB's document model 允许您轻松地在一个数据库中对所有这些数据进行建模。下面是针对车队管理的代理AI应用程序中不同数据类型的一个示例。请注意 document model 如何灵活地适应存储所需的数据类型。
代理配置文件
此数据包含代理的身份,包括指令、目标和约束。
代理配置文件示例
{ "_id": "67c20cf886f35bcb8c71e53c", "agent_id": "default_agent", "profile": "Default Agent Profile", "instructions": "Follow diagnostic procedures meticulously.", "rules": "Ensure safety; validate sensor data; document all steps.", "goals": "Provide accurate diagnostics and actionable recommendations." }
短期记忆
短期记忆保存代理实时使用的临时上下文信息,即最近的数据输入或正在进行的交互。示例,短期记忆存储车辆活动的最后几个小时的传感器数据。在某些代理AI框架(例如 LangGraph)中,短期记忆通过检查点来实现。检查点存储代理操作和推理的中间状态。此内存允许代理无缝暂停和恢复操作。
短期记忆示例:存储在时间序列集合中的遥测数据
{ "_id": "67cb23ee370eb8f40c9bf677", "timestamp": "2025-02-19T13:00:00", "vin":"5TFUW5F13CX228552", "engine_temperature": "90", "oil_pressure": "35", "avg_fuel_consumption": "8.5", "thread_id": "thread_20250307_125027" }
长期记忆
长期记忆存储代理随着时间的推移积累的知识。这可能包括模式、趋势、日志、历史建议和决策。
长期记忆示例:将联网车辆的历史问题向量化并存储在 MongoDB 中
{ "_id": "67ca173679c7c286f44f4a24", "issue": "Engine knocking when turning", "recommendation": "Inspect spark plugs and engine oil.", "embedding": [ -0.021414414048194885, -0.0031116530299186707, 0.014275052584707737, -0.030444633215665817, 0.018614845350384712, 0.06425976008176804, 0.0060801152139902115, -0.012883528135716915, -0.007000760640949011, -0.04991862177848816, ... ] }
构建解决方案
要构建此解决方案,请按照 队列管理代理Github存储库中的说明进行操作。存储库提供了设置应用程序的分步指导。
先决条件
Python 3.11+(后端)
Node.js(用于 Next.js 前端)
MongoDB Atlas 帐户
OpenAI API 密钥
Voyage AI API 密钥
系统架构
后端工作流
您可以使用 LangGraph实现多步骤诊断工作流程,如下所示:
代理会收到驱动程序的问题报告。示例,“过去一周,我车辆的油耗显着增加。引擎或燃油系统可能出现什么问题?”。
该代理检索遥测数据并记录日志更新。
代理使用 Voyage AI voyage-3-large embedding API为投诉生成嵌入。
然后,系统在 MongoDB 中针对历史问题执行向量搜索,以查收类似案例。
MongoDB存储所有遥测、嵌入和会话日志以确保可追溯性。
最后,该代理使用 OpenAI 的 ChatCompletion API 生成最终推荐。
MongoDB Atlas
灵活的文档模型数据库存储代理配置文件、历史建议、遥测数据、会话日志等。这种持久性存储记录了诊断进程的每个步骤以实现可追溯性,并实现了过去数据的高效查询和可重用性,从而使系统具有高度可追溯性和可扩展的。
前端接口
Next.js 前端提供了一个双列视图:
左侧栏:显示实时代理工作流更新,例如推理链、更新消息和最终建议。
右列:显示在代理运行期间插入 MongoDB 的文档,包括会话详细信息、遥测日志、历史建议、代理配置文件和过去问题的示例。
设置应用程序
要设立应用程序,请执行以下步骤:
创建一个 Atlas Vector Search 索引,名为 issues_index,路径为 embeddings
有关如何设立向量搜索索引的更多详细信息,请参阅创建向量搜索索引。
您可以随意调整 main.py 中的提示或更新telemetry_data.csv文件中的遥测数据。
探索解决方案
开始新的诊断
打开前端并选择“新诊断”。
在文本框中输入问题报告,示例:
我在低速转弯时听到敲击声。
当我低速加速时,我的车会发出持续的卡格达噪音。
我注意到油压突然删除,同时引擎温度略有上升。
过去一周,我的车辆的油耗显着增加。引擎或燃油系统可能出现什么问题?
我的仪表盘上最近出现了一个警告灯,并且汽车难以加速。
单击“运行代理”按钮,等待一两分钟,让代理完成运行。
检查工作流程
工作流程、思路输出和最终建议显示在左栏中。
工作流实时生成,使代理的决策进程透明化。
图 3:AI 代理工作流的顺序图
查看MongoDB文档
在右侧列中,显示的文档是当前代理运行期间插入的记录:
agent_sessions:包含会话元数据和线程ID。
historical_recommendations: 存储最终建议和相关诊断信息。
telemetry_data:保存遥测传感器读数。
日志:包含诊断过程的日志条目。
agent_profiles:显示诊断期间使用的代理配置文件。
past_issues:(如果可用)显示历史问题的示例。
检查点:(来自检查点数据库)显示上次保存的状态以便于恢复。
恢复功能
我们还可以选择通过输入线程 ID 并显示系统如何检索相应的会话来演示“恢复诊断”功能。
关键要点
可扩展性和灵活性:车队管理系统等联网汽车平台处理极高的数据量和种类。MongoDB Atlas可跨云集群水平扩展,允许您每分钟摄取数百万个遥测事件并存储TB 的遥测数据。示例,ZF SCALAR 使用 MongoDB 每分钟处理来自数十万辆联网汽车的 90,000 条车辆消息(每天超过 50 GB 的数据)。The MongoDB document model 会随着fleet的增长而进行调整。当车辆添加新的传感器或功能时,您可以改进模式。这种灵活性可加快开发速度,并确保您的数据模型与其代表的车辆、行程或事件等现实世界的实体保持一致。
实现内置向量搜索: AI代理需要一套强大的工具来使用。向量搜索允许代理对非结构化数据进行语义搜索,例如驱动程序日志、错误代码说明和修复手册。MongoDB Atlas原生支持向量搜索,可将高维向量与操作数据一起存储和索引,并对它们执行快速相似度查询。实际上,这意味着您的AI嵌入与数据库中的相关车辆遥测和操作数据并存。这简化了使用案例,例如联网汽车事件顾问,其中的问题可以与过去遇到的问题进行匹配,然后再将上下文传递给 LLM。(了解汽车原始设备制造商如何通过 MongoDB Atlas Vector Search 利用向量搜索进行基于音频的诊断)。
部署时间序列集合和实时数据处理: MongoDB Atlas专为实时应用程序而设计。它为联网汽车遥测数据存储、变更流和可立即对新数据做出react的触发提供时间序列集合。鉴于实时可见性是现代车队管理系统的首要功能,MongoDB的能力为AI代理提供即时见解,确保他们根据最新信息做出决策。这对于代理AI反馈循环至关重要,因为在该循环中,持续进行数据摄取和学习。
通过 Voyage AI 使用一流的嵌入模型: MongoDB 最近收购了专门从事嵌入和重新排名模型的 Voyage AI。由于MongoDB Atlas集成了 Voyage AI嵌入模型,开发者不再需要管理外部嵌入 API、独立运行的实例向量存储或复杂的搜索管道。AI检索内置于数据库本身,使语义搜索、向量检索和排名与传统查询一样无缝。这减少了开发 Agentic AI应用程序所需的时间。
作者
Humza Akhtar,MongoDB