Nota
Atlas está actualmente disponible como base de conocimientos en Regiones deAWS ubicadas únicamente en Estados Unidos.
Puede utilizar MongoDB Atlas como base de conocimientospara que Amazon Bedrock cree aplicaciones de IA generativas, implemente generación aumentada por recuperación (RAG) y cree agentes.
Overview
La integración de Amazon Bedrock Knowledge Base con Atlas permite los siguientes casos de uso:
Utilice modelos básicos con MongoDB Vector Search para crear aplicaciones de IA e implementar RAG. Para comenzar,consulte "Comenzar".
Habilite la búsqueda híbrida con MongoDB Vector Search y MongoDB Search para su base de conocimientos. Para obtener más información, consulte Búsqueda híbrida con Amazon Bedrock y Atlas.
Empezar
Este tutorial muestra cómo empezar a usar MongoDB Vector Search con Amazon Bedrock. En concreto, se realizan las siguientes acciones:
Carga datos personalizados en un bucket de Amazon S3.
Opcionalmente, configure un servicio de punto final mediante AWS PrivateLink.
Cree un índice de búsqueda vectorial MongoDB en sus datos.
Crear una base de conocimientos para almacenar datos en Atlas.
Cree un agente que utilice MongoDB Vector Search para implementar RAG.
Segundo plano
Amazon Bedrock es un servicio totalmente gestionado para crear aplicaciones de IA generativa. Permite aprovechar los modelos de base (FM) de diversas empresas de IA como una única API.
Puede usar MongoDB Vector Search como base de conocimiento para Amazon Bedrock, con el fin de almacenar datos personalizados en Atlas y crear un agente para implementar RAG y responder preguntas sobre sus datos. Para obtener más información sobre RAG, consulte Recuperación-Generación Aumentada (RAG) con MongoDB.
Requisitos previos
Para completar este tutorial, debes tener lo siguiente:
Un clúster Atlas M10+ ejecutando MongoDB versión 6.0.11, 7.0.2, o posterior.
Una cuenta de AWS con un secreto que contiene credenciales para su clúster Atlas.
Acceso a los siguientes modelos de cimentación utilizados en este tutorial:
La AWS CLI y npm están instalados si planea configurar un servicio de punto final de AWS PrivateLink.
Cargar datos personalizados
Si aún no tiene un bucket de Amazon S3 que contenga datos de texto, cree un nuevo bucket y cargue el siguiente PDF de acceso público sobre las mejores prácticas de MongoDB:
Descargar el PDF.
Vaya a la Guía de mejores prácticas para MongoDB.
Haga clic en cualquiera de los dos Read Whitepaper o Email me the PDF para acceder al PDF.
Descargue y guarde el PDF localmente.
Carga el PDF en un bucket de Amazon S3.
Sigue los pasos para crear un3 bucket S. Asegúrate de usar un descriptivo.Bucket Name
Sigue los pasos para subir un archivo a tu Bucket. Selecciona el archivo que contiene el PDF que acabas de descargar.
Configurar un servicio de punto final
De forma predeterminada, Amazon Bedrock se conecta a su base de conocimientos a través de la red pública de internet. Para mayor seguridad, MongoDB Vector Search permite conectarse a su base de conocimientos a través de una red virtual mediante un servicio de punto de enlace de AWS PrivateLink.
De manera opcional, complete los siguientes pasos para habilitar un servicio de punto final que se conecte a un punto final privado de AWS PrivateLink para su clúster Atlas:
Configurar un punto final privado en Atlas.
Siga los pasos para configurar un punto de conexión privado de AWS PrivateLink para su clúster Atlas. Asegúrese de usar un descriptivo VPC ID para identificar su punto de conexión privado.
Para obtener más información, consulte Más información sobre los puntos finales privados en Atlas.
Configurar el servicio de punto final.
MongoDB y sus socios proporcionan un kit de desarrollo en la nube (CDK) que puede utilizar para configurar un servicio de punto final respaldado por un balanceador de carga de red que reenvía tráfico a su punto final privado.
Siga los pasos especificados en el repositorio GitHub del CDK para preparar y ejecutar el script del CDK.
Cree el índice de búsqueda vectorial de MongoDB
En esta sección, configurará Atlas como una base de datos vectorial, también llamada almacén vectorial, creando un índice de búsqueda vectorial MongoDB en su colección.
Acceso requerido
Para crear un índice de búsqueda vectorial de MongoDB, debe tener Project Data Access Admin o acceso superior al proyecto Atlas.
Procedimiento
En Atlas, ve a la página Data Explorer de tu proyecto.
Si aún no aparece, se debe seleccionar la organización que contiene el proyecto en el menú Organizations de la barra de navegación.
Si aún no se muestra, seleccione su proyecto en el menú Projects de la barra de navegación.
En la barra lateral, haz clic en Data Explorer en la sección Database.
El Data Explorer se muestra.
En Atlas, vaya a la Search & Vector Search página de su clúster.
Puedes ir a la página de búsqueda de MongoDB desde la opción Search & Vector Search o desde el Data Explorer.
Si aún no aparece, se debe seleccionar la organización que contiene el proyecto en el menú Organizations de la barra de navegación.
Si aún no se muestra, seleccione su proyecto en el menú Projects de la barra de navegación.
En la barra lateral, haz clic en Search & Vector Search en la sección Database.
Si no tienes clústeres, haz clic en Create cluster para crear uno. Para obtener más información, consulta Crear un clúster.
Si el proyecto tiene varios clústeres, se debe seleccionar el clúster que se desea usar en el menú desplegable Select cluster y luego se debe hacer clic en Go to Search.
Aparece la página de Búsqueda y Búsqueda Vectorial.
Si aún no aparece, se debe seleccionar la organización que contiene el proyecto en el menú Organizations de la barra de navegación.
Si aún no se muestra, seleccione su proyecto en el menú Projects de la barra de navegación.
En la barra lateral, haz clic en Data Explorer en la sección Database.
Expanda la base de datos y seleccione la colección.
Haga clic en la pestaña Indexes para la colección.
Haga clic en el enlace Search and Vector Search en el banner.
Aparece la página de Búsqueda y Búsqueda Vectorial.
Se debe iniciar la configuración del índice.
Realiza las siguientes selecciones en la página y luego haz clic en Next.
Search Type | Seleccione el tipo de índice Vector Search. |
Index Name and Data Source | Especifique la siguiente información:
|
Configuration Method | For a guided experience, select Visual Editor. To edit the raw index definition, select JSON Editor. |
IMPORTANTE:
El índice de MongoDB Search se llama default por defecto. Si se mantiene este nombre, el índice será el índice de búsqueda por defecto para cualquier query de MongoDB Search que no especifique una opción de index diferente en sus operadores. Si se crean varios índices, recomendamos mantener una convención de nomenclatura coherente y descriptiva en todos los índices.
Defina el índice de búsqueda vectorial de MongoDB.
Esta definición de índice de tipo vectorSearch indexa los siguientes campos:
embeddingcampo como tipo de vector. Elembeddingcampo contiene las incrustaciones vectoriales creadas con el modelo de incrustación especificado al configurar la base de conocimiento. La definición del índice especifica las1024dimensiones del vector y mide la similitudcosinemediante.bedrock_metadataLos camposbedrock_text_chunky se utilizanx-amz-bedrock-kb-document-page-numbercomo tipo de filtro para prefiltrar los datos. También deberá especificar estos campos en Amazon Bedrock al configurar la base de conocimientos.
Nota
Si creó previamente un índice con el campo de filtro page_number, debe actualizar su definición para usar el nuevo nombre de campo de filtro x-amz-bedrock-kb-document-page-number. Amazon Bedrock ha actualizado el nombre del campo y los índices que usan el nombre antiguo ya no funcionan correctamente con las bases de conocimiento de Amazon Bedrock.
Especifique embedding como campo a indexar y especifique 1024 dimensiones.
Para configurar el índice, haga lo siguiente:
Selecciona Cosine del menú desplegable Similarity Method.
En la sección Filter Field, especifique los campos
bedrock_metadata,bedrock_text_chunkyx-amz-bedrock-kb-document-page-numberpara filtrar los datos.
Pegue la siguiente definición de índice en el editor JSON:
1 { 2 "fields": [ 3 { 4 "numDimensions": 1024, 5 "path": "embedding", 6 "similarity": "cosine", 7 "type": "vector" 8 }, 9 { 10 "path": "bedrock_metadata", 11 "type": "filter" 12 }, 13 { 14 "path": "bedrock_text_chunk", 15 "type": "filter" 16 }, 17 { 18 "path": "x-amz-bedrock-kb-document-page-number", 19 "type": "filter" 20 } 21 ] 22 }
Verifique el estado.
El índice recién creado aparece en la pestaña Atlas Search. Mientras se construye el índice, el campo Status muestra Build in Progress. Cuando se termina de construir el índice, el campo Status muestra Active.
Nota
Las colecciones más grandes tardan más en indexarse. Se recibirá una notificación por correo electrónico cuando el índice haya terminado de construirse.
Crear una base de conocimientos
En esta sección, creará una base de conocimientos para cargar datos personalizados en su tienda de vectores.
Navega a la consola de gestión de Amazon Bedrock.
Inicie sesión en la consola de AWS.
En la esquina superior izquierda, haga clic en el menú desplegable Services.
Haga clic en Machine Learning y luego seleccione Amazon Bedrock.
Administrar el acceso al modelo.
Amazon Bedrock no otorga acceso a FMs automáticamente. Si aún no lo has hecho, sigue los pasos para agregar acceso al modelo para Titan Embeddings G1 - Texto y Anthropic Claude V2.1 modelos.
Crear la base de conocimientos.
En la navegación izquierda de la consola de Amazon Bedrock, haga clic en Knowledge Bases.
Haga clic en Create y luego seleccione Knowledge base with vector store.
Especifique
mongodb-atlas-knowledge-basecomo Knowledge Base name.Haga clic en Next.
De forma predeterminada, Amazon Bedrock crea una nueva función de IAM para acceder a la base de conocimientos.
Agregar una fuente de datos.
Especifique un nombre para la fuente de datos utilizada por la base de conocimiento.
Ingrese el URI del contenedor S3 que contiene su fuente de datos. O bien, haga clic Browse S3 en y busque el contenedor S3 que contiene su fuente de datos en la lista.
Haga clic en Next.
Amazon Bedrock muestra modelos de integración disponibles que puedes usar para convertir los datos de texto de tu fuente de datos en integraciones vectoriales.
Seleccione el modelo Titan Embeddings G1 - Text.
Conecte Atlas a la base de conocimientos.
En la sección Vector database, seleccione Use an existing vector store.
Seleccione MongoDB Atlas y configure las siguientes opciones:
haga clic para ampliarHostnamePara, introduzca la URL de su clúster Atlas, ubicada en su cadena de conexión. El nombre de host tiene el siguiente formato:
<clusterName>.mongodb.net Para el Database name, introduce
bedrock_db.Para el Collection name, introduce
test.Credentials secret ARNPara, ingrese el ARN del secreto que contiene las credenciales de su clúster Atlas. Para obtener más información, consulte los conceptos de AWS Secrets Manager.
En la sección Metadata field mapping, configura las siguientes opciones para determinar el MongoDB búsqueda vectorial índice y los nombres de campo que Atlas utiliza para incorporar y almacenar tu fuente de datos:
haga clic para ampliarPara el Vector search index name, introduce
vector_index.Para el Vector embedding field path, introduce
embedding.Para el Text field path, introduce
bedrock_text_chunk.Para el Metadata field path, introduce
bedrock_metadata.
Nota
Opcionalmente, puede especificar el Text search index name campo para configurar la búsqueda híbrida. Para obtener más información, consulte Búsqueda híbrida con Amazon Bedrock y Atlas.
Si configuró un servicio de punto final, ingrese PrivateLink Service Name su.
Haga clic en Next.
Sincronizar la fuente de datos.
Después de que Amazon Bedrock cree la base de conocimientos, le solicitará que sincronice sus datos. En la sección, seleccione su origen de datos Data source y haga clic en Sync para sincronizar los datos del bucket S3 y cargarlos en Atlas.
Cuando se complete la sincronización, si está usando Atlas, puede verificar sus incrustaciones vectoriales navegando al espacio de nombres en bedrock_db.test la interfaz de usuario de Atlas.
Construir un agente
En esta sección,implementará un agente que utiliza MongoDB Vector Search para implementar RAG y responder preguntas sobre sus datos. Al solicitarle ayuda a este agente, este realiza lo siguiente:
Se conecta a su base de conocimientos para acceder a los datos personalizados almacenados en Atlas.
Utiliza MongoDB Vector Search para recuperar documentos relevantes de su almacén de vectores según las indicaciones.
Aprovecha un modelo de chat de IA para generar una respuesta basada en el contexto basada en estos documentos.
Complete los siguientes pasos para crear y probar el agente RAG:
Seleccione un modelo y proporcione una solicitud.
De forma predeterminada, Amazon Bedrock crea un nuevo rol de IAM para acceder al agente. En la Agent details sección, especifique lo siguiente:
En los menús desplegables, selecciona Anthropic y Claude V2.1 como proveedor y modelo de IA utilizado para responder preguntas sobre tus datos.
Nota
Amazon Bedrock no otorga acceso a los FM automáticamente. Si aún no lo ha hecho, siga los pasos para agregar acceso al2 1 modelo Anthropic Claude V..
Proporcionar instrucciones al agente para que sepa cómo completar la tarea.
Por ejemplo, si está utilizando los datos de muestra, pegue las siguientes instrucciones:
You are a friendly AI chatbot that answers questions about working with MongoDB. Haga clic en Save.
Añade la base de conocimientos.
Para conectar el agente a la base de conocimiento que usted creó:
En la sección Knowledge Bases, haga clic en Add.
Selecciona mongodb-atlas-knowledge-base del menú desplegable.
Describe la base de conocimientos para determinar cómo debe interactuar el agente con la fuente de datos.
Si está utilizando los datos de muestra, pegue las siguientes instrucciones:
This knowledge base describes best practices when working with MongoDB. Haga clic en Add y, a continuación, haga clic en Save.
Pruebe el agente.
Haga clic en el botón Prepare.
Haga clic en Test. Amazon Bedrock mostrará una ventana de prueba a la derecha de los detalles de su agente, si aún no está visible.
En la ventana de pruebas, introduzca una solicitud. El agente solicita al modelo, utiliza MongoDB Vector Search para recuperar los documentos relevantes y genera una respuesta basada en ellos.
Si utilizó los datos de muestra, introduzca la siguiente solicitud. La respuesta generada puede variar.
What's the best practice to reduce network utilization with MongoDB? The best practice to reduce network utilization with MongoDB is to issue updates only on fields that have changed rather than retrieving the entire documents in your application, updating fields, and then saving the document back to the database. [1] Tip
Haga clic en la anotación en la respuesta del agente para ver el fragmento de texto que recuperó MongoDB Vector Search.
Otros recursos
Para solucionar problemas, consulte Solución de problemas de integración de la base de conocimientos de Amazon Bedrock.

