caso de uso: Inteligencia artificial
Industrias: Fabricación y movilidad, tecnología móvil y de borde.
Productos: MongoDB Atlas, Búsqueda vectorial deMongoDBAtlas, Disparadores de MongoDB Atlas, Voyage AI
emparejar: ObjectBox
Descripción general de la solución
Los vehículos conectados generan continuamente datos de sensores para los driver que esperan asistencia inmediata y manos libres. Sin embargo, cuando la conectividad se pierde en estacionamientos, túneles o carreteras rurales, cualquier asistente que dependa de la nube falla justo en el momento más crítico.
Esta solución ejecuta un copiloto de IA en el borde para garantizar una asistencia continua en el vehículo durante las interrupciones del servicio de red. Utiliza una base de datos ObjectBox en el dispositivo para almacenar telemetría de vehículos en tiempo real junto con el manual del propietario. Luego procesa las consultas utilizando un agente LLM local que no requiere una conexión de red activa. Tras la reconexión, el servidor de sincronización de ObjectBox sincroniza automáticamente estos datos de borde de nuevo con MongoDB Atlas.
MongoDB Atlas sirve como el sistema centralizado de registro en la nube. Realiza búsqueda vectorial sobre el contenido manual, mantiene el historial de telemetría dentro de colecciones de series de tiempo y procesa cada snapshot sincronizado en un documento totalmente consultable a través de un activador de Atlas.
Arquitecturas de Referencia
La arquitectura para compilar un asistente en el vehículo que proporciona respuestas precisas sin conectividad a Internet presenta una división en dos niveles: un nivel perimetral en el vehículo y un nivel de nube de MongoDB Atlas.
Figura 1. Flujo de usuario de extremo a extremo desde la solicitud de sincronización con MongoDB Atlas y las colección de salida del activador de Atlas
Arquitectura de nivel de borde
El nivel de borde en el vehículo constituye un entorno de ejecución autónomo donde los servicios de Cockpit, backend, agente local y ObjectBox se comunican directamente en el vehículo. Esta pila permite al asistente recuperar conocimientos y funcionar sin MongoDB Atlas, mientras que los datos locales se sincronizan con MongoDB Atlas cuando se restablece la conectividad. El nivel perimetral utiliza los siguientes componentes:
Interfaz de Usuario de Cockpit: Compilado con Next.js, esta interfaz muestra indicadores en tiempo real, un indicador de códigos de error, un panel de chat y un mapa, restringiendo al navegador a llamar únicamente a rutas de API del mismo origen.
Backend de Python: Expone puntos de conexión REST y eventos enviados por el servidor para gestionar el envío de telemetría a través de un proxy, conversiones de voz a texto y de texto a voz, y la orquestación de agentes.
Agente de LangChain: Se comunica con un LLM local a través de Ollama, gestionando grafos duales precompilados para rutas de ejecución discretas en linea y fuera de línea.
Pipeline de incrustación: El manual del vehículo se divide primero en fragmentos de texto más pequeños. Cada fragmento se convierte a continuación en una incrustación de 1,024dimensiones mediante el modelo voyage-4-nano de Voyage AI, y la incrustación resultante se almacena junto con su fragmento correspondiente.
Servicios de ObjectBox: Con la tecnología de C++, tres clientes de sincronización distintos almacenan fragmentos de manual de usuario y sus incrustaciones, telemetría de vehículos e historial de diálogos localmente.
Búsqueda vectorial HNSW de ObjectBox: ObjectBox mantiene un índice vectorial HNSW sobre las incrustaciones manuales almacenadas localmente. El índice resultante permite búsquedas ANN directamente en el vehículo, lo que permite al asistente recuperar contenido manual relevante sin conexión y sin depender de la conectividad de MongoDB Atlas.
Generador de telemetría: Captura y guarda instantáneas de VSS directamente en el almacenamiento local de telemetría a intervalos de dos segundos.
Arquitectura de nivel de nube
MongoDB Atlas actúa como la contraparte conectada del almacenar local ObjectBox del vehículo. Cuando la conectividad está disponible, recibe fragmentos e incrustaciones manuales sincronizados, telemetría del vehículo e historial de diálogos, lo que proporciona persistencia basada en la nube mientras que el nivel perimetral permanece operativo sin conexión. El nivel de nube utiliza los siguientes componentes:
Replicación de datos: El servidor de sincronización de ObjectBox se conecta a la nube, sincronizando los almacenes de datos perimetrales directamente con MongoDB Atlas a través del conector de MongoDB. La sincronización incluye los fragmentos manuales, sus incrustaciones, la telemetría y el historial de diálogos.
Clúster de MongoDB Atlas: Mantiene las colecciones de datos replicadas y proporciona más capacidad de almacenamiento que el almacenar local de ObjectBox. La sincronización con MongoDB Atlas permite a la solución retener mayores volúmenes de contenido manual, telemetría, historial de diálogos y otros datos a largo plazo sin estar limitada por la capacidad de almacenamiento local del vehículo.
Atlas Vector Search: Indexa las incrustaciones manuales sincronizadas y proporciona búsqueda vectorial en la nube sobre el contenido manual completo cuando la conectividad está disponible.
Atlas Triggers: Transforma automáticamente los snapshot de telemetría entrantes en documentos de estado mientras extiende un registro de historial de serie de tiempo dedicado.
Flujo de ejecución para solicitudes
Con los niveles de borde y de nube establecidos, el flujo de ejecución describe cómo la solicitud de un driver se mueve a través del sistema, desde el Cockpit hasta el backend local y el agente. La sincronización en la nube se produce cuando hay conectividad disponible.
Cuando el driver escribe o habla, el backend alimenta el flujo de solicitudes directamente al agente. El agente evalúa la query usando LangGraph y decide qué herramienta llamar.
El manual del automóvil se divide en fragmentos y se integra con el modelo voyage-4-nano de MongoDB Voyage AI de 1,024 dimensiones. Esta misma representación se almacena localmente en ObjectBox y se replica en MongoDB Atlas, donde se indexa para la búsqueda vectorial de MongoDB Atlas. En el borde, el índice HNSW de ObjectBox admite la recuperación aproximada del vecino más cercano local sobre las representaciones del manual del automóvil. En la nube, la búsqueda vectorial de MongoDB Atlas proporciona la capacidad de búsqueda vectorial correspondiente sobre el contenido sincronizado del manual.
Cuando una solicitud incluye información del vehículo, el agente determina qué herramienta de telemetría es la más adecuada para la consulta del conductor y la activa. Según la solicitud, la herramienta seleccionada recupera el estado actual del vehículo, las señales VSS relevantes, los códigos de avería o la información de estado derivada del repositorio de telemetría correspondiente. Si la herramienta seleccionada devuelve un DTC, el agente puede activar la herramienta de traducción específica para convertir el código y sus señales asociadas en una explicación clara del sistema afectado, su significado, gravedad y los pasos a seguir.
Enfoque de modelo de datos
El modelo orientado a documentos almacena estas formas en una base de datos:
Telemetría estructurada
Figura 2. Modelo de datos de telemetría
haga clic para ampliarFragmentos manuales de texto libre
Figura 3. Modelo de datos del manual del coche
haga clic para ampliarHistorial de chat
Figura 4. Modelo de datos de conversación de chat
haga clic para ampliarDatos de telemetría de Time Series
Último estado del coche
Figura 5. Modelo de datos del estado de la telemetría
haga clic para ampliar
Cada snapshot de telemetría es un documento. Un snapshot contiene el árbol completo de VSS Vehicle, aproximadamente 1300 señales en varios dominios, almacenadas como JSON anidado. El modelo no necesita un esquema fijo en esos dominios.
ObjectBox almacena la carga útil de telemetría como una string. El conector de MongoDB lo expande en un documento anidado nativo en Atlas a través del tipo externo JsonToNative, de modo que las queries en la nube acceden a los campos por su ruta VSS exacta.
Colecciones
En su conjunto, estos modelos de datos representan los dominios principales de la solución: conocimiento manual con capacidad de búsqueda, historial de conversaciones, telemetría bruta del vehículo, estado actual del vehículo e telemetría histórica. Separar estos tipos de datos permite una recuperación eficiente, admite query del estado del vehículo en tiempo real, conserva el contexto de la conversación y mantiene el historial de telemetría a largo plazo escalable y consultable en MongoDB Atlas. Las colecciones para esta solución incluyen:
manual_chunks: Fragmentos de texto del manual del propietario con una incrustación de Voyage AI de 1024dimensiones para la búsqueda vectorial.conversations: Historial de chat, que incluye tanto la respuesta humana como la del asistente junto con las herramientas que cada asistente utiliza para responder a una pregunta.objectbox_telemetry: Un snapshot sin procesar por documento, sincronizado desde el borde.telemetry-status: El estado actual del vehículo, un documento por vehículo, escrito por el activador.telemetry-data: Una colección de series de tiempo de MongoDB. El activador de Atlas añade un registro por snapshot, para que las query de historial sigan siendo eficientes a medida que los datos crecen.
Compilar la solución
Consulta el archivo README en el repositorio de GitHub para obtener todos los detalles de implementación. Los siguientes pasos explican cómo crear la aplicación:
Clona el repositorio
Descarga el proyecto y revisa el archivo README para obtener la configuración necesaria.
Figura 6. La Interfaz de Usuario del panel de control con indicadores en tiempo real, chat, el indicador de códigos de error y el panel de sincronizar en linea y fuera de línea
Lecciones clave
Mantenga la autoridad en el borde: El almacén ObjectBox en el dispositivo sirve lecturas y acepta guardar sin conexión, por lo que el asistente funciona con baja conectividad.
Ejecutar la búsqueda vectorial donde reside la query: Un modelo de incrustación de MongoDB Voyage AI (voyage-4-nano, 1024 dimensiones) impulsa la búsqueda vectorial de ObjectBox en el borde y Atlas Vector Search de MongoDB en la nube, para que las respuestas se mantengan coherentes en todas las modas.
Almacenar el historial de telemetría como serie de tiempo: Un activador de MongoDB Atlas guarda cada snapshot en una colección de series de tiempo de MongoDB.
Modelar un snapshot como un documento: El modelo orientado a documentos flexible almacena señales VSS sin un esquema entre dominios fijo.
Diseñar servicios para tolerar la pérdida de conectividad: El extremo almacena en búfer guardar mientras está desconectado y se reconcilia con MongoDB Atlas al reconectarse.
Autores
Timothy Marland, MongoDB
Dorottya Nyárády, MongoDB