Quickstart: Pesquisa vetorial no portal do Azure

Nota

O Pesquisa de IA do Azure está disponível através do portal Azure, APIs REST e SDKs do Azure. Também sustenta o Foundry IQ, a camada de conhecimento gerida que transforma conteúdos empresariais em bases de conhecimento reutilizáveis e conscientes de permissões para agentes no portal Microsoft Foundry.

Neste início rápido, utilize o assistente Import data no portal do Azure para iniciar com vetorização integrada. O assistente divide o seu conteúdo em blocos e chama um modelo de incorporação para vetorizar os blocos em tempo de indexação e de consulta.

Este quickstart utiliza PDFs baseados em texto e imagens simples do repositório azure-search-sample-data. No entanto, podes usar ficheiros diferentes e ainda assim completar este quickstart.

Dica

Tem documentos ricos em imagens? Consulte Quickstart: Pesquisa multimodal no portal Azure para extrair, armazenar e pesquisar imagens juntamente com texto.

Pré-requisitos

Fontes de dados suportadas

O assistente suporta várias fontes de dados Azure. No entanto, este início rápido cobre apenas as fontes de dados que funcionam com ficheiros inteiros, que são descritas na tabela seguinte.

Fonte de dados Descrição
Armazenamento de Blobs do Azure Esta fonte de dados funciona com blobs e tabelas. Deve usar uma conta de desempenho padrão (uso geral v2). Os níveis de acesso podem ser quente, morno ou frio.
Azure Data Lake Storage (ADLS) Gen2 Esta é uma conta do Armazenamento do Azure com um namespace hierárquico ativado. Para confirmar que tem Data Lake Storage, verifique o separador Properties na página Overview.
Microsoft OneLake Esta fonte de dados liga-se a ficheiros e aos atalhos do OneLake.

Modelos de embedding suportados

O portal suporta os seguintes modelos de embedding para vetorização integrada. As instruções de implantação são fornecidas numa secção posterior.

Fornecedor Modelos suportados
Conta Azure de multi-serviço de IA1 Para texto e imagens: Azure Vision multimodal
projeto baseado no hub Microsoft Foundry Para texto:
  • text-embedding-ada-002
  • Embutir texto-3-pequeno
  • texto-embedding-3-grande
Para texto e imagens:
  • Cohere-embed-v3-english 2
  • Cohere-embed-v3-multilingual 2
Projeto Microsoft Foundry Para texto:
  • text-embedding-ada-002
  • Embutir texto-3-pequeno
  • texto-embedding-3-grande
recurso Azure OpenAI3, 4 Para texto:
  • text-embedding-ada-002
  • Embutir texto-3-pequeno
  • texto-embedding-3-grande

1 Para efeitos de faturação, deve anexar a sua conta multisserviços ao seu conjunto de habilidades do Pesquisa de IA do Azure. O assistente exige que o seu serviço de pesquisa e a sua conta multi-serviço estejam na mesma região suportada para a habilidade de embeddings multimodal do Azure Vision (pré-visualização).

2 O assistente só suporta implementações de APIs serverless para este modelo. Pode utilizar a CLI do Azure para aprovisionar a implementação sem servidor (pré-visualização).

3 O endpoint do seu recurso OpenAI Azure deve ter um subdomínio personalizado, como https://my-unique-name.openai.azure.com. Se criaste o teu recurso no portal do Azure, este subdomínio foi gerado automaticamente durante a configuração do recurso.

4 Recursos de Azure OpenAI (com acesso a modelos de embedding) criados no portal Microsoft Foundry não são suportados. Deve criar um recurso Azure OpenAI no portal Azure.

Para obter as orientações mais recentes sobre o ciclo de vida dos modelos, incluindo descontinuações, consulte Desativação e preterição de modelos.

Requisitos para endpoints públicos

Todos os recursos anteriores devem ter acesso público ativado para que o assistente possa aceder a eles. Caso contrário, o mago falha. Depois de o assistente executar, podes ativar firewalls e endpoints privados nos componentes de integração para segurança. Para mais informações, consulte Ligações Seguras no assistente de importação.

Se os endpoints privados já estiverem presentes e não os puder desativar, a opção alternativa é executar o fluxo de ponta a ponta a partir de um script ou programa numa máquina virtual. A máquina virtual deve estar na mesma rede virtual do endpoint privado. Aqui está um exemplo de código Python para vetorização integrada. O mesmo repositório GitHub tem samples noutras linguagens de programação.

Configurar acesso

Antes de começar, certifique-se de que tem permissões para aceder a conteúdos e operações. Este início rápido utiliza o Microsoft Entra ID para autenticação e acesso com base em funções para autorização. Deve ser Proprietário ou Administrador de Acesso ao Utilizador para atribuir funções. Se os perfis não forem viáveis, use autenticação baseada em chaves.

Configure os papéis obrigatórios e os papéis condicionais identificados nesta secção.

Funções obrigatórias

O Pesquisa de IA do Azure fornece o pipeline de pesquisa vetorial. Configure o acesso para si e para o seu serviço de pesquisa para ler dados, executar o pipeline e interagir com outros recursos do Azure.

No seu serviço Pesquisa de IA do Azure:

  1. Permitir o acesso baseado em funções.

  2. Configure uma identidade gerida pelo sistema

  3. Atribui as seguintes funções a ti próprio.

    • Contribuidor do Serviço de Pesquisa

    • Contribuidor de Dados do Índice de Pesquisa

    • Leitor de Índice de Dados de Pesquisa

Funções Condicionais

As abas seguintes abrangem todos os recursos compatíveis com assistentes para pesquisa vetorial. Selecione apenas os separadores que correspondem à fonte de dados escolhida e ao modelo de embeddings.

Armazenamento de Blobs do Azure e Azure Data Lake Storage Gen2 exigem que o seu serviço de pesquisa tenha acesso de leitura aos contentores de armazenamento.

Na sua conta Armazenamento do Azure:

  • Atribua o Storage Blob Data Reader à identidade gerida do seu serviço de pesquisa.

Preparar dados de amostra

Nesta secção, prepara dados de amostra para a fonte de dados escolhida.

  1. Vai à tua conta Armazenamento do Azure no portal Azure.

  2. No painel esquerdo, selecioneContentores> de Dados.

  3. Crie um contentor e depois carregue os documentos PDF plano de saúde usados para este quickstart.

  4. (Opcional) Sincronize as eliminações no seu contentor com as eliminações no índice de pesquisa. Para configurar o seu indexador para deteção de eliminações:

    1. Ativa a eliminação suave na tua conta de armazenamento. Se estiver a usar soft delete nativo, o passo seguinte não é obrigatório.

    2. Adicione metadados personalizados que um indexador possa analisar para determinar quais os blobs marcados para eliminação. Dê à sua propriedade personalizada um nome descritivo. Por exemplo, nomeie a propriedade "IsDeleted" e defina-a como false. Repete este passo para cada bolha no contentor. Quando quiseres apagar o blob, muda a propriedade para true. Para mais informações, consulte deteção de alterações e eliminações ao indexar a partir de Armazenamento do Azure.

Preparar o modelo de incorporação

Nota

Se estiveres a usar o Azure Vision, salta este passo. Os embeddings multimodais estão integrados na tua conta multi-serviço e não requerem implementação de modelos.

O assistente suporta vários modelos de integração do Azure OpenAI e do catálogo de modelos da Microsoft Foundry. Para implementar os modelos necessários para o seu modelo embedding escolhido, consulte Deploy Microsoft Foundry Models no portal Foundry.

Inicia o feiticeiro

  1. Vá ao seu serviço de pesquisa no portal Azure.

  2. Na página de Visão Geral , selecione Importar dados.

    Captura de ecrã do comando para abrir o assistente de importação e vetorização de dados.

  3. Selecione a sua fonte de dados: Armazenamento de Blobs do Azure, ADLS Gen2 ou OneLake.

  4. Seleciona RAG.

    Captura de ecrã da peça RAG no feiticeiro.

Executa o feiticeiro

O assistente guia-te por vários passos de configuração. Esta secção cobre cada passo na sequência.

Liga-te aos teus dados

Neste passo, liga Pesquisa de IA do Azure à sua fonte de dados para a ingestão e indexação de conteúdos.

  1. Na página Liga-se aos seus dados, selecione a sua subscrição de Azure.

  2. Selecione a conta de armazenamento e o contentor que fornecem os dados da amostra.

  3. Se ativou a eliminação suave e adicionou metadados personalizados em Preparar dados de amostra, selecione a caixa de seleção Ativar rastreamento de eliminação .

    • Nas execuções subsequentes de indexação, o índice de pesquisa é atualizado para remover quaisquer documentos de pesquisa baseados em blobs eliminados suavemente no Armazenamento do Azure.

    • Os blobs suportam ou eliminação suave nativa ou eliminação suave através de metadados personalizados.

    • Se configurou os seus blobs para eliminação suave, forneça o par nome-valor da propriedade de metadados. Recomendamos IsDeleted. Se o IsDeleted estiver definido como true num blob, o indexador descarta o documento de pesquisa correspondente na execução seguinte.

    • O assistente não verifica o Armazenamento do Azure para definições válidas nem dá erro se os requisitos não forem cumpridos. Em vez disso, a deteção de eliminação não funciona, e o seu índice de pesquisa tende a recolher documentos órfãos ao longo do tempo.

  4. Selecione a caixa de seleção Autenticar usando identidade gerida. Deixe o tipo de identidade como Atribuído pelo Sistema.

    Captura de ecrã da página da fonte de dados com opções de deteção de eliminação.

  5. Selecionar Próximo.

Vetorize o seu texto

Durante esta etapa, o assistente utiliza o modelo de embedding escolhido para vetorizar dados em blocos. O chunking está incorporado e não é configurável. As definições eficazes são:

"textSplitMode": "pages",
"maximumPageLength": 2000,
"pageOverlapLength": 500,
"maximumPagesToTake": 0, #unlimited
"unit": "characters"
  1. Na página Vetorizar o seu texto, selecione Azure OpenAI para o tipo.

  2. Selecione a sua subscrição do Azure.

  3. Selecione o seu recurso Azure OpenAI e depois selecione o modelo que implementou em Prepare o modelo de embedding.

  4. Para o tipo de autenticação, selecione Identidade atribuída ao sistema.

  5. Selecione a caixa de seleção que reconhece os efeitos de faturação do uso destes recursos.

    Captura de ecrã da página 'Vectorizar o seu texto' com Azure OpenAI no assistente.

  6. Selecionar Próximo.

Vetorize e enriqueça as suas imagens

Os PDFs dos planos de saúde incluem um logótipo corporativo, mas, de resto, não há imagens. Podes saltar este passo se estiveres a usar os documentos de exemplo.

No entanto, se o seu conteúdo incluir imagens úteis, pode aplicar IA de uma ou ambas as seguintes formas:

  • Utilize um modelo de embedding de imagem suportado do catálogo de modelos Microsoft Foundry ou a API de embeddings multimodais do Azure Vision (através de uma conta multi-serviço) para vetorizar imagens.

  • Use reconhecimento ótico de caracteres (OCR) para extrair texto de imagens. Esta opção invoca a habilidade OCR.

  1. Na página Vetorizar e enriquecer as suas imagens , selecione a opção Vetorizar imagens .

  2. Para o tipo, selecione o seu fornecedor de modelos: Microsoft Foundry ou Azure Vision no Foundry Tools.

  3. Selecione a sua subscrição do Azure, o recurso e a implementação do modelo de embedding (se aplicável).

  4. Para o tipo de autenticação, selecione Identidade atribuída ao sistema se não estiver a usar um projeto baseado no hub. Caso contrário, deixa-a como chave API.

  5. Selecione a caixa de seleção que reconhece os efeitos de faturação do uso destes recursos.

    Faça uma captura de ecrã da página Vetorizar e enriqueça as suas imagens no assistente.

  6. Selecionar Próximo.

Adicionar classificação semântica

Na página de definições avançadas , podes opcionalmente adicionar classificação semântica para reclassificar resultados no final da execução da consulta. A reclassificação promove as partidas mais semanticamente relevantes para o topo.

Mapear novos campos

Na página de Definições Avançadas , podes opcionalmente adicionar novos campos, assumindo que a fonte de dados forneça metadados ou campos que não sejam captados à primeira passagem. Por defeito, o assistente gera os campos descritos na tabela seguinte.

Campo Aplica-se a Descrição
chunk_id Vetores de texto e imagem Campo de cadeia de caracteres gerado. Pesquisável, recuperável e ordenável. Esta é a chave do documento para o índice.
parent_id Vetores de texto Campo de cadeia de caracteres gerado. Recuperável e filtrável. Identifica o documento pai do qual o fragmento se origina.
pedaço Vetores de texto e imagem Campo de cordas. Versão legível para humanos do bloco de dados. Pesquisável e recuperável, mas não filtrável, configurável em facetas, ou ordenável.
Título Vetores de texto e imagem Campo de cordas. Título de documento legível por humanos ou título de página ou número de página. Pesquisável e recuperável, mas não filtrável, configurável em facetas, ou ordenável.
text_vector Vetores de texto Coleção (Edm.single) Representação vetorial do bloco. Pesquisável e recuperável, mas não filtrável, configurável em facetas, ou ordenável.

Não pode modificar os campos gerados ou os seus atributos, mas pode adicionar novos campos se a sua fonte de dados os fornecer. Por exemplo, o Armazenamento de Blobs do Azure fornece uma coleção de campos de metadados.

Para adicionar campos ao esquema de índice:

  1. Na página de Definições Avançadas , nos campos de Índice, selecione Pré-visualização e edite.

  2. Selecione Adicionar campo.

  3. Selecione um campo de origem entre os campos disponíveis, insira um nome de campo para o índice e aceite (ou substitua) o tipo de dado predefinido.

  4. Se quiseres restaurar o esquema à sua versão original, seleciona Reset.

Pontos-chave sobre este passo:

  • O esquema de índice fornece campos vetoriais e não vetoriais para dados fragmentados.

  • O modo de análise de documentos cria blocos (um documento de pesquisa por bloco).

Indexação de horários

Para fontes de dados onde os dados subjacentes são voláteis, pode agendar a indexação para captar alterações em intervalos específicos ou datas e horários específicos.

Para agendar a indexação:

  1. Na página de definições avançadas, em Agendamento de Indexação, especifique um cronograma de execução para o indexador. Recomendamos Once para este início rápido.

    Captura de ecrã da página do assistente para agendamento e indexação.

  2. Selecionar Próximo.

Acaba com o feiticeiro

O passo final é rever a sua configuração e criar os objetos necessários para a pesquisa vetorial. Se necessário, volte às páginas anteriores do assistente para ajustar a sua configuração.

Para terminar o feiticeiro:

  1. Na página Análise e criação, especifique um prefixo para os objetos que o assistente cria. Um prefixo comum ajuda-te a manter-te organizado.

    Captura de ecrã da página do assistente para rever e completar a configuração.

  2. Selecione Criar.

Objetos criados por magos

Quando o assistente conclui a configuração, cria os seguintes objetos:

Objetivo Descrição
Fonte de dados Representa uma ligação à fonte de dados escolhida.
Índice Contém campos vetoriais, vetorizadores, perfis vetoriais e algoritmos vetoriais. Não podes modificar o índice padrão durante o fluxo de trabalho do assistente. Os índices cumprem a mais recente API REST de pré-visualização para que possa usar funcionalidades de pré-visualização.
Conjunto de competências Contém as seguintes competências e configurações:
Indexador Impulsiona o pipeline de indexação, com mapeamentos de campos e mapeamentos de campos de saída (se aplicável).

Dica

Os objetos criados por assistentes têm definições JSON configuráveis. Para visualizar ou modificar estas definições, selecione Gestão de Pesquisa no painel esquerdo, onde pode visualizar os seus índices, indexadores, fontes de dados e conjuntos de competências.

Verificar resultados

O Explorador de Pesquisa aceita cadeias de texto como entrada e depois vetoriza o texto para execução de consultas vetoriais.

Para consultar o seu índice vetorial:

  1. No portal Azure, vá a Gestão de Pesquisas>Índices e depois selecione o seu índice.

  2. Selecione Opções de consulta e depois selecione Ocultar valores vetoriais nos resultados de pesquisa. Este passo torna os resultados mais legíveis.

    Captura de ecrã do botão para as opções de consulta.

  3. No menu Visualizar , selecione Vista JSON para poder inserir texto para a sua consulta vetorial no text parâmetro de consulta vetorial.

    Captura de ecrã do comando do menu para abrir a vista JSON.

    A consulta por defeito é uma pesquisa vazia ("*"), mas inclui parâmetros para devolver as correspondências numéricas. É uma consulta híbrida que executa consultas de texto e vetoriais em paralelo. Inclui também a classificação semântica e especifica quais os campos a devolver nos resultados através da select instrução.

     {
       "search": "*",
       "count": true,
       "vectorQueries": [
         {
           "kind": "text",
           "text": "*",
           "fields": "text_vector,image_vector"
         }
       ],
       "queryType": "semantic",
       "semanticConfiguration": "my-demo-semantic-configuration",
       "captions": "extractive",
       "answers": "extractive|count-3",
       "queryLanguage": "en-us",
       "select": "chunk_id,text_parent_id,chunk,title,image_parent_id"
     }
    
  4. Substitua ambos os marcadores de asterisco (*) por uma pergunta relacionada com planos de saúde, como Which plan has the lowest deductible?.

     {
       "search": "Which plan has the lowest deductible?",
       "count": true,
       "vectorQueries": [
         {
           "kind": "text",
           "text": "Which plan has the lowest deductible?",
           "fields": "text_vector,image_vector"
         }
       ],
       "queryType": "semantic",
       "semanticConfiguration": "my-demo-semantic-configuration",
       "captions": "extractive",
       "answers": "extractive|count-3",
       "queryLanguage": "en-us",
       "select": "chunk_id,text_parent_id,chunk,title"
     }
    
  5. Para executar a consulta, selecione Pesquisar.

    Captura de ecrã dos resultados da pesquisa.

    Cada documento é um pedaço do PDF original. O title campo mostra de que PDF vem o bloco. Cada chunk é longo. Pode copiar e colar um num editor de texto para ler o valor completo.

  6. Para ver todos os blocos de um documento específico, adicione um filtro para o title_parent_id campo de um PDF específico. Podes verificar o separador Campos do teu índice para confirmar que o campo é filtrável.

    {
       "select": "chunk_id,text_parent_id,chunk,title",
       "filter": "text_parent_id eq 'aHR0cHM6Ly9oZWlkaXN0c3RvcmFnZWRlbW9lYXN0dXMuYmxvYi5jb3JlLndpbmRvd3MubmV0L2hlYWx0aC1wbGFuLXBkZnMvTm9ydGh3aW5kX1N0YW5kYXJkX0JlbmVmaXRzX0RldGFpbHMucGRm0'",
       "count": true,
       "vectorQueries": [
           {
              "kind": "text",
              "text": "*",
              "k": 5,
              "fields": "text_vector"
           }
        ]
    }
    

Liberar recursos

Quando trabalha com a sua própria subscrição, é boa ideia terminar um projeto removendo os recursos de que já não precisa. Os recursos que continuam a funcionar podem custar-lhe dinheiro.

No portal Azure, selecione Todos os recursos ou Resource groups no painel esquerdo para encontrar e gerir recursos. Podes eliminar recursos individualmente ou eliminar o grupo de recursos para remover todos os recursos de uma só vez.

Próximo passo

Esta introdução rápida apresentou o assistente Importar dados, que cria todos os objetos necessários para vetorização integrada. Para explorar cada etapa em detalhe, veja Configurar vetorização integrada em Pesquisa de IA do Azure.