Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Nota
Búsqueda de Azure AI está disponible a través del portal de Azure, las API REST y los SDK de Azure. También respalda Foundry IQ, la capa de conocimiento administrada que transforma el contenido empresarial en bases de conocimiento reutilizables y compatibles con permisos para agentes en el portal de Microsoft Foundry.
Importante
Estas características y funcionalidades admiten conexiones a otros servicios de servicios Microsoft y de terceros. El uso de estos servicios está sujeto a sus respectivos términos y podría dar lugar a procesamiento o almacenamiento de datos fuera del límite de cumplimiento de Azure, así como a los datos que fluyen a los límites de cumplimiento de Azure.
Es su responsabilidad gestionar si sus datos saldrán fuera de los límites geográficos y de cumplimiento normativo de su organización, así como cualquier implicación relacionada, y garantizar que se hayan establecido los permisos, límites y aprobaciones adecuados.
Es responsable de revisar y probar cuidadosamente las aplicaciones que compile en el contexto de sus casos de uso específicos y de tomar todas las decisiones y personalizaciones adecuadas. Esto incluye implementar sus propias mitigaciones de IA responsables, como metaprompts, filtros de contenido u otros sistemas de seguridad, y garantizar que las aplicaciones cumplan los estándares de calidad, confiabilidad, seguridad y confiabilidad adecuados. Para obtener más información, consulte la nota de transparencia Búsqueda de Azure AI.
En este artículo, aprenderá a generar subtítulos mediante enriquecimiento con IA y un conjunto de habilidades. Las imágenes suelen contener información útil relevante en escenarios de búsqueda. Puede vectorizar imágenes para representar contenido visual en el índice de búsqueda. O bien, puede usar el enriquecimiento con IA y los conjuntos de aptitudes para crear y extraer texto buscable a partir de imágenes.
La aptitud de solicitud de GenAI puede generar una descripción de cada imagen del origen de datos, y el indexador inserta esa descripción en un índice de búsqueda. Para ver las descripciones, ejecute una consulta que las incluya en la respuesta.
Requisitos previos
Para trabajar con contenido de imagen en un conjunto de aptitudes, necesita lo siguiente:
- Un origen de datos admitido. Se recomienda Azure Storage.
- Archivos o blobs que contienen imágenes.
- Acceso de lectura al origen de datos admitido. En este artículo se usa la autenticación basada en claves, pero los indexadores también pueden conectarse mediante la identidad del servicio de búsqueda y la autenticación Microsoft Entra ID. En el caso del control de acceso basado en roles, asigne roles en el origen de datos para permitir el acceso de lectura por la identidad del servicio. Si está probando en una máquina de desarrollo local, asegúrese de que también tiene acceso de lectura en la fuente de datos compatible.
- Indexador de búsqueda configurado para acciones de imagen.
- Conjunto de aptitudes con la aptitud de solicitud de GenAI.
- Índice de búsqueda con campos para recibir la salida de texto generada, además de asignaciones de campos de salida en el indexador que establecen las asociaciones.
Opcionalmente, puede definir proyecciones para aceptar la salida analizada por imágenes en un almacén de conocimiento para escenarios de minería de datos.
Configuración de indizadores para el procesamiento de imágenes
Una vez configurados los archivos de origen, habilite la normalización de imágenes estableciendo el imageAction parámetro en la configuración del indexador. La normalización de imágenes ayuda a que las imágenes sean más uniformes para el procesamiento descendente. La normalización de imágenes incluye las siguientes operaciones:
- Las imágenes grandes se redimensionan a un alto y un ancho máximos para que sean uniformes.
- En el caso de las imágenes que tienen metadatos que especifican orientación, la rotación de imágenes se ajusta para la carga vertical.
Tenga en cuenta que habilitar imageAction (establecer este parámetro en distinto de none) incurrirá en un cargo adicional por la extracción de imágenes según los precios de Búsqueda de Azure AI.
Cree o actualice un indexador para establecer las propiedades de configuración:
{ "parameters": { "configuration": { "dataToExtract": "contentAndMetadata", "parsingMode": "default", "imageAction": "generateNormalizedImages" } } }Establézcalo
dataToExtractencontentAndMetadata(obligatorio).Verifique que el campo
parsingModeesté establecido en predeterminado (obligatorio).Este parámetro determina la granularidad de los documentos de búsqueda creados en el índice. El modo predeterminado configura una correspondencia uno a uno para que un blob tenga como resultado un documento de búsqueda. Si los documentos son grandes o si las aptitudes requieren fragmentos de texto más pequeños, puede agregar la aptitud División de texto que subdivide un documento en paginación con fines de procesamiento. Pero para escenarios de búsqueda, se requiere un blob por documento si el enriquecimiento incluye el procesamiento de imágenes.
Configúrelo para habilitar el nodo
imageActionen un árbol de enriquecimiento (obligatorio):normalized_imagesgenerateNormalizedImagespara generar una matriz de imágenes normalizadas como parte del descifrado de documentos.generateNormalizedImagePerPage(solo se aplica a PDF) para generar una matriz de imágenes normalizadas en las que cada página del PDF se representa en una imagen de salida. En el caso de los archivos que no son PDF, el comportamiento de este parámetro es similar a si hubiera establecidogenerateNormalizedImages. Sin embargo, la configuracióngenerateNormalizedImagePerPagepuede hacer que la operación de indexación sea menos eficaz por diseño (especialmente para documentos grandes), ya que es necesario generar varias imágenes.
Opcionalmente, ajuste el ancho o alto de las imágenes normalizadas generadas:
normalizedImageMaxWidth se mide en píxeles. El valor predeterminado es 2000. El valor máximo es 10 000.
normalizedImageMaxHeight se mide en píxeles. El valor predeterminado es 2000. El valor máximo es 10 000.
Acerca de las imágenes normalizadas
Cuando imageAction se establece en un valor distinto de ninguno, el nuevo normalized_images campo contiene una matriz de imágenes. Cada imagen es un tipo complejo que tiene los siguientes miembros:
| Miembro de la imagen | Descripción |
|---|---|
| datos | Cadena codificada en BASE64 de la imagen normalizada en formato JPEG. |
| Ancho | Ancho de la imagen normalizada en píxeles. |
| altura | Alto de la imagen normalizada en píxeles. |
| originalWidth | Ancho original de la imagen antes de la normalización. |
| originalHeight | Alto original de la imagen antes de la normalización. |
| rotationFromOriginal | Rotación en grados en sentido contrario a las agujas del reloj realizada para crear la imagen normalizada. Valor entre 0 grados y 360 grados. Este paso lee los metadatos de la imagen generada por una cámara o escáner. Normalmente un múltiplo de 90 grados. |
| contentOffset | El desplazamiento de caracteres en el campo de contenido desde donde se extrajo la imagen. Este campo solo es aplicable a los archivos con imágenes incrustadas. La contentOffset para las imágenes extraídas de los documentos PDF siempre está al final del texto en la página del documento de donde se extrajeron. Esto significa que las imágenes aparecen después de todo el texto de esa página, independientemente de la ubicación original de la imagen en la página. |
| númeroDePágina | Si la imagen se extrajo o se representa de un PDF, este campo contiene el número de página en el PDF del que se extrajo o se ha representado, a partir de 1. Si la imagen no procede de un PDF, este campo es 0. |
Valor de ejemplo de normalized_images:
[
{
"data": "BASE64 ENCODED STRING OF A JPEG IMAGE",
"width": 500,
"height": 300,
"originalWidth": 5000,
"originalHeight": 3000,
"rotationFromOriginal": 90,
"contentOffset": 500,
"pageNumber": 2
}
]
Definición de conjuntos de aptitudes para el procesamiento de imágenes
Esta sección complementa los artículos de referencia de aptitudes proporcionando contexto para trabajar con entradas, salidas y patrones de aptitudes, en relación con el procesamiento de imágenes.
- Cree o actualice un conjunto de aptitudes para agregar aptitudes.
Una vez que se crea el marco básico del conjunto de aptitudes y se configuran las herramientas de Foundry, puede centrarse en cada aptitud de imagen individual, definir entradas y contexto de origen y asignar salidas a campos de un índice o almacén de conocimiento.
Nota
Para ver un conjunto de aptitudes de ejemplo que combina el procesamiento de imágenes con el procesamiento de lenguaje natural de bajada, consulte REST Tutorial: Uso de REST e IA para generar contenido que se puede buscar a partir de blobs Azure. Muestra cómo alimentar la salida de la creación de imágenes de aptitudes en el reconocimiento de entidades y la extracción de frases clave.
Entradas de ejemplo para el procesamiento de imágenes
Como se indicó, las imágenes se extraen durante el descifrado de documentos y, a continuación, se normalizan como un paso preliminar. Las imágenes normalizadas son las entradas de cualquier aptitud de procesamiento de imágenes y siempre se representan en un árbol de documentos enriquecido de una de estas dos maneras:
-
/document/normalized_images/*es para los documentos que se procesan en su totalidad.
{
"@odata.type": "#Microsoft.Skills.Custom.ChatCompletionSkill",
"context": "/document/normalized_images/*",
"uri": "https://contoso.openai.azure.com/openai/deployments/contoso-gpt-4o/chat/completions?api-version=2025-01-01-preview",
"apiKey": "<YOUR-API-KEY here>",
"inputs": [
{
"name": "image",
"source": "/document/normalized_images/*/data"
},
{
"name": "systemMessage",
"source": "='You are a useful artificial intelligence assistant that helps people.'"
},
{
"name": "userMessage",
"source": "='Describe what you see in this image in 20 words or less in Spanish.'"
}
],
"outputs": [
{
"name": "response",
"targetName": "captionedImage"
}
]
}
Ejemplo de uso de respuestas de esquema JSON con entradas de texto
En este ejemplo se muestra cómo usar salidas estructuradas para los modelos de lenguaje. Actualmente, esta funcionalidad es compatible principalmente con los modelos de lenguaje OpenAI, aunque esto podría cambiar en el futuro.
{
"@odata.type": "#Microsoft.Skills.Custom.ChatCompletionSkill",
"context": "/document/content",
"uri": "https://contoso.openai.azure.com/openai/deployments/contoso-gpt-4o/chat/completions?api-version=2025-01-01-preview",
"apiKey": "<YOUR-API-KEY here>",
"inputs": [
{
"name": "systemMessage",
"source": "='You are a useful artificial intelligence assistant that helps people.'"
},
{
"name": "userMessage",
"source": "='How many languages are there in the world and what are they?'"
}
],
"response_format": {
"type": "json_schema",
"json_schema": {
"name": "structured_output",
"strict": true,
"schema": {
"type": "object",
"properties": {
"total": {
"type": "number"
},
"languages": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"total",
"languages"
],
"additionalProperties": false
}
}
},
"outputs": [
{
"name": "response",
"targetName": "responseJsonForLanguages"
}
]
}
Mapear resultados a campos de búsqueda
El texto de salida se representa como nodos en un árbol de documentos enriquecido interno y cada nodo debe asignarse a campos de un índice de búsqueda o a proyecciones de un almacén de conocimiento para que el contenido esté disponible en la aplicación.
En primer lugar, utilice Crear o Actualizar - Índice para agregar campos para aceptar los resultados de habilidades.
En el ejemplo de colección de campos siguiente:
-
contentes contenido de blob. -
metadata_storage_namecontiene el nombre del archivo (establecidoretrievableen true). -
metadata_storage_pathes la ruta de acceso única del blob y es la clave de documento predeterminada. -
merged_contentes la salida de la combinación de texto (útil cuando se insertan imágenes). -
captioned_imagees una salida de capacidad y debe ser un campo de cadena para capturar toda la salida del modelo de lenguaje en el índice de búsqueda.
"fields": [
{
"name": "content",
"type": "Edm.String",
"filterable": false,
"retrievable": true,
"searchable": true,
"sortable": false
},
{
"name": "metadata_storage_name",
"type": "Edm.String",
"filterable": true,
"retrievable": true,
"searchable": true,
"sortable": false
},
{
"name": "metadata_storage_path",
"type": "Edm.String",
"filterable": false,
"key": true,
"retrievable": true,
"searchable": false,
"sortable": false
},
{
"name": "captioned_image",
"type": "Edm.String",
"filterable": false,
"retrievable": true,
"searchable": true,
"sortable": false
}
]
A continuación, use Update - Indexer para asignar la salida del conjunto de aptitudes (nodos de un árbol de enriquecimiento) a los campos de índice.
Los documentos enriquecidos son internos. Para externalizar los nodos de un árbol de documentos enriquecidos, configure una asignación de campos de salida que especifique qué campo de índice recibe el contenido del nodo. La aplicación accede a los datos enriquecidos a través de un campo de índice. En el ejemplo siguiente se muestra un nodo de texto (salida de OCR) en un documento enriquecido asignado a un campo de texto en un índice de búsqueda.
"outputFieldMappings": [
{
"sourceFieldName": "/document/normalized_images/*/captionedImage",
"targetFieldName": "captioned_image"
}
]
Ejecute el indexador para invocar la recuperación de documentos de origen, el procesamiento de imágenes a través de títulos del modelo de lenguaje e indexación.
Comprobación de los resultados
Ejecute una consulta en el índice para comprobar los resultados del procesamiento de imágenes. Use el Explorador de búsqueda como cliente de búsqueda o cualquier herramienta que envíe solicitudes HTTP. La consulta siguiente selecciona campos que contienen la salida del procesamiento de imágenes.
POST /indexes/[index name]/docs/search?api-version=[api-version]
{
"search": "A cat in a picture",
"select": "metadata_storage_name, captioned_image"
}