Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Copiloto de IA de borde para vehículos conectados

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

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.

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.

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

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

haga clic para ampliar

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.

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.

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.

El modelo orientado a documentos almacena estas formas en una base de datos:

  • Telemetría estructurada

    Modelo de datos de telemetría

    Figura 2. Modelo de datos de telemetría

    haga clic para ampliar
  • Fragmentos manuales de texto libre

    Modelo de datos de fragmentos manuales

    Figura 3. Modelo de datos del manual del coche

    haga clic para ampliar
  • Historial de chat

    Modelo de datos de conversación de chat

    Figura 4. Modelo de datos de conversación de chat

    haga clic para ampliar
  • Datos de telemetría de Time Series

  • Último estado del coche

    Modelo de datos del estado de la telemetría

    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.

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.

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:

1

Descarga el proyecto y revisa el archivo README para obtener la configuración necesaria.

2

Aprovisione el clúster de MongoDB Atlas y configure el acceso necesario a la base de datos.

3

Configurar los almacenes locales de ObjectBox y los servicios del lado del vehículo.

4

Configure el servidor de sincronización de ObjectBox y el conector de MongoDB para sincronizar datos entre el almacén local de Objectbox y MongoDB Atlas.

5

Pueble los fragmentos manuales y sus incrustaciones para que el asistente pueda recuperar contenido localmente y en la nube.

6

Configure un índice de búsqueda vectorial en las incrustaciones manuales sincronizadas para que Atlas pueda realizar una recuperación semántica en la nube.

7

Configure activar para procesar telemetría sincronizada, mantener el estado actual del vehículo y añadir registros históricos a la colección de series de tiempo.

8

Inicie los servicios de sincronización, el backend y la aplicación Cockpit utilizando las instrucciones de configurar del repositorio.

9

Pruebe el asistente mientras está conectado, verifique que funciona sin conexión y confirme que los datos se sincronizan después de la restauración de la conectividad.

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

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

haga clic para ampliar
  • 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.

  • Timothy Marland, MongoDB

  • Dorottya Nyárády, MongoDB