Evalúe el riesgo de los proveedores en tiempo real con MongoDB Atlas. Descubra proveedores alternativos mediante una búsqueda multimodal impulsada por Voyage AI.
caso de uso: Inteligencia Artificial, Búsqueda Inteligente
Industrias: Comercio minorista
Productos: MongoDB Atlas, Voyage AI, MongoDB Automated Embedding, MongoDB Vector Search, MongoDB Atlas Charts
Descripción general de la solución
Las cadenas de suministro globales se enfrentan a constantes perturbaciones macroeconómicas. La geopolítica, los fenómenos meteorológicos y los cuellos de botella logísticos amenazan la continuidad operativa de la noche a la mañana.
Los sistemas de planificación de recursos empresariales (ERP) tradicionales no pueden adaptarse a estos cambios rápidos. Atrapan información crítica de proveedores en tablas relacionales rígidas, hojas de cálculo estáticas y contratos y correos electrónicos en formato PDF que no se pueden consultar. Cuando se produce una interrupción, los equipos de compras dedican horas o días a recopilar datos manualmente en sistemas aislados. Esta demora provoca desabastecimiento, costes inesperados y pérdida de confianza del consumidor.
Decouple supplier management from your legacy ERP core by building a modernized, unified intelligence layer on MongoDB Atlas.
This solution treats MongoDB Atlas as a converged datastore—one platform that functions simultaneously as your operational store, vector store, search engine, and agent memory. Every piece of context an autonomous agent needs to reason about a live disruption (a supplier's location, its open purchase orders, certificates, and precedent history) lives one query away, in the same collection, under the same access controls.
Sobre la capa de datos de inteligencia, los siguientes módulos de backend convierten una señal de interrupción sin procesar en una decisión verificada y aprobada por humanos:
ingestion_engineCapa de normalización determinista sin LLM, agente ni bucle de razonamiento. Transforma las señales externas sin procesar (como datos geopolíticos, climáticos y logísticos) en un formato interno coherente y las escribe en Atlas. Proporciona el punto de partida limpio del que dependen todos los procesos posteriores.risk_evaluator: LangGraph agent that reads those signals against live supplier and purchase-order data, matches exposure geospatially, calculates a dynamic Risk Priority Number (RPN), and reasons over historical precedent stored inagent_memorybefore writing a plain-language risk summary back to Atlas.alternative_finder: LangGraph agent that, once a manager flags a supplier for action, searches the supplier-documentation corpus with hybrid vector and full-text retrieval, reranks candidates, audits every claim against the cited evidence, and ranks the remaining options by proximity while leaving the final call to a human.
Al unificar los datos operativos y las capacidades de IA en MongoDB Atlas, usted reacciona a las condiciones externas prácticamente en tiempo real y mantiene la agilidad de su negocio.
Arquitecturas de Referencia
An agent reasons with whatever reaches its context window, not with everything it knows. Every agent decision depends on prior data filtering. The data layer surfaces, filters, and ranks information first. Treat MongoDB Atlas as this context layer. Atlas decides what evidence deserves tokens before agents reason.
Un agente que procesa datos en tiempo real realiza búsquedas geoespaciales, búsquedas vectoriales, búsquedas de texto completo, reordenamientos y consultas en memoria. Las comunicaciones entre bases de datos, almacenes vectoriales y motores de búsqueda independientes ralentizan a los agentes. Todas las consultas se ejecutan dentro de las canalizaciones de agregación de MongoDB Atlas. Una sola API reemplaza toda la infraestructura.
El control del contexto también implica control de costos. Los sistemas multiagente consumen hasta 15 veces más tokens que los chats individuales. La recuperación redundante aumenta los costos. Controla el contexto del modelo para controlar tu presupuesto.
Los proveedores, las señales de interrupción y las pruebas de cumplimiento cambian constantemente. Utilice el modelo de documento flexible para almacenar esta variación en una sola colección.
Global supply chains generate evidence in many languages. Voyage AI maps multilingual evidence into one shared vector space, and Atlas Auto-Embedding keeps these vectors synchronized. Multilingual retrieval becomes a native database property instead of an external service.
El siguiente diagrama de arquitectura y los pasos a seguir describen el flujo de trabajo de principio a fin y las capacidades clave de la base de datos. Rastrea las señales desde las fuentes externas sin procesar hasta los proveedores alternativos aprobados.
Figura 1. Descripción general de alto nivel.
Paso 0: Ingesta de documentos no estructurados
Store raw, unstructured business documentation, such as PDFs, emails, contracts, and audit reports, from cloud storage directly into MongoDB Atlas. The Voyage AI multimodal embedding model auto-embeds chunked documents in any language to enable secure, in-database multimodal and multilingual search.
Paso 1: Desacoplarse del ERP
Un sistema ERP aplica las reglas de negocio y gestiona los flujos de trabajo transaccionales. Deje esas reglas en el ERP. Transfiera los datos de proveedores y pedidos a Atlas mediante la captura de cambios de datos (CDC) y permita que los agentes lean esa copia en lugar de consultar directamente el ERP.
La desvinculación permite que las nuevas funcionalidades evolucionen por encima del sistema ERP, siguiendo su propio cronograma.
Paso 2—3: Ingestión de señales de riesgo externas
Pull real-world logistics, geopolitical, and climate data into the operational data layer. This external risk data originates from sources such as MarineTraffic, the National Oceanic and Atmospheric Administration (NOAA), and global news feeds. In this solution, the ingestion engine generates three demo trigger signals per session to initialize the flow.
Procesar las señales externas sin procesar a través del motor de ingesta. El motor traduce los eventos de interrupción externos a un lenguaje empresarial interno normalizado y escribe señales estructuradas en MongoDB Atlas.
Paso 4: Evaluación de riesgos del proveedor (Agente evaluador de riesgos)
Trigger the Risk Evaluator Agent when normalized signals land in MongoDB Atlas. The agent reads operational data and agent_memory, performs geospatial matching ($geoWithin), calculates dynamic RPN, and writes evaluations back to the database.
Paso 5: Búsqueda de proveedores alternativos (Agente de búsqueda de proveedores alternativos)
Activate the alternative_finder agent when a manager selects an affected supplier. The agent queries document chunks using multimodal vector search, hybrid search ($rankFusion), and native reranking ($rerank) to find compliant alternative suppliers, then writes candidate options back to MongoDB Atlas.
Paso 6: Enriquecimiento de la memoria
The risk_evaluator scores each disruption with a dynamic Risk Priority Number (RPN). Memory feeds directly into that score before the agent finalizes it.
It queries agent_memory twice per assessment: once for the supplier's own history and once for cross-supplier precedent by risk type. The alternative_finder follows the same logic on the sourcing side. It checks a candidate's track record and pulls semantic precedent from similar suppliers before ranking candidates.
Atlas handles both memory structures natively. Memory takes two forms: structured fact ("this exact thing happened") and semantic similarity ("something like this happened"). Most architectures split these across two systems: one database for facts and one vector store for similarity. In Atlas, one collection holds both. An exact find and a $vectorSearch query hit the same documents because structured fields and embedded text live side by side.
Flujo de trabajo del centro de suministro inteligente
El siguiente diagrama de carriles muestra cómo se mueve el control a través de las capas del sistema durante una interrupción.
Figura 2. Flujo de trabajo de análisis de riesgos de la cadena de suministro
As external risk signals arrive, the ingestion_engine normalizes them into MongoDB Atlas, triggering the risk_evaluator agent to calculate supplier risk scores automatically. The workflow then pauses at the first human decision point, where a procurement manager reviews flagged risk scores and selects an impacted supplier. This selection activates the alternative_finder agent to retrieve, audit, and rerank replacement candidates from MongoDB Atlas. Finally, at the second human decision point, the manager reviews pre-surfaced, cited compliance documents provided to approve an alternative supplier. This eliminates manual searches across siloed systems, file formats, and foreign languages.
Inteligencia multimodal y multilingüe en la base de datos
La gestión de la cadena de suministro global requiere la búsqueda de documentación empresarial no estructurada y en múltiples formatos, como contratos en formato PDF, acuerdos comerciales, certificados de cumplimiento e informes de auditoría, redactados en varios idiomas.
MongoDB Atlas handles this complexity by storing Voyage AI multimodal vector embeddings directly alongside operational data to surface critical compliance insights that would otherwise remain in unsearchable document silos:
Incrustaciones automáticas de Atlas
Divida e incorpore registros y contratos de cumplimiento de proveedores no estructurados, como contratos en formato PDF, informes de auditoría escaneados y acuerdos comerciales, y almacénelos en MongoDB Atlas.
Create a vector search index with the autoEmbed type to enable Automated Embedding on the document chunks. This ensures vector embeddings generate automatically upon data insert or update using the configured Voyage AI model.
db.suppliers.createSearchIndex( "suppliers_autoembed_index", "vectorSearch", { fields: [ { type: "autoEmbed", modality: "text", path: "auto_embed_text", model: "voyage-4" }, { type: "filter", path: "region" }, { type: "filter", path: "product_categories" }, { type: "filter", path: "status" } ] } );
La incrustación automatizada elimina los servicios de incrustación externos y las complejas canalizaciones ETL, al tiempo que mantiene los datos de forma segura dentro del perímetro de seguridad de MongoDB Atlas.
Figura 3. Agente evaluador de riesgos
Aproveche la canalización de agregación, las capacidades de búsqueda y el modelo de documento flexible para ejecutar consultas avanzadas en estos fragmentos y realizar la validación de cumplimiento en sus datos ingeridos.
Búsqueda y recuperación de incrustaciones multimodales
Con los fragmentos de documentos almacenados en MongoDB Atlas, consulte datos no estructurados mediante búsqueda híbrida. Cree una consulta de búsqueda dinámica para encontrar socios de reemplazo durante una interrupción. Combine prefiltros regionales con una cadena de consulta semántica detallada. Por ejemplo, busque un "fabricante de materiales de embalaje en una zona comercial neutral en materia de aranceles con certificaciones de calidad activas y compromisos de entrega urgentes".
Execute this search in a single MongoDB Atlas aggregation pipeline. Use $rankFusion hybrid search to merge vector similarity with full-text search relevance. This hybrid query matches semantic concepts and exact keywords simultaneously.
Chain a native rerank stage ($rerank) after the fusion using a Voyage AI reranking model to improve retrieval accuracy. The in-database cross-encoder evaluates candidate chunks jointly with your query to calculate precise relevance scores. Running reranking in-pipeline keeps sensitive supplier records securely within the database perimeter.
Figura 4. Buscador de alternativas. Proveedor. Agente.
Inteligencia multilingüe
Busque y analice la documentación de proveedores globales en cualquier idioma sin necesidad de crear sistemas de traducción personalizados. El modelo multilingüe de Voyage AI transforma el texto de diferentes idiomas en un espacio vectorial compartido.
Consulta la base de datos en inglés para recuperar contratos o certificados relevantes escritos en árabe, español, chino o vietnamita. Almacena estas incrustaciones multilingües de forma nativa en MongoDB Atlas para realizar búsquedas semánticas multilingües con una latencia prácticamente nula.
Consolide la documentación de sus proveedores globales en un único índice de búsqueda multilingüe para simplificar sus flujos de trabajo de cumplimiento internacional y eliminar los costes de traducción.
Enfoque de modelo de datos
Las bases de datos rígidas imponen formatos de datos incompatibles en tablas planas. Las entidades de la cadena de suministro del mundo real cambian constantemente y tienen estructuras complejas y en constante evolución. Un esquema flexible y nativo de documentos permite que el modelo de datos evolucione al ritmo del negocio. Almacene registros operativos, incrustaciones vectoriales y coordenadas de forma nativa bajo una única API. Evite el tiempo de inactividad que suponen las migraciones de bases de datos rígidas.
Esta solución utiliza ocho colecciones para gestionar el riesgo y las fuentes de suministro alternativas.
Nombre de colección | Propósito |
|---|---|
| Captura señales de riesgo externas en tiempo real con fecha de caducidad TTL. |
| Codifica las puntuaciones y los umbrales de riesgo del Análisis de Modos y Efectos de Fallo (AMFE) estático. |
| Almacena los registros maestros de proveedores con ubicaciones GeoJSON. |
| Realiza un seguimiento de las órdenes activas para cuantificar la exposición financiera. |
| Almacena contratos y certificados de proveedores segmentados e integrados automáticamente. |
| Almacena episodios históricos de riesgo para el aprendizaje contextual. |
| Incluye puntuaciones RPN dinámicas y resúmenes de riesgo en lenguaje natural. |
| Mantiene las listas de candidatos preseleccionados, clasificadas según su nivel, a la espera de la aprobación humana. |
For a full overview of the document model, refer to the backend README of the solution. Examine the external_conditions and supplier_documents collections to explore the benefits of the document model.
condiciones externas
The external_conditions collection serves as the entry point for real-world risk alerts, storing normalized disruptions. Different risk types coexist in the same collection without enforcing a rigid schema.
A continuación se detallan los campos que los documentos comparten en todas las alertas de riesgo.
{ "condition_id": "COND-20260505-0941", "risk_type_triggered": "logistics_disruption", "condition_score": 0.76, "has_physical_location": true, "detected_at": "2026-05-05T09:41:00Z", "valid_until": "2026-05-08T09:41:00Z" }
Climate and logistical alerts store precise coordinates for a physical location and impact radius. Coordinates must be a GeoJSON Point object to run geospatial queries on the data. Use $geoWithin to find suppliers located entirely within a specified affected area.
{ // other shared fields "epicentre": { "type": "Point", "coordinates": [114.1095, 22.5229] }, "impact_radius_km": 80, "has_physical_location": true, }
Geopolitical alerts track regional boundaries with an array of affected regions. To query suppliers within affected regions, use the $in operator.
{ // other shared fields "affected_regions": ["CN", "HK"], "has_physical_location": false, }
The ingestion_engine normalizes varied incoming API payloads into the clean document structure shown in the preceding code examples.
Polymorphism allows you to query both signal types simultaneously. Execute unified geo-matching queries using $geoWithin and $in in a single database call. This consolidation simplifies your application logic and prevents performance-draining query divisions.
documentos_del_proveedor
The supplier_documents collection houses unstructured business paperwork made searchable. The following document sample illustrates this collection layout:
{ "supplier_id": "SUP-882", "doc_type": "quality_certification", "filename": "certificado_SUP882_2024.pdf", "chunk_index": 2, "chunk_total": 4, "chunk_text": "ISO 9001:2015 and IATF 16949:2016. Valid 2024-11-01 to 2027-10-31...", "page_ref": 1, "valid_until": "2027-10-31T00:00:00Z", "embedding": [/* 1024 dimensions */] }
chunk_textAlmacena un segmento de texto de los tokens 400 a 600 a partir de archivos PDF sin procesar. Esta segmentación de alta fidelidad divide los contratos extensos en segmentos superpuestos para preservar las cláusulas críticas. Mantiene el contenido no estructurado del documento almacenado de forma nativa junto con los registros de su base de datos operativa.embeddingAlmacena el vector de dimensión 1024 generado por Voyage AI. El modelo multilingüe asigna varios idiomas a un único espacio vectorial compartido. Esta alineación permite consultar documentos en español o alemán mediante cadenas de búsqueda en inglés.valid_until: Realiza un seguimiento de las fechas de vencimiento de las certificaciones de cumplimiento para eliminar automáticamente los registros de proveedores obsoletos.
Compilar la solución
Implemente la solución de gestión de riesgos de la cadena de suministro basada en agentes.
Requisitos previos
Asegúrese de tener las siguientes cuentas, claves y software antes de comenzar:
Cuenta deMongoDB Atlas: Un clúster de Atlas (nivel M10 o superior).
Clave API de Anthropic: Una clave API activa para potenciar el razonamiento y la planificación de LLM.
Docker Desktop: La aplicación necesaria para ejecutar los servicios de frontend y backend.
Configurar los ajustes de Atlas
Active las siguientes funcionalidades de Atlas antes de implementar el código:
Log in to your MongoDB Atlas account.
Enable the $rerank aggregation stage in your project settings.
Add your project-level Voyage Model API Key to your Atlas project settings.
Configurar e inicializar la base de datos
Configura tu base de datos, importa los archivos semilla y crea los índices necesarios para ejecutar la demostración.
Login to MongoDB Atlas and create a database named retail-supply-chain-risk in your Atlas cluster.
Import the five seed JSON files from the docs/setup/collections folder:
Select your new database on the Collections screen.
Click the plus (+) icon or click Create Collection to add each of the five collections.
Select each collection, click Import Data, and upload the respective JSON file.
Create the geospatial and search indexes required to run vector search, hybrid search, and geospatial queries. The index configurations live in the docs/setup/indexes folder. Execute the following steps to create each index.
mongosh "<your-connection-string>" --file suppliers-location-2dsphere.js mongosh "<your-connection-string>" --file external_conditions-epicentre-2dsphere.js mongosh "<your-connection-string>" --file suppliers_autoembed_index.js mongosh "<your-connection-string>" --file agent_memory_autoembed_index.js mongosh "<your-connection-string>" --file supplier_documents_vector_index.js mongosh "<your-connection-string>" --file supplier_documents_fulltext_index.js
Clonar el repositorio y configurar las variables de entorno.
Clona el repositorio del proyecto desde GitHub.
git clone https://github.com/mongodb-industry-solutions/retail-supply-chain-management.git
Configure las variables de entorno del frontend y del backend:
Copy the sample frontend/EXAMPLE.env to a new
.envfile in the same directory. Replace the placeholder values with your configuration details. SetBACKEND_URLtohttp://127.0.0.1:8000.Copy the sample backend/.env.example to a new
.envfile in the same directory. Replace the placeholder values with your configuration details. Add your Anthropic API key asLLM_API_KEY.
Construye y lanza la aplicación
Compile y ejecute su entorno multiservicio utilizando Docker Compose o ejecutando el backend y el frontend por separado.
Para iniciar la aplicación usando Docker Compose, ejecute:
make build
Para ejecutar los servicios manualmente, primero inicie el frontend:
cd frontend npm i npm run dev
A continuación, navegue hasta el directorio raíz e inicie el backend:
make uv_init make uv_sync source backend/.venv/bin/activate cd backend uvicorn main:app --reload
Abra el panel de control de la interfaz en http://localhost:3000 en su navegador. Consulte la documentación interactiva de la API en http://localhost:8000/docs.
Figura 5. Sistema de centro de proveedores inteligente
Read the user guide to navigate the demo.
Lecciones clave
Esta solución demuestra varios patrones arquitectónicos críticos para la creación de aplicaciones de cadena de suministro basadas en IA:
Cree una capa deinteligencia unificada para controlar los costos: Desvincule la gestión de proveedores de los sistemas heredados rígidos mediante la creación de una capa de inteligencia unificada en MongoDB Atlas. Consolide los datos operativos, las incrustaciones vectoriales y la memoria de los agentes en una sola plataforma sincronizando los datos del ERP con CDC. Esta estructura permite que los agentes lean el estado actual sin consultar directamente el ERP. Lea el mismo documento para realizar comprobaciones operativas y recuperar información, y luego refine los datos de forma determinista mediante filtros geoespaciales, búsqueda híbrida y reordenamiento antes de que un LLM los reciba. Controlar qué información llega al modelo optimiza el rendimiento del razonamiento y reduce los costos de ejecución.
Unifique los datos no estructurados en varios idiomas: almacene documentos no estructurados, como contratos en PDF, correos electrónicos e informes de auditoría escaneados, junto con registros estructurados de proveedores. Utilice Voyage AI para integrar estos diversos formatos en una única colección de MongoDB. Este diseño unificado permite realizar consultas semánticas en texto e imágenes, simplificando la arquitectura de recuperación sin necesidad de mantener sistemas de bases de datos independientes. Además, los modelos de integración multimodal permiten realizar consultas multilingües sin la sobrecarga de la traducción.
Keep Search and Reranking Inside Atlas: Consolidate Vector Search, full-text search, and native reranking in a single database query. Use
$rankFusionto run hybrid search, and chain native$rerankwith Voyage AI directly inside your aggregation pipeline. This eliminates extra network hops, API latency, and custom credential management.
Autores
Florencia Arin, MongoDB
Angie Guemes, MongoDB
Ronan Conlon, MongoDB
Daniel Jamir, MongoDB