Agendar um indexador no Pesquisa de IA do Azure 

Observação

Pesquisa de IA do Azure  está disponível por meio do portal Azure, APIs REST e SDKs do Azure. Ele também sustenta o IQ do Foundry, a camada de conhecimento gerenciado que transforma o conteúdo da empresa em bases de conhecimento reutilizáveis e com reconhecimento de permissão para agentes no portal do Microsoft Foundry.

Defina a propriedade schedule para configurar os indexadores para que sejam executados em intervalos programados. O agendamento do indexador é útil em situações como:

  • Os dados de origem são alterados ao longo do tempo e você deseja que o indexador processe automaticamente a diferença.
  • Os dados de origem são muito grandes e você precisa de um agendamento recorrente para indexar todo o conteúdo.
  • Um índice é preenchido de várias fontes usando vários indexadores e você deseja escalonar os trabalhos para reduzir conflitos.

Quando a indexação não puder ser concluída dentro da janela de processamento típica de 2 horas, agende o indexador para ser executado em uma cadência de 2 horas para trabalhar em um grande volume de dados. Desde que sua fonte de dados dê suporte a lógica de detecção de alterações, os indexadores poderão continuar automaticamente de onde pararam em cada execução.

Depois de colocar um indexador em um agendamento, ele permanecerá na agenda até que você limpe o intervalo ou a hora de início ou defina disabled como true. Se um indexador agendado parar de disparar inesperadamente, consulte perguntas frequentes sobre o comportamento de agendamento para as etapas de recuperação. Deixar o indexador em um agendamento quando não há nada para processar não afeta o desempenho do sistema. Verificar se há conteúdo alterado é uma operação relativamente rápida.

Pré-requisitos

  • Um indexador válido configurado com uma fonte de dados e um índice.

  • Altere a detecção na fonte de dados. O Armazenamento do Microsoft Azure e SharePoint têm detecção de alteração interna. Para outras fontes de dados, como SQL do Azure e Azure Cosmos DB, você deve habilitar a detecção de alterações manualmente.

Erro de Definição de Agenda

Schedule faz parte da definição do indexador. Se você omitir a schedule propriedade, o indexador só será executado sob demanda. A propriedade tem duas partes.

Propriedade Descrição
"intervalo" O intervalo refere-se ao tempo entre o início de duas execuções consecutivas do indexador. O menor intervalo permitido é de 5 minutos e o maior é de 1.440 minutos (24 horas). Formate-o como um valor XSD de "dayTimeDuration" (um subconjunto restrito de um valor de duração ISO 8601 ).

O padrão para esse valor é: P(nD)(T(nH)(nM)).

Exemplos: PT15M para intervalos de 15 minutos e PT2H para intervalos de duas horas.
"startTime" (opcional) Especifique a hora de início em UTC (tempo universal coordenado). Se você omitir esse valor, a hora atual será usada. Esse tempo pode estar no passado, caso em que a primeira execução é agendada como se o indexador fosse executado continuamente desde a hora de início original.

O exemplo a seguir é um agendamento que começa em 1º de janeiro à meia-noite e é executado a cada duas horas.

{
    "dataSourceName" : "hotels-ds",
    "targetIndexName" : "hotels-idx",
    "schedule" : { "interval" : "PT2H", "startTime" : "2024-01-01T00:00:00Z" }
}

Configurar um agendamento

Especifique agendas em uma definição de indexador. Para configurar um agendamento, use o portal do Azure, uma API REST ou um SDK do Azure.

  1. Acesse seu serviço de pesquisa no portal do Azure.
  2. No painel esquerdo, selecione Indexadores.
  3. Abra um indexador.
  4. Escolha a opção Configurações.
  5. Role para baixo até Agendar e, em seguida, escolha Hora, Diário ou Personalizado para definir uma data, hora ou intervalo personalizado específico.

Alterne para a guia Definição do indexador (JSON) na parte superior do índice para exibir a definição do agenda no formato XSD.

Perguntas frequentes sobre o comportamento do agendamento

Posso executar vários trabalhos de indexador em paralelo?

Você pode executar vários indexadores simultaneamente, mas cada indexador é uma única instância. Você não pode executar duas cópias do mesmo indexador simultaneamente.

Para a indexação baseada em texto, o agendador pode iniciar o máximo de trabalhos de indexador que o serviço de pesquisa comportar, cuja quantidade é determinada pelo número de unidades de pesquisa. Por exemplo, se o serviço tiver três réplicas e quatro partições, você poderá ter 12 trabalhos de indexador em execução ativa, sejam eles iniciados sob demanda ou em uma agenda.

Para a indexação baseada em habilidades, os indexadores são executados em um ambiente de execução específico. Por esse motivo, o número de unidades de serviço não afeta o número de trabalhos do indexador baseado em habilidades que você pode executar. Vários indexadores baseados em habilidades podem ser executados em paralelo, mas isso depende da disponibilidade do processador de conteúdo no ambiente de execução.

Os trabalhos agendados sempre são iniciados no horário designado?

Os processos do indexador podem fazer fila e podem não iniciar exatamente no momento postado, dependendo da carga de trabalho de processamento e de outros fatores. Por exemplo, se um indexador ainda estiver em execução quando sua próxima execução agendada estiver definida para iniciar, a execução pendente será adiada até a próxima ocorrência agendada, o que permite que o trabalho atual seja concluído.

Para tornar esse comportamento mais concreto, considere o exemplo a seguir. Suponha que você configure um agendamento do indexador com um intervalo de uma hora e um horário de início em 1º de janeiro de 2024 às 8:00:00 UTC. Veja o que poderia acontecer quando uma execução de indexador demorasse mais do que uma hora:

  1. A primeira execução do indexador começa por volta de 1º de janeiro de 2024 às 8:00 AM UTC. Suponha que essa execução leve 20 minutos (ou qualquer período de tempo menor que 1 hora).

  2. A segunda execução é iniciada em 1º de janeiro de 2024 ou por volta dessa data às 9h UTC. Suponha que essa execução leve 70 minutos – mais de uma hora – e não seja concluída até as 10h10 UTC.

  3. A terceira execução está agendada para iniciar às 10:00 AM UTC, mas, nesse momento, a execução anterior ainda está em execução. Essa execução agendada é ignorada. A próxima execução do indexador só começa às 11:00 UTC.

Em casos raros, como durante a manutenção ou ao se recuperar de condições temporárias, o sistema enfileira várias execuções do indexador. Quando essa condição ocorre, o indexador executa cargas de trabalho pendentes sequencialmente dentro da janela agendada. Por exemplo, se um indexador estiver programado para ser executado a cada hora e várias execuções tiverem sido atrasadas ou acionadas sob demanda, esses trabalhos enfileirados serão executados em sequência até que a fila seja esvaziada. Essas execuções não são execuções extras, mas representam execuções agendadas ou solicitadas anteriormente. Embora esse comportamento seja incomum na maioria dos cenários, o indexador foi projetado para eventualmente processar todas as tarefas enfileiradas para manter a consistência e a atualização de dados.

Observação

Se você tiver requisitos rigorosos de execução do indexador que sejam sensíveis ao tempo, considere usar o modelo de API de push para que você tenha controle direto sobre o pipeline de indexação.

O que acontecerá se a indexação falhar repetidamente no mesmo documento?

Se você definir um indexador para um agendamento específico, mas toda vez ele falhar repetidamente no mesmo documento, o indexador começará a ser executado em um intervalo menos frequente (até o intervalo máximo de pelo menos uma vez a cada 2 horas ou 24 horas, de acordo com diferentes fatores de implementação) até que ele progrida novamente com êxito. Se você acredita que corrigiu o problema subjacente, execute o indexador manualmente. Se a indexação for concluída com sucesso, o indexador retornará ao seu agendamento regular. Se o indexador não retornar à programação normal após uma execução manual bem-sucedida, consulte a próxima pergunta.

Um indexador agendado parou de ser acionado. Como redefino a programação?

Se um indexador agendado parar de ser executado, desabilite-o e habilite-o novamente para redefinir o agendamento. Um sinal de que essa recuperação é necessária: nenhuma nova execução aparece no histórico de execução, mesmo que o agendamento esteja configurado e a fonte de dados tenha sido alterada.

Definir disabled como true suspende o agendamento. Defini-la novamente como false (ou omitir a propriedade) faz com que o agendamento seja retomado, usando a hora atual como a nova referência para o intervalo configurado.

  1. Acesse seu serviço de pesquisa no portal do Azure.
  2. Selecione Indexadores.
  3. Selecione o indexador para abri-lo.
  4. Escolha a opção Configurações.
  5. Defina o indexador como Desabilitado.
  6. Selecione Salvar.
  7. Defina o indexador de volta como Habilitado.
  8. Selecione Salvar.
  9. Selecione a guia Histórico de execução e verifique se uma nova execução aparece no próximo intervalo agendado.

Observação

Habilitar novamente o indexador redefine o agendamento em relação à hora atual, não ao original startTime. Por exemplo, se o intervalo for de duas horas e você habilitar novamente às 15h15, a próxima execução agendada será aproximadamente às 17h15.

Próximas etapas

Para indexadores executados em um agendamento, você pode monitorar operações recuperando o status do serviço de pesquisa, ou obter informações detalhadas habilitando o log de recursos.