MongoDB 帮助汽车公司管理联网车队、优化路线规划,并提高驾驶员的安全性。
行业: 制造与运动
产品和工具: Atlas 数据库,Atlas Vector Search
解决方案概述
在车辆连接、自主系统、共享出行和电气化进步的推动下,汽车和移动行业正在经历重大变革。当今的车辆是会生成大量数据的复杂机器。在未来 年内,汽车需求将以每年3 % 的速度增长,人们对联网汽车和电动汽车的偏好将与日俱增。汽车制造商正在采用人工智能20 (AI)、纯电动汽车 (BEV) 和软件定义汽车 (SDV) 446来保持竞争优势。截至6 ,全球联网汽车市场规模预计约为.2033 十亿美元,在19 52024到 之间的复合年增长率为.2033 %。管理互联车队是一项挑战。随着汽车变得越来越复杂并与内部和外部系统集成,数据量大幅增加。这些数据需要由各种下游应用程序存储、传输和使用,以释放新的商机。全球车队管理市场预计到 6572030将达到.10 十亿美元,每年增长速度近.8 %。
由 Webfleet 进行的 2024 研究显示,32% 的车队经理认为人工智能和机器学习将在未来几年显著影响车队运营。这一比例略微超过了认为电动汽车是主要变革因素的 30%。优化路线规划和提升驾驶员安全是车队经理们最常提及的两种他们认为 AI 将改变工作方式的方式。随着车队管理软件提供商不断投资于 AI,集成能够自主做出实时决策的代理 AI 系统,可以显著提升路线优化和驾驶员安全等使用案例的效果。例如,AI 代理可以处理实时交通更新和天气状况,动态调整路线,确保及时送达,同时根据需要向司机提供车辆状况建议。这种主动方法与传统的被动方法形成鲜明对比,提高了车辆利用率并降低了运营和维护成本。
代理是一种操作性应用程序,通过观察环境并利用其掌握的数据和工具采取行动来实现目标。“自主智能体”(agentic) 一词表示作为 AI 代理具有自主性,在没有持续人工监督的情况下可以主动采取步骤来达成目标。例如,与仅仅基于联网汽车遥测数据分析进行异常报告不同,一个用于联网车队的自主智能体 AI 系统可以自主地将该异常与已知问题进行比对,判断其是否属于关键问题,并自行安排维护预约。
在此解决方案中,我们将使用 MongoDB Atlas、Voyage AI、OpenAI 和 LangGraph 构建一个 AI 驱动的 Connected Fleet Advisor。
该系统接收司机投诉或车队经理的查询,处理车辆遥测数据,生成思路链,对类似问题进行向量搜索,将数据保存在 MongoDB 中,最后使用 OpenAI LLM 生成诊断建议。
图 1. AI 代理的基本组成部分
参考架构
以下所示的参考架构展示了 AI 代理的内部运作和数据流。当收到用户(驾驶员)关于潜在问题(例如听到敲击声)的查询时,工作流开始。该请求随后由基于 LangGraph 的代理协调器处理,协调器使用 LLM(OpenAI GPT- 4 o)来解释该请求,并创建思维链(CoT)推理和工作流。然后,代理使用诸如 Atlas Vector Search 等工具来执行工作流。
代理通过以下方式处理问题报告:
读取遥测数据:从 CSV 文件(或生产环境中的 API)中导入车辆传感器数据。
生成嵌入:使用 Voyage AI 嵌入 API 将投诉文本转换为数值表示。
Atlas Vector Search: 使用生成的嵌入在 MongoDB Atlas 中搜索类似问题。
数据持久性:将遥测数据、会话日志和建议保存在 MongoDB Atlas 中。
最终建议:使用 OpenAI 聊天 API 生成可操作的诊断建议。
图2.所提议解决方案的参考架构
数据模型方法
代理需要不同类型的数据才能正常运行。利用 MongoDB 的文档模型,您可以轻松地在单一数据库中对所有这些数据进行建模。以下是用于车队管理的自主智能体 AI 应用程序中每种不同数据类型的一个示例。请注意如何利用文档模型的灵活性来适应需要存储的数据类型。
代理配置文件
这包含代理的身份,包括指令、目标和约束。
代理配置文件示例
{ "_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, ... ] }
构建该解决方案
该解决方案集成了多项关键技术。要构建此解决方案,需要满足一些先决条件。
先决条件
Python 3.11+(后端)
Node.js(用于 Next.js 前端)
MongoDB Atlas 帐户
OpenAI API 密钥
Voyage AI API 密钥
后端
我们使用 LangGraph 实现多步骤诊断工作流程。后端从 CSV 文件中读取遥测数据(模拟车辆传感器输入),使用 Voyage AI 生成文本嵌入,执行向量搜索以识别 MongoDB 中类似的历史问题,保存会话和运行数据,最后生成诊断建议。
MongoDB Atlas
灵活的文档模型数据库存储代理配置文件、历史推荐、遥测数据、会话日志等。这一持久化存储系统不仅完整记录诊断流程的每个环节以确保可追溯性,还能高效查询并复用历史数据。
Next.js 前端提供了一个双列视图:
左侧栏:显示实时代理工作流更新,例如推理链、更新消息和最终建议。
右侧列:显示在代理运行期间插入到 MongoDB 中的文档,包括会话详细信息、遥测日志、历史推荐、代理配置文件和过去问题的示例。
系统架构
后端工作流
代理收到用户的问题报告(例如,“在过去的一周里,我的车辆燃油消耗量显著增加。引擎或燃油系统可能会有什么问题?”)。
它首先检索遥测数据(在此通过 CSV 文件模拟),并记录更新。
接下来,它使用 Voyage AI voyage-3-large 嵌入 API 为投诉生成嵌入。
然后,系统在 MongoDB 中针对历史问题执行向量搜索,以查收类似案例。
所有数据(遥测、嵌入、会话日志)都持久化存储在 MongoDB 中,以便进行追踪。
最后,代理使用 OpenAI 的 ChatCompletion API 来生成最终建议。
MongoDB 角色
MongoDB 存储所有内容:代理配置文件、会话日志、遥测数据、历史建议,甚至检查点。这使得系统具有高度可追溯性和可扩展性。
前端接口
双列用户界面显示实时工作流以及验证每个步骤的相关 MongoDB Docs。
后端设置
运行 Next.js 开发服务器
npm run dev
现在应该可以通过 http://localhost:3000 访问前端。
请随意调整 main.py 中的提示或更新 telemetry_data.csv 文件中的遥测数据。
运行解决方案
开始新的诊断
打开前端并选择“新诊断”。
在文本框中输入问题报告(例如,已显示的示例投诉)。
示例提示:
我在低速转弯时听到敲击声。
我的汽车在低速加速时发出持续的嘎嘎声。
我注意到油压突然下降,同时引擎温度略有上升。
在过去的一周里,我的车辆燃油消耗量显著增加。引擎或燃油系统可能会有什么问题?
我的仪表盘上最近出现了一个警告灯,汽车在加速时很费力。
单击“运行代理”按钮,并等待一两分钟,让代理完成运行。
查看工作流
工作流程、思维链输出和最终建议显示在左栏中。
工作流将实时生成,使代理的决策过程透明化。
审阅 MongoDB 文档
在右侧列中,显示的文档是当前代理运行期间插入的记录:
agent_sessions:包含会话元数据和线程ID。
historical_recommendations: 存储最终建议和相关诊断信息。
telemetry_data:保存遥测传感器读数。
日志:包含诊断过程的日志条目。
agent_profiles:显示诊断期间使用的代理配置文件。
past_issues:(如果可用)显示历史问题的示例。
检查点:(来自检查点数据库)显示上次保存的状态以便于恢复。
恢复功能
我们还可以选择通过输入线程 ID 并显示系统如何检索相应的会话来演示“恢复诊断”功能。
图 3:AI 代理工作流的顺序图
关键要点
为移动性构建代理型 AI 解决方案需要强大的数据基础设施。MongoDB Atlas 具有多项关键优势,使其成为这些 AI 驱动架构的理想基础。
可扩展性和灵活性:车队管理系统等联网车辆平台需要处理大量、多样的数据。MongoDB Atlas 可以轻松地在云集群中水平扩展,允许每分钟摄取数百万个遥测事件,并轻松存储数太字节的遥测数据。例如,ZF SCALAR 使用 MongoDB 每分钟处理来自数十万辆联网车辆的 90,000 条车辆消息(每天超过 50 GB 的数据)。文档模型会随着车队的增长而无缝适应。开发人员可随车辆新增传感器或功能动态调整数据模型。这种灵活性加速了开发,并确保您的数据模型始终与其所代表的真实世界实体(车辆、行程、事件)保持一致。
内置向量搜索:AI 代理需要具备一套健全而强大的工具来开展工作。向量搜索是最广泛使用的工具之一,它允许代理对非结构化数据(如驱动日志、错误代码说明和维修手册)执行语义搜索。MongoDB Atlas 原生支持向量搜索,允许您将高维向量与操作数据一起存储和索引,并对其进行快速相似性查询。实际上,这意味着您的 AI 嵌入与数据库中相关的车辆遥测和操作数据紧密相邻。这大大简化了某些应用场景下的架构,例如联网汽车事件顾问,在该场景中,问题可以先与以往遇到的问题进行匹配,再将上下文传递给大型语言模型 (LLM)。(参见某汽车 OEM 如何利用 MongoDB Atlas 向量搜索实现基于音频的诊断)。
时间序列集合和实时数据处理:MongoDB Atlas 专为实时应用程序而设计。它提供时间序列集合,用于联网汽车遥测数据存储、变更流,以及可以即时对新数据做出反应的触发器。鉴于实时可见性是现代车队管理系统的核心功能,MongoDB 向 AI 代理提供全新见解的能力可确保他们根据最新信息做出决策。这对于自主智能体 AI 反馈循环至关重要,因为在这些循环中,数据摄取和学习是持续进行的。
Voyage AI 的一流嵌入模型:MongoDB 最近收购了 Voyage AI,这是一家嵌入模型和重新排序模型领域的领导者。将 Voyage AI 嵌入模型集成到 MongoDB Atlas 中后,开发者将不再需要管理外部嵌入 API、独立的向量存储或复杂的搜索管道。AI 检索将内建到数据库中,实现与传统查询一样的无缝语义搜索、向量检索和排序。这将减少开发自主智能体 AI 应用程序所需的时间。
作者
Humza Akhtar,MongoDB