Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Azure AI Search pode extrair e indexar texto e imagens de documentos PDF armazenados no Armazenamento de Blobs do Azure. Este tutorial mostra como criar um pipeline de indexação multimodal que agrupa dados com base na estrutura do documento e usa a verbalização de imagem para descrever imagens. As imagens cortadas são armazenadas em um repositório de conhecimento e o conteúdo visual é descrito em linguagem natural e ingerido junto com o texto em um índice pesquisável. O agrupamento é baseado no modelo de layout do Azure Document Intelligence in Foundry Tools que reconhece a estrutura de documentos.
Para obter verbalizações de imagem, cada imagem extraída é aprovada na Habilidade de Prompt GenAI (versão prévia), que chama um modelo de conclusão de chat para gerar uma descrição textual concisa. Essas descrições, juntamente com o texto original do documento, são incorporadas em representações de vetor usando o modelo text-embedding-3-large do Azure OpenAI. O resultado é um único índice que contém conteúdo pesquisável de ambas as modalidades: texto e imagens verbalizadas.
Neste tutorial, você usará:
Um documento PDF de 36 páginas que combina conteúdo visual avançado, como gráficos, infográficos e páginas digitalizadas, com texto tradicional.
Um indexador e um conjunto de habilidades para criar um pipeline de indexação que inclui enriquecimento de IA por meio de habilidades.
A habilidade Layout de Documento para extrair texto e imagens normalizadas com
locationMetadatade vários documentos, como números de página ou regiões delimitadoras.A habilidade de solicitação da IA generativa (versão prévia) que chama um modelo de conclusão de chat para criar descrições de conteúdo visual.
Um índice de pesquisa configurado para armazenar verbalizações de texto e imagem extraídas. Algum conteúdo é vetorizado para pesquisa de similaridade baseada em vetor.
Prerequisites
Recurso do Microsoft Foundry. Esse recurso fornece acesso ao modelo de Layout do Azure Document Intelligence usado neste tutorial. Você deve usar um recurso do Foundry para acesso de conjunto de habilidades a esse recurso.
Pesquisa de IA do Azure. Configure seu serviço de pesquisa para controle de acesso baseado em função e uma identidade gerenciada. Seu serviço deve estar na camada Básica ou superior. Este tutorial não tem suporte na camada Gratuita.
Armazenamento do Azure, usado para armazenar dados de exemplo e para criar um repositório de conhecimento.
Serviço OpenAI do Azure com uma implantação de
Um modelo de conclusão de chat hospedado na Foundry ou em outra fonte. O modelo é usado para verbalizar o conteúdo da imagem. Você fornece o URI ao modelo hospedado na definição de habilidade do GenAI Prompt. Você pode usar qualquer modelo de conclusão de chat.
Um modelo de inserção de texto implantado na Foundry. O modelo é usado para vetorizar o conteúdo de texto transferido dos documentos de origem e as descrições de imagens geradas pelo modelo de conclusão de chat. Para a vetorização integrada, o modelo de inserção deve estar localizado na Foundry e deve ser text-embedding-ada-002, text-embedding-3-large ou text-embedding-3-small. Se você quiser usar um modelo de inserção externo, use uma habilidade personalizada em vez da habilidade de inserção do Azure OpenAI.
Visual Studio Code com um cliente REST.
Limitations
- A habilidade de layout de documento tem disponibilidade regional limitada. Para obter uma lista de regiões com suporte, consulte Habilidade de Layout de Documento> Regiões Compatíveis.
Preparar dados
As instruções a seguir se aplicam ao Armazenamento do Azure, que fornece os dados de exemplo e também hospeda o repositório de conhecimento. A identidade do serviço de pesquisa precisa de acesso de leitura ao Armazenamento do Azure para recuperar os dados de exemplo e precisa de acesso para gravação para criar o repositório de conhecimento. O serviço de pesquisa cria o contêiner para imagens cortadas durante o processamento do conjunto de habilidades, usando o nome fornecido em uma variável de ambiente.
Baixe o seguinte pdf de exemplo: sustainable-ai-pdf
No Armazenamento do Azure, crie um novo contêiner chamado sustainable-ai-pdf.
Crie atribuições de função e especifique uma identidade gerenciada em uma cadeia de conexão:
Atribua o Leitor de Dados do Blob de Armazenamento para a recuperação de dados pelo indexador. Atribua Storage Blob Data Contributor e Storage Table Data Contributor para criar e carregar o repositório de conhecimento. Você pode usar uma identidade gerenciada atribuída pelo sistema ou uma identidade gerenciada atribuída pelo usuário para sua atribuição de função de serviço de pesquisa.
Para conexões feitas usando uma identidade gerenciada atribuída pelo sistema, obtenha uma cadeia de conexão que contenha um ResourceId, sem chave de conta ou senha. O ResourceId deve incluir a ID da assinatura da conta de armazenamento, o grupo de recursos da conta de armazenamento e o nome da conta de armazenamento. A cadeia de conexão é semelhante ao seguinte exemplo:
"credentials" : { "connectionString" : "ResourceId=/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MY-DEMO-RESOURCE-GROUP/providers/Microsoft.Storage/storageAccounts/MY-DEMO-STORAGE-ACCOUNT/;" }Para conexões feitas usando uma identidade gerenciada atribuída pelo usuário, obtenha uma cadeia de conexão que contenha um ResourceId, sem chave de conta ou senha. O ResourceId deve incluir a ID da assinatura da conta de armazenamento, o grupo de recursos da conta de armazenamento e o nome da conta de armazenamento. Forneça uma identidade usando a sintaxe mostrada no exemplo a seguir. Defina userAssignedIdentity como a identidade gerenciada atribuída pelo usuário A cadeia de conexão é semelhante ao exemplo a seguir:
"credentials" : { "connectionString" : "ResourceId=/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MY-DEMO-RESOURCE-GROUP/providers/Microsoft.Storage/storageAccounts/MY-DEMO-STORAGE-ACCOUNT/;" }, "identity" : { "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", "userAssignedIdentity" : "/subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MY-DEMO-RESOURCE-GROUP/providers/Microsoft.ManagedIdentity/userAssignedIdentities/MY-DEMO-USER-MANAGED-IDENTITY" }
Preparar modelos
Este tutorial pressupõe que você tenha um recurso existente do Azure OpenAI por meio do qual as habilidades são um modelo de conclusão de chat para o Prompt do GenAI e também um modelo de inserção de texto para vetorização. O serviço de pesquisa se conecta aos modelos durante o processamento do conjunto de habilidades e durante a execução da consulta usando sua identidade gerenciada. Esta seção fornece diretrizes e links para atribuir funções para acesso autorizado.
Você também precisa de uma atribuição de função para acessar o modelo de layout do Azure Document Intelligence por meio de um recurso do Foundry.
Atribuir funções no Foundry
Entre no portal do Azure (não no portal do Foundry) e localize o recurso Foundry. Verifique se ele está em uma região que fornece o modelo de layout do Azure Document Intelligence.
Selecione Controle de acesso (IAM) .
Selecione Adicionar e, em seguida, Adicionar atribuição de função.
Pesquise Usuário dos Serviços Cognitivos e, em seguida, selecione.
Escolha Identidade gerenciada e, em seguida, atribua sua identidade gerenciada do serviço de pesquisa.
Atribuir funções no Azure OpenAI
Entre no portal do Azure (não no portal do Foundry) e localize o recurso do Azure OpenAI.
Selecione Controle de acesso (IAM) .
Selecione Adicionar e, em seguida, Adicionar atribuição de função.
Pesquise por Usuário de OpenAI dos Serviços Cognitivos e selecione-o.
Escolha Identidade gerenciada e, em seguida, atribua sua identidade gerenciada do serviço de pesquisa.
Para obter mais informações, consulte Controle de acesso baseado em função do Serviço do OpenAI do Azure em Modelos da Fábrica.
Configure seu arquivo REST
Para este tutorial, sua conexão de cliente REST local com a Pesquisa de IA do Azure requer um ponto de extremidade e uma chave de API. Você pode obter esses valores no portal do Azure. Para obter métodos de conexão alternativos, consulte Conectar-se a um serviço de pesquisa.
Para conexões autenticadas que ocorrem durante o processamento do indexador e do conjunto de habilidades, o serviço de pesquisa utiliza as atribuições de função que você definiu anteriormente.
Inicie o Visual Studio Code e crie um arquivo.
Forneça valores para variáveis usadas na solicitação. Para
@storageConnection, verifique se a cadeia de conexão não tem um ponto e vírgula ou aspas no final. Para@imageProjectionContainer, forneça um nome de contêiner exclusivo no armazenamento de blobs. O Azure AI Search cria esse contêiner para você durante o processamento de habilidades.@searchUrl = PUT-YOUR-SEARCH-SERVICE-ENDPOINT-HERE @searchApiKey = PUT-YOUR-ADMIN-API-KEY-HERE @storageConnection = PUT-YOUR-STORAGE-CONNECTION-STRING-HERE @cognitiveServicesUrl = PUT-YOUR-AZURE-AI-FOUNDRY-ENDPOINT-HERE @openAIResourceUri = PUT-YOUR-OPENAI-URI-HERE @openAIKey = PUT-YOUR-OPENAI-KEY-HERE @chatCompletionResourceUri = PUT-YOUR-CHAT-COMPLETION-URI-HERE @chatCompletionKey = PUT-YOUR-CHAT-COMPLETION-KEY-HERE @imageProjectionContainer=sustainable-ai-pdf-imagesSalve o arquivo usando uma extensão de nome de arquivo
.restou.http. Para obter ajuda com o cliente REST, consulte Início Rápido: Pesquisa de texto completo usando REST.
Para obter o ponto de extremidade e a chave de API da Pesquisa de IA do Azure:
Entre no portal do Azure, navegue até a página Visão geral do serviço de pesquisa e copie a URL. Um exemplo de endpoint pode ter a seguinte aparência:
https://mydemo.search.windows.net.Em Configurações>Chaves, copie uma chave de administrador. As chaves de administrador são usadas para adicionar, modificar e excluir objetos. Há duas chaves de administrador intercambiáveis. Copie uma delas.
Criar uma fonte de dados
Criar fonte de dados (REST) cria uma conexão de fonte de dados que especifica quais dados indexar.
### Create a data source using system-assigned managed identities
POST {{searchUrl}}/datasources?api-version=2025-11-01-preview HTTP/1.1
Content-Type: application/json
api-key: {{searchApiKey}}
{
"name": "doc-intelligence-image-verbalization-ds",
"description": "A data source to store multi-modality documents",
"type": "azureblob",
"subtype": null,
"credentials":{
"connectionString":"{{storageConnection}}"
},
"container": {
"name": "sustainable-ai-pdf",
"query": null
},
"dataChangeDetectionPolicy": null,
"dataDeletionDetectionPolicy": null,
"encryptionKey": null,
"identity": null
}
Enviar a solicitação. A resposta deve ser semelhante a:
HTTP/1.1 201 Created
Transfer-Encoding: chunked
Content-Type: application/json; odata.metadata=minimal; odata.streaming=true; charset=utf-8
Location: https://<YOUR-SEARCH-SERVICE-NAME>.search.windows-int.net:443/datasources('doc-extraction-multimodal-embedding-ds')?api-version=2025-11-01-preview -Preview
Server: Microsoft-IIS/10.0
Strict-Transport-Security: max-age=2592000, max-age=15724800; includeSubDomains
Preference-Applied: odata.include-annotations="*"
OData-Version: 4.0
request-id: 4eb8bcc3-27b5-44af-834e-295ed078e8ed
elapsed-time: 346
Date: Sat, 26 Apr 2025 21:25:24 GMT
Connection: close
{
"name": "doc-extraction-multimodal-embedding-ds",
"description": null,
"type": "azureblob",
"subtype": null,
"indexerPermissionOptions": [],
"credentials": {
"connectionString": null
},
"container": {
"name": "sustainable-ai-pdf",
"query": null
},
"dataChangeDetectionPolicy": null,
"dataDeletionDetectionPolicy": null,
"encryptionKey": null,
"identity": null
}
Crie um índice
Criar índice (REST) cria um índice de pesquisa em seu serviço de pesquisa. Um índice especifica todos os parâmetros e seus atributos.
Para JSON aninhado, os campos de índice devem ser idênticos aos campos de origem. Atualmente, o Azure AI Search não dá suporte a mapeamentos de campo para JSON aninhado, portanto, os nomes de campo e os tipos de dados devem corresponder completamente. O índice a seguir se alinha aos elementos JSON no conteúdo bruto.
### Create an index
POST {{searchUrl}}/indexes?api-version=2025-11-01-preview HTTP/1.1
Content-Type: application/json
api-key: {{searchApiKey}}
{
"name": "doc-intelligence-image-verbalization-index",
"fields": [
{
"name": "content_id",
"type": "Edm.String",
"retrievable": true,
"key": true,
"analyzer": "keyword"
},
{
"name": "text_document_id",
"type": "Edm.String",
"searchable": false,
"filterable": true,
"retrievable": true,
"stored": true,
"sortable": false,
"facetable": false
},
{
"name": "document_title",
"type": "Edm.String",
"searchable": true
},
{
"name": "image_document_id",
"type": "Edm.String",
"filterable": true,
"retrievable": true
},
{
"name": "content_text",
"type": "Edm.String",
"searchable": true,
"retrievable": true
},
{
"name": "content_embedding",
"type": "Collection(Edm.Single)",
"dimensions": 3072,
"searchable": true,
"retrievable": true,
"vectorSearchProfile": "hnsw"
},
{
"name": "content_path",
"type": "Edm.String",
"searchable": false,
"retrievable": true
},
{
"name": "offset",
"type": "Edm.String",
"searchable": false,
"retrievable": true
},
{
"name": "location_metadata",
"type": "Edm.ComplexType",
"fields": [
{
"name": "page_number",
"type": "Edm.Int32",
"searchable": false,
"retrievable": true
},
{
"name": "bounding_polygons",
"type": "Edm.String",
"searchable": false,
"retrievable": true,
"filterable": false,
"sortable": false,
"facetable": false
}
]
}
],
"vectorSearch": {
"profiles": [
{
"name": "hnsw",
"algorithm": "defaulthnsw",
"vectorizer": "demo-vectorizer"
}
],
"algorithms": [
{
"name": "defaulthnsw",
"kind": "hnsw",
"hnswParameters": {
"m": 4,
"efConstruction": 400,
"metric": "cosine"
}
}
],
"vectorizers": [
{
"name": "demo-vectorizer",
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "{{openAIResourceUri}}",
"deploymentId": "text-embedding-3-large",
"apiKey": "{{openAIKey}}",
"modelName": "text-embedding-3-large"
}
}
]
},
"semantic": {
"defaultConfiguration": "semanticconfig",
"configurations": [
{
"name": "semanticconfig",
"prioritizedFields": {
"titleField": {
"fieldName": "document_title"
},
"prioritizedContentFields": [
],
"prioritizedKeywordsFields": []
}
}
]
}
}
Pontos principais:
As inserções de texto e imagem são armazenadas no
content_embeddingcampo e devem ser configuradas com dimensões apropriadas, como 3072, e um perfil de pesquisa de vetor.location_metadatacaptura metadados de polígono delimitador e número de página para cada parte de texto e imagem normalizada, permitindo pesquisa espacial precisa ou sobreposições de interface do usuário.Para obter mais informações sobre a pesquisa de vetor, consulte Vectors no Azure AI Search.
Para obter mais informações sobre classificação semântica, consulte Classificação semântica no Azure AI Search
Criar um conjunto de habilidades
Criar Conjunto de Habilidades (REST) cria um conjunto de habilidades no seu serviço de pesquisa. Um conjunto de habilidades define as operações que agrupam e inserem conteúdo antes da indexação. Esse conjunto de habilidades usa a habilidade layout do documento para extrair texto e imagens, preservando metadados de localização que são úteis para citações em aplicativos RAG. Ele usa a habilidade do Azure OpenAI Embedding para vetorizar o conteúdo de texto.
O conjunto de habilidades também executa ações específicas para imagens. Ele usa a habilidade de Prompt do GenAI para gerar descrições de imagem. Ele também cria um repositório de conhecimento que armazena imagens intactas para que você possa devolvê-las em uma consulta.
### Create a skillset
POST {{searchUrl}}/skillsets?api-version=2025-11-01-preview HTTP/1.1
Content-Type: application/json
api-key: {{searchApiKey}}
{
"name": "doc-intelligence-image-verbalization-skillset",
"description": "A sample skillset for multi-modality using image verbalization",
"skills": [
{
"@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill",
"name": "document-cracking-skill",
"description": "Document Layout skill for document cracking",
"context": "/document",
"outputMode": "oneToMany",
"outputFormat": "text",
"extractionOptions": ["images", "locationMetadata"],
"chunkingProperties": {
"unit": "characters",
"maximumLength": 2000,
"overlapLength": 200
},
"inputs": [
{
"name": "file_data",
"source": "/document/file_data"
}
],
"outputs": [
{
"name": "text_sections",
"targetName": "text_sections"
},
{
"name": "normalized_images",
"targetName": "normalized_images"
}
]
},
{
"@odata.type": "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill",
"name": "text-embedding-skill",
"description": "Azure Open AI Embedding skill for text",
"context": "/document/text_sections/*",
"inputs": [
{
"name": "text",
"source": "/document/text_sections/*/content"
}
],
"outputs": [
{
"name": "embedding",
"targetName": "text_vector"
}
],
"resourceUri": "{{openAIResourceUri}}",
"deploymentId": "text-embedding-3-large",
"apiKey": "{{openAIKey}}",
"dimensions": 3072,
"modelName": "text-embedding-3-large"
},
{
"@odata.type": "#Microsoft.Skills.Custom.ChatCompletionSkill",
"uri": "{{chatCompletionResourceUri}}",
"timeout": "PT1M",
"apiKey": "{{chatCompletionKey}}",
"name": "genAI-prompt-skill",
"description": "GenAI Prompt skill for image verbalization",
"context": "/document/normalized_images/*",
"inputs": [
{
"name": "systemMessage",
"source": "='You are tasked with generating concise, accurate descriptions of images, figures, diagrams, or charts in documents. The goal is to capture the key information and meaning conveyed by the image without including extraneous details like style, colors, visual aesthetics, or size.\n\nInstructions:\nContent Focus: Describe the core content and relationships depicted in the image.\n\nFor diagrams, specify the main elements and how they are connected or interact.\nFor charts, highlight key data points, trends, comparisons, or conclusions.\nFor figures or technical illustrations, identify the components and their significance.\nClarity & Precision: Use concise language to ensure clarity and technical accuracy. Avoid subjective or interpretive statements.\n\nAvoid Visual Descriptors: Exclude details about:\n\nColors, shading, and visual styles.\nImage size, layout, or decorative elements.\nFonts, borders, and stylistic embellishments.\nContext: If relevant, relate the image to the broader content of the technical document or the topic it supports.\n\nExample Descriptions:\nDiagram: \"A flowchart showing the four stages of a machine learning pipeline: data collection, preprocessing, model training, and evaluation, with arrows indicating the sequential flow of tasks.\"\n\nChart: \"A bar chart comparing the performance of four algorithms on three datasets, showing that Algorithm A consistently outperforms the others on Dataset 1.\"\n\nFigure: \"A labeled diagram illustrating the components of a transformer model, including the encoder, decoder, self-attention mechanism, and feedforward layers.\"'"
},
{
"name": "userMessage",
"source": "='Please describe this image.'"
},
{
"name": "image",
"source": "/document/normalized_images/*/data"
}
],
"outputs": [
{
"name": "response",
"targetName": "verbalizedImage"
}
]
},
{
"@odata.type": "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill",
"name": "verbalizedImage-embedding-skill",
"description": "Azure Open AI Embedding skill for verbalized image embedding",
"context": "/document/normalized_images/*",
"inputs": [
{
"name": "text",
"source": "/document/normalized_images/*/verbalizedImage",
"inputs": []
}
],
"outputs": [
{
"name": "embedding",
"targetName": "verbalizedImage_vector"
}
],
"resourceUri": "{{openAIResourceUri}}",
"deploymentId": "text-embedding-3-large",
"apiKey": "{{openAIKey}}",
"dimensions": 3072,
"modelName": "text-embedding-3-large"
},
{
"@odata.type": "#Microsoft.Skills.Util.ShaperSkill",
"name": "#5",
"context": "/document/normalized_images/*",
"inputs": [
{
"name": "normalized_images",
"source": "/document/normalized_images/*",
"inputs": []
},
{
"name": "imagePath",
"source": "='my_container_name/'+$(/document/normalized_images/*/imagePath)",
"inputs": []
}
],
"outputs": [
{
"name": "output",
"targetName": "new_normalized_images"
}
]
}
],
"indexProjections": {
"selectors": [
{
"targetIndexName": "doc-intelligence-image-verbalization-index",
"parentKeyFieldName": "text_document_id",
"sourceContext": "/document/text_sections/*",
"mappings": [
{
"name": "content_embedding",
"source": "/document/text_sections/*/text_vector"
},
{
"name": "content_text",
"source": "/document/text_sections/*/content"
},
{
"name": "location_metadata",
"source": "/document/text_sections/*/locationMetadata"
},
{
"name": "document_title",
"source": "/document/document_title"
}
]
},
{
"targetIndexName": "doc-intelligence-image-verbalization-index",
"parentKeyFieldName": "image_document_id",
"sourceContext": "/document/normalized_images/*",
"mappings": [
{
"name": "content_text",
"source": "/document/normalized_images/*/verbalizedImage"
},
{
"name": "content_embedding",
"source": "/document/normalized_images/*/verbalizedImage_vector"
},
{
"name": "content_path",
"source": "/document/normalized_images/*/new_normalized_images/imagePath"
},
{
"name": "document_title",
"source": "/document/document_title"
},
{
"name": "location_metadata",
"source": "/document/normalized_images/*/locationMetadata"
}
]
}
],
"parameters": {
"projectionMode": "skipIndexingParentDocuments"
}
},
"knowledgeStore": {
"storageConnectionString": "{{storageConnection}}",
"identity": null,
"projections": [
{
"files": [
{
"storageContainer": "{{imageProjectionContainer}}",
"source": "/document/normalized_images/*"
}
]
}
]
}
}
Esse conjunto de habilidades extrai texto e imagens, verbaliza imagens e formata os metadados de imagem para projeção no índice.
Pontos principais:
O
content_textcampo é preenchido de duas maneiras:Do texto do documento extraído e dividido em partes usando a habilidade de Layout do documento.
Do conteúdo da imagem usando a habilidade de Prompt do GenAI, que gera legendas descritivas para cada imagem normalizada
O campo
content_embeddingcontém inserções tridimensionais de 3072 para texto de página e descrições de imagem verbalizadas. Elas são geradas usando o modelo text-embedding-3-large do Azure OpenAI.content_pathcontém o caminho relativo para o arquivo de imagem dentro do contêiner de projeção de imagem designado. Esse campo é gerado somente para imagens extraídas de documentos quandoextractOptioné definido como["images", "locationMetadata"]ou["images"], e pode ser mapeado a partir do documento enriquecido do campo de origem/document/normalized_images/*/imagePath.A habilidade de inserção do Azure OpenAI permite a inserção de dados textuais. Para obter mais informações, consulte a habilidade do Azure OpenAI Embedding.
Criar e executar um indexador
Criar Indexador cria um indexador em seu serviço de pesquisa. Um indexador se conecta à fonte de dados, carrega dados, executa um conjunto de habilidades e indexa os dados enriquecidos.
### Create and run an indexer
POST {{searchUrl}}/indexers?api-version=2025-11-01-preview HTTP/1.1
Content-Type: application/json
api-key: {{searchApiKey}}
{
"dataSourceName": "doc-intelligence-image-verbalization-ds",
"targetIndexName": "doc-intelligence-image-verbalization-index",
"skillsetName": "doc-intelligence-image-verbalization-skillset",
"parameters": {
"maxFailedItems": -1,
"maxFailedItemsPerBatch": 0,
"batchSize": 1,
"configuration": {
"allowSkillsetToReadFileData": true
}
},
"fieldMappings": [
{
"sourceFieldName": "metadata_storage_name",
"targetFieldName": "document_title"
}
],
"outputFieldMappings": []
}
Executar consultas
Você poderá iniciar a pesquisa assim que o primeiro documento for carregado.
### Query the index
POST {{searchUrl}}/indexes/doc-intelligence-image-verbalization-index/docs/search?api-version=2025-11-01-preview HTTP/1.1
Content-Type: application/json
api-key: {{searchApiKey}}
{
"search": "*",
"count": true
}
Enviar a solicitação. Essa é uma consulta de pesquisa de texto completo não especificada que retorna todos os campos marcados como recuperáveis no índice, juntamente com uma contagem de documentos. A resposta deve ser semelhante a:
{
"@odata.count": 100,
"@search.nextPageParameters": {
"search": "*",
"count": true,
"skip": 50
},
"value": [
],
"@odata.nextLink": "https://<YOUR-SEARCH-SERVICE-NAME>.search.windows.net/indexes/doc-intelligence-image-verbalization-index/docs/search?api-version=2025-11-01-preview "
}
100 documentos são retornados na resposta.
Para filtros, você também pode usar operadores lógicos (e, ou não) e operadores de comparação (eq, ne, gt, lt, ge, le). As comparações de cadeia de caracteres diferenciam maiúsculas de minúsculas. Para obter mais informações e exemplos, consulte exemplos de consultas de pesquisa simples.
Note
O parâmetro $filter só funciona em campos que foram marcados como filtráveis durante a criação do índice.
### Query for only images
POST {{searchUrl}}/indexes/doc-intelligence-image-verbalization-index/docs/search?api-version=2025-11-01-preview HTTP/1.1
Content-Type: application/json
api-key: {{searchApiKey}}
{
"search": "*",
"count": true,
"filter": "image_document_id ne null"
}
### Query for text or images with content related to energy, returning the id, parent document, and text (only populated for text chunks), and the content path where the image is saved in the knowledge store (only populated for images)
POST {{searchUrl}}/indexes/doc-intelligence-image-verbalization-index/docs/search?api-version=2025-11-01-preview HTTP/1.1
Content-Type: application/json
api-key: {{searchApiKey}}
{
"search": "energy",
"count": true,
"select": "content_id, document_title, content_text, content_path"
}
Redefina e execute novamente
Os indexadores podem ser redefinidos para limpar o histórico de execução, o que permite uma nova execução completa. As solicitações POST a seguir são para redefinição, seguidas de nova execução.
### Reset the indexer
POST {{searchUrl}}/indexers/doc-intelligence-image-verbalization-indexer/reset?api-version=2025-11-01-preview HTTP/1.1
api-key: {{searchApiKey}}
### Run the indexer
POST {{searchUrl}}/indexers/doc-intelligence-image-verbalization-indexer/run?api-version=2025-11-01-preview HTTP/1.1
api-key: {{searchApiKey}}
### Check indexer status
GET {{searchUrl}}/indexers/doc-intelligence-image-verbalization-indexer/status?api-version=2025-11-01-preview HTTP/1.1
api-key: {{searchApiKey}}
Limpar os recursos
Quando você está trabalhando em sua própria assinatura, no final de um projeto, é uma boa ideia remover os recursos que já não são necessários. Recursos deixados em execução podem custar dinheiro. Você pode excluir recursos individualmente ou excluir o grupo de recursos para excluir todo o conjunto de recursos.
Você pode usar o portal do Azure para excluir índices, indexadores e fontes de dados.
Consulte também
Agora que você está familiarizado com uma implementação de exemplo de um cenário de indexação multimodal, confira: