Inicio / Artículos

Preguntas y respuestas en formato PDF sobre Azure AI Search y los agentes de Foundry

Indexa los PDFs de los cursos privados con embeddings, conecta un agente de Foundry al índice vectorial, y soluciona los problemas de autenticación e instrucciones que hacen que RAG parezca defectuoso.

Editor: REACTAPP.TOP9 min de lectura2147 palabras

Fuentes: Building a Grounded RAG Agent on Azure AI Search and Azure AI Foundry

Introducción

Una organización dedicada a la formación en forense digital cuenta con años de materiales didácticos en PDF: diapositivas, laboratorios y capítulos de referencia. Los analistas necesitan encontrar un concepto específico disperso en decenas de presentaciones. La búsqueda por palabras clave en archivos dispersos es lenta y poco fiable. El producto deseado son preguntas y respuestas en lenguaje sencillo basadas en ese corpus, no una paráfrasis de un libro de texto genérico.

Ese es el modelo RAG: recuperar fragmentos relevantes de un conjunto de documentos privados y utilizarlos como base para la generación de respuestas. Esta solución implementa este patrón de extremo a extremo en Azure: Azure AI Search indexa los PDF reales con embeddings, además de un agente de Azure AI Foundry que responde a partir del índice y no a partir del conocimiento general.

También se convirtió en una narrativa de depuración. Casi nada falló porque la idea fuera incorrecta; los fallos surgieron de pequeñas discrepancias entre recursos, modelos de autenticación y el comportamiento predeterminado del agente. Esos puntos de fricción se documentan en lugar de solucionarse.

Comprensión de la arquitectura

Cuatro servicios de Azure se encargan de cuatro tareas.

Blob Storage almacena los documentos originales: en este caso, PDFs forenses; cualquier corpus de dominio privado sigue la misma estructura.

Azure AI Search indexa y recupera información. Un conjunto de habilidades divide los documentos, llama a un modelo de incrustación y almacena el texto junto con los vectores. Al realizar una consulta, Search devuelve fragmentos semánticamente similares, no solo resultados basados en palabras clave.

Azure AI Foundry alberga los modelos y el agente: un despliegue de embeddings para la vectorización de índices/preguntas y un despliegue de chat para generar respuestas. El agente envuelve el modelo de chat con una fuente de conocimiento e instrucciones.

Identidad gestionada y RBAC determinan quién puede consultar qué. Las conexiones (Search→Blob, Search→embeddings, agent→index) deben priorizar roles específicos en lugar de claves integradas. Esta versión no logró una cadena completamente libre de claves; esa deficiencia se menciona a continuación.

Etapa uno: documentos de origen

Un contenedor privado de blobs (knowledge-docs) recibió los PDF del curso. El acceso se mantuvo privado, sin lectura anónima, en línea con el trato de los materiales como información sensible.

Etapa dos: despliegues de modelos en Azure AI Foundry

Hay dos despliegues dentro de un proyecto de Foundry:

  • Chat (chat-deploy) para generar respuestas
  • Embeddings (embed-deploy, text-embedding-3-small) para vectores de documentos y consultas
  • Confirme que ambos existen antes de conectar los conjuntos de habilidades o agentes de búsqueda; las implementaciones faltantes causan fallos de indexación opacos posteriormente.

    Tercera etapa: Azure AI Search y el índice vectorizado

    Cree un servicio de búsqueda y luego un índice cuyos campos contengan texto en fragmentos, vectores y metadatos de documentos. Asocie un conjunto de habilidades que:

    1. Extraiga bloques desde knowledge-docs
    2. Los divida en fragmentos superpuestos
    3. Llame a la implementación de embeddings
    4. Escriba los vectores en el índice

    Los indexadores necesitan permisos para leer los bloques y para llamar al endpoint de embeddings. Las asignaciones de roles que parecen “casi correctas” siguen fallando en tiempo de ejecución: verifique los IDs exactos de los recursos.

    Web Api response status: 'NotFound'
    DeploymentNotFound: The API deployment for this resource does not exist.
    
    Web Api response status: 'Unauthorized' (401)
    Access denied due to invalid subscription key or wrong API endpoint.
    
    Access denied when connecting to the MCP server ... HTTP 403 Forbidden
    
    You are an assistant that answers questions about digital forensics course material.
    For every user question, you MUST first search the connected knowledge base before answering.
    Only answer using information retrieved from the knowledge base.
    If the knowledge base returns no relevant results, say so explicitly rather than answering from general knowledge.
    

    Etapa cuatro: fallos en el indexado y su significado

    Rara vez ocurren fallos en el indexado con una sola causa clara. Formas comunes de presentarse estos problemas:

    • El conjunto de habilidades no puede conectarse a la implementación de embedding (autenticación incorrecta o endpoint equivocado)
    • El programa de indexado se ejecuta, pero los documentos siguen en cero (ruta del contenedor o referencia al conjunto de habilidades)
    • Los vectores se escriben con dimensiones incorrectas (diferencia entre el modelo y el esquema de indexado)

    Trate cada caso como un error de configuración, no como un fallo relacionado con el concepto RAG. Registre el historial de ejecución del indexador antes de cambiar tres parámetros a la vez.

    Etapa cinco: conectar el índice a un agente

    En Foundry, adjunte el índice de búsqueda como fuente de conocimiento para el agente. Las instrucciones deben exigir que se citen los pasajes recuperados y rechazar la respuesta cuando el índice no devuelva nada relevante. Pruebe con una pregunta cuya respuesta solo exista en una página PDF: el éxito se mide por una cita fundamentada, no por una conjetura acertada.

    Etapa seis: dos brechas de comportamiento

    Más allá de la configuración, surgieron dos problemas de comportamiento:

    1. Solucionamientos excesivamente serviciales — el modelo de chat respondía con conocimientos previos cuando no había resultados en la búsqueda. Refuerce las instrucciones y, cuando sea posible, los controles de fundamentación para que una búsqueda sin resultados genere la respuesta “no está en el corpus”.
    2. Inconsistencia en la autenticación — algunos enlaces seguían utilizando claves, mientras que otros empleaban identidades gestionadas. La autenticación mixta dificulta los cambios y oculta qué entidad logró realmente el acceso.

    Ninguno es una casilla de verificación de portal; ambos son decisiones de producto codificadas en instrucciones y diseño de identidad.

    Qué está sucediendo realmente detrás de escena

    Se incluye una pregunta del usuario, Search devuelve los fragmentos más relevantes, la instrucción al agente recibe esos fragmentos junto con las instrucciones, y el modelo de chat genera una respuesta restringida (idealmente) a ese contexto. El almacenamiento en bloques nunca se comunica directamente con el agente; Search es el límite de recuperación. Foundry se encarga de la orquestación y aloja los modelos.

    Dificultades y lecciones aprendidas

    • Es necesario verificar la disponibilidad de la región y del modelo antes de crear recursos.
    • La dimensión del embedding en el esquema del índice debe coincidir exactamente con el modelo de embedding elegido.
    • Los errores de RBAC parecen índices vacíos hasta que se consultan los detalles del indexador.
    • Las instrucciones para el agente forman parte de la corrección, no son solo un adorno.
  • Dokumente el modelo de autenticación que realmente implementó, incluidas las claves temporales.
  • Puntos clave

    Azure RAG consiste en una cadena de pequeños componentes: privacidad de los blobs, permisos para skillset→embed, esquema del índice↔dimensiones del modelo, adjunción de conocimiento por parte del agente y política de respuestas basadas en evidencias. Si se gestionan bien, la arquitectura resulta sencilla, y eso es algo positivo. Si se omite alguno de ellos, tendrá que depurar durante días pensando que “RAG no funciona”.

    Consejo operativo: mantenga un manual de una página que enumere los nombres exactos de los recursos, los nombres de las implementaciones (no los nombres de los modelos base), el nombre del índice, el nombre del skillset y las identidades gestionadas o claves que se utilizan en cada paso. Cuando el indexador falle a las 02:00, esa página será mucho más útil que buscar entre capturas de pantalla del portal. Agregue una tarea semanal que plantee tres preguntas clave cuyas respuestas se encuentren en páginas conocidas, y que impida la compilación si disminuye el nivel de fundamentación en las respuestas.

    Consejo operativo: mantenga un manual de una página que enumere los nombres exactos de los recursos, los nombres de las implementaciones (no los nombres de los modelos base), el nombre del índice, el nombre del conjunto de habilidades y las identidades gestionadas o claves que se utilizan en cada paso. Cuando un indexador falla a las 02:00, esa página permite recuperar la información mediante capturas de pantalla del portal. Agregue una tarea semanal que haga tres preguntas clave cuyas respuestas se encuentran en páginas conocidas, y que haga fallar el proceso de compilación si la fiabilidad disminuye.

    Consejo operativo: mantenga un manual de una página que enumere los nombres exactos de los recursos, los nombres de las implementaciones (no los nombres de los modelos base), el nombre del índice, el nombre del conjunto de habilidades y las identidades gestionadas o claves que se utilizan en cada paso. Cuando un indexador falla a las 02:00, esa página permite recuperar la información mediante capturas de pantalla del portal. Agregue una tarea semanal que haga tres preguntas clave cuyas respuestas se encuentran en páginas conocidas, y que haga fallar el proceso de compilación si la fiabilidad disminuye.

    Consejo operativo: mantenga un manual de una página que enumere los nombres exactos de los recursos, los nombres de las implementaciones (no los nombres de los modelos base), el nombre del índice, el nombre del conjunto de habilidades y las identidades gestionadas o claves que se utilizan en cada paso. Cuando un indexador falla a las 02:00, esa página permite recuperar la información mediante capturas de pantalla del portal. Agregue una tarea semanal que haga tres preguntas clave cuyas respuestas se encuentran en páginas conocidas, y que haga fallar el proceso de compilación si la fiabilidad disminuye.

    Consejo operativo: mantenga un manual de una página que enumere los nombres exactos de los recursos, los nombres de las implementaciones (no los nombres de los modelos base), el nombre del índice, el nombre del conjunto de habilidades y las identidades gestionadas o claves que se utilizan en cada paso. Cuando un indexador falla a las 02:00, esa página permite recuperar la información mediante capturas de pantalla del portal. Agregue una tarea semanal que haga tres preguntas clave cuyas respuestas se encuentran en páginas conocidas, y que haga fallar el proceso de compilación si la fiabilidad disminuye.

    Consejo operativo: mantenga un manual de una página que enumere los nombres exactos de los recursos, los nombres de las implementaciones (no los nombres de los modelos base), el nombre del índice, el nombre del conjunto de habilidades y las identidades gestionadas o claves que se utilizan en cada paso. Cuando un indexador falla a las 02:00, esa página permite recuperar la información mediante capturas de pantalla del portal. Agregue una tarea semanal que haga tres preguntas clave cuyas respuestas se encuentran en páginas conocidas, y que haga fallar el proceso de compilación si la fiabilidad disminuye.

    Consejo operativo: mantenga un manual de una página que enumere los nombres exactos de los recursos, los nombres de las implementaciones (no los nombres de los modelos base), el nombre del índice, el nombre del conjunto de habilidades y las identidades gestionadas o claves que se utilizan en cada paso. Cuando un indexador falla a las 02:00, esa página permite recuperar la información mediante capturas de pantalla del portal. Agregue una tarea semanal que haga tres preguntas clave cuyas respuestas se encuentran en páginas conocidas, y que haga fallar el proceso de compilación si la fiabilidad disminuye.

    Consejo operativo: mantenga un manual de una página que enumere los nombres exactos de los recursos, los nombres de las implementaciones (no los nombres de los modelos base), el nombre del índice, el nombre del conjunto de habilidades y las identidades gestionadas o claves que se utilizan en cada paso. Cuando un indexador falla a las 02:00, esa página permite recuperar la información mediante capturas de pantalla del portal. Agregue una tarea semanal que haga tres preguntas clave cuyas respuestas se encuentran en páginas conocidas, y que haga fallar el proceso de compilación si la fiabilidad disminuye.

    Consejo operativo: mantenga un manual de una página que enumere los nombres exactos de los recursos, los nombres de las implementaciones (no los nombres de los modelos base), el nombre del índice, el nombre del conjunto de habilidades y las identidades gestionadas o claves que se utilizan en cada paso. Cuando un indexador falla a las 02:00, esa página permite recuperar la información mediante capturas de pantalla del portal. Agregue una tarea semanal que haga tres preguntas clave cuyas respuestas se encuentran en páginas conocidas, y que haga fallar el proceso de compilación si la fiabilidad disminuye.

    Consejo operativo: mantenga un manual de una página que enumere los nombres exactos de los recursos, los nombres de las implementaciones (no los nombres de los modelos base), el nombre del índice, el nombre del conjunto de habilidades y las identidades gestionadas o claves que se utilizan en cada paso. Cuando un indexador falla a las 02:00, esa página permite recuperar la información mediante capturas de pantalla del portal. Agregue una tarea semanal que haga tres preguntas clave cuyas respuestas se encuentran en páginas conocidas, y que haga fallar el proceso de compilación si la fiabilidad disminuye.

    Consejo operativo: mantenga un manual de una página que enumere los nombres exactos de los recursos, los nombres de las implementaciones (no los nombres de los modelos base), el nombre del índice, el nombre del conjunto de habilidades y las identidades gestionadas o claves que se utilizan en cada paso. Cuando un indexador falla a las 02:00, esa página permite recuperar la información mediante capturas de pantalla del portal. Agregue una tarea semanal que haga tres preguntas clave cuyas respuestas se encuentran en páginas conocidas, y que haga fallar el proceso de compilación si la fiabilidad disminuye.

    Consejo operativo: mantenga un manual de una página que enumere los nombres exactos de los recursos, los nombres de las implementaciones (no los nombres de los modelos base), el nombre del índice, el nombre del conjunto de habilidades y las identidades gestionadas o claves que se utilizan en cada paso. Cuando un indexador falla a las 02:00, esa página permite recuperar la información mediante capturas de pantalla del portal. Agregue una tarea semanal que haga tres preguntas clave cuyas respuestas se encuentran en páginas conocidas, y que haga fallar el proceso de compilación si la fiabilidad disminuye.

    Consejo operativo: mantenga un manual de una página que enumere los nombres exactos de los recursos, los nombres de las implementaciones (no los nombres de los modelos base), el nombre del índice, el nombre del conjunto de habilidades y las identidades gestionadas o claves que se utilizan en cada paso. Cuando un indexador falla a las 02:00, esa página permite recuperar la información mediante capturas de pantalla del portal. Agregue una tarea semanal que haga tres preguntas clave cuyas respuestas se encuentran en páginas conocidas, y que haga fallar el proceso de compilación si la fiabilidad disminuye.

    Consejo operativo: mantenga un manual de una página que enumere los nombres exactos de los recursos, los nombres de las implementaciones (no los nombres de los modelos base), el nombre del índice, el nombre del conjunto de habilidades y las identidades gestionadas o claves que se utilizan en cada paso. Cuando un indexador falla a las 02:00, esa página permite recuperar la información mediante capturas de pantalla del portal. Agregue una tarea semanal que haga tres preguntas clave cuyas respuestas se encuentran en páginas conocidas, y que haga fallar el proceso de compilación si la fiabilidad disminuye.

    Consejo operativo: mantenga un manual de una página que enumere los nombres exactos de los recursos, los nombres de las implementaciones (no los nombres de los modelos base), el nombre del índice, el nombre del conjunto de habilidades y las identidades gestionadas o claves que se utilizan en cada paso. Cuando un indexador falla a las 02:00, esa página permite recuperar la información mediante capturas de pantalla del portal. Agregue una tarea semanal que haga tres preguntas clave cuyas respuestas se encuentran en páginas conocidas, y que haga fallar el proceso de compilación si la fiabilidad disminuye.

    Lecturas relacionadas

  • Guardrails del portal de Azure AI Foundry versus verificaciones de PII a nivel de aplicación — Los filtros del portal abarcan casos de evasión de restricciones y categorías de datos sensibles que la capa anterior en Python pasó por alto; pruébelos con solicitudes reales y mantenga protecciones de código para las reglas del dominio.
  • Créditos de Azure OpenAI al iniciar: nombres de despliegue, regiones e higiene de archivos .env — Los créditos para estudiantes de Azure hacen que Azure OpenAI sea práctico para laboratorios RAG; si elige una región con el modelo, indique el nombre del despliegue y nunca guarde claves.
  • Dos trabajos con LLM en una GPU: vLLM LoRA, agentes y perfeccionamiento con Azure ML — Servir tráfico de agentes interactivos y por lotes desde una sola tarjeta, con LoRA según la demanda, análisis con ClickHouse, artefactos en Blob y entrenamiento con Unsloth registrado en MLflow.
  • Microsoft Foundry convierte las llamadas a la API de modelos en operaciones de IA gestionadas — Pasar de completaciones puntuales a catálogos, agentes, RBAC, seguimiento y evaluación en una plataforma unificada de Azure AI.
  • Production RAG en Azure: fragmentación, búsqueda híbrida, filtros y citaciones — Las necesidades de recuperación empresarial requieren fragmentos conscientes de la estructura, búsqueda híbrida, filtros ACL, reclasificación, prompts basados en datos reales y evaluación, no una demostración en PDF.
  • APIM frente a las llamadas de Agentic Foundry con RBAC de mínimo privilegio — Invocaciones del modelo frontal mediante API Management, identidades gestionadas, roles personalizados en el plano de datos y backends de Function App.