Usar o analisador de layout do Document AI com o mecanismo de RAG da Vertex AI

Esta página apresenta o analisador de layout da Document AI e como ele é usado com o mecanismo RAG.

Document AI

A Document AI é uma plataforma de processamento e compreensão de documentos que transforma dados não estruturados de documentos em campos adequados para armazenamento em um banco de dados. Os dados estruturados levam a dados que podem ser compreendidos, analisados e consumidos.

A Document AI é criada com base em produtos da Vertex AI com IA generativa para ajudar você a criar aplicativos de processamento de documentos escalonáveis, completos e baseados na nuvem. Não é necessário ter experiência especializada em machine learning para usar esses produtos.

Analisador de layout da Document AI

O analisador de layout extrai elementos de conteúdo do documento, como texto, tabelas e listas. Em seguida, ele cria blocos contextuais que facilitam a recuperação de informações em IA generativa e aplicativos de descoberta.

Quando usado para recuperação e geração de LLM, o layout do documento é considerado durante o processo de divisão, o que melhora a coerência semântica e reduz o ruído no conteúdo. Todo o texto em um bloco vem da mesma entidade de layout, como o título, o subtítulo ou a lista.

Para os tipos de arquivo usados pela detecção de layout, consulte Detecção de layout por tipo de arquivo.

Usar o analisador de layout no mecanismo RAG da Vertex AI

Para usar o analisador de layout no mecanismo RAG da Vertex AI, é necessário criar um corpus. Para criar um corpus, faça o seguinte:

  1. No Google Cloud console, acesse a página Mecanismo RAG.

    Acessar o mecanismo RAG

  2. Selecione Criar corpus.

  3. No campo Região, selecione sua região.

  4. No campo Nome do corpus, insira o nome do corpus.

  5. Opcional: no campo Descrição, insira uma descrição.

  6. Na seção Dados, selecione onde você quer fazer o upload dos dados.

  7. Expanda a seção Opções avançadas.

    1. Na seção Estratégia de divisão, os seguintes tamanhos padrão são recomendados:

      • Tamanho da divisão: 1024
      • Sobreposição de blocos: 256
    2. Na seção Analisador de layout, selecione a opção Analisador de layout da Document AI, que tem a maior precisão para documentos com imagens ou gráficos.

      1. No campo Modelo, selecione seu modelo.

      2. Opcional: no campo Máximo de solicitações de análise por minuto, insira o número máximo de solicitações de análise.

      3. Opcional: no campo Comando de análise personalizado, insira o comando de análise.

      4. Clique em Continuar.

  8. Na página Configurar o armazenamento de vetores, faça o seguinte:

    1. No campo Modelo de embedding, selecione seu modelo de embedding.

    2. Na seção Banco de dados de vetores, selecione seu banco de dados.

  9. Clique em Criar corpus.

Limitações

A API ImportRagFiles oferece suporte ao analisador de layout. No entanto, as seguintes limitações se aplicam:

  • Insira o tamanho máximo de arquivo de 20 MB para todos os tipos de arquivo.
  • Há um máximo de 500 páginas por arquivo PDF.

As cotas e os preços da Document AI são aplicáveis.

Ativar a API Document AI

Você precisa ativar a API Document AI para seu projeto. Para mais informações sobre como ativar APIs, consulte a documentação do Service Usage.

Ativar a API Document AI.

Funções necessárias para ativar APIs

Para ativar as APIs, é necessário ter o papel do IAM de administrador de uso do serviço (roles/serviceusage.serviceUsageAdmin), que contém a permissão serviceusage.services.enable. Saiba como conceder papéis.

Ativar a API

Ativar o analisador de layout

Para ativar o analisador de layout, siga estas etapas:

  1. Crie um analisador de layout seguindo as instruções em Como criar e gerenciar processadores.

    O nome do tipo de processador é LAYOUT_PARSER_PROCESSOR.

  2. Ative o analisador de layout seguindo as instruções em Ativar um processador.

Base de conhecimento RAG (corpus)

Se você não tiver um corpus RAG, crie um. Por exemplo, consulte Criar um exemplo de corpus RAG.

Se você já tiver um corpus RAG, os arquivos importados sem um analisador de layout não serão importados novamente quando você importar arquivos usando o analisador de layout. Se você quiser usar um analisador de layout com seus arquivos, exclua-os primeiro. Por exemplo, consulte Excluir um exemplo de arquivo RAG exemplo.

Importar arquivos usando o analisador de layout

Arquivos e pastas de várias fontes podem ser importados usando o analisador de layout.

Python

Para saber como instalar ou atualizar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.

Substitua as seguintes variáveis usadas no exemplo de código:

  • PROJECT_ID: o ID do projeto.
  • LOCATION: a região para processar a solicitação.
  • RAG_CORPUS_ID: o ID do recurso do corpus RAG.
  • GCS_URIS: uma lista de locais do Cloud Storage. Por exemplo: "gs://my-bucket1", "gs://my-bucket2".
  • LAYOUT_PARSER_PROCESSOR_NAME: o caminho do recurso para o processador do analisador de layout que foi criado. Por exemplo: "projects/{project}/locations/{location}/processors/{processor_id}".
  • CHUNK_SIZE: opcional: o número de tokens que cada bloco precisa ter.
from vertexai import rag
import vertexai

PROJECT_ID = YOUR_PROJECT_ID
corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"
paths = ["https://drive.google.com/file/123", "gs://my_bucket/my_files_dir"]  # Supports Cloud Storage and Google Drive.

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")

response = rag.import_files(
    corpus_name=corpus_name,
    paths=paths,
    transformation_config=rag.TransformationConfig(
        rag.ChunkingConfig(chunk_size=1024, chunk_overlap=256)
    ),
    import_result_sink="gs://sample-existing-folder/sample_import_result_unique.ndjson",  # Optional: This must be an existing storage bucket folder, and the filename must be unique (non-existent).
    layout_parser=rag.LayoutParserConfig(
      processor_name="projects/{PROJECT_ID}/locations/us/processors/{processor_id}/processorVersions/{processor_version_id}",
      max_parsing_requests_per_min=120,
    ),
    max_embedding_requests_per_min=900,  # Optional
)
print(f"Import response: {response}")

REST

O exemplo de código mostra como importar arquivos do Cloud Storage usando o analisador de layout. Para mais opções de configuração, incluindo a importação de arquivos de outra origem, consulte a ImportRagFilesConfig referência.

Antes de usar qualquer um dos dados da solicitação, substitua as seguintes variáveis usadas no exemplo de código:

  • PROJECT_ID: o ID do projeto.
  • LOCATION: a região para processar a solicitação.
  • RAG_CORPUS_ID: o ID do recurso do corpus RAG.
  • GCS_URIS: uma lista de locais do Cloud Storage. Por exemplo: "gs://my-bucket1", "gs://my-bucket2".
  • LAYOUT_PARSER_PROCESSOR_NAME: o caminho do recurso para o processador do analisador de layout que foi criado. Por exemplo: "projects/{project}/locations/{location}/processors/{processor_id}".
  • CHUNK_SIZE: opcional: o número de tokens que cada bloco precisa ter.
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import

Solicitar corpo JSON:

{
  "import_rag_files_config": {
    "gcs_source": {
      "uris": "GCS_URIS"
    },
    "rag_file_parsing_config": {
      "layout_parser": {
        "processor_name": "LAYOUT_PARSER_PROCESSOR_NAME"
      }
    },
    "rag_file_transformation_config": {
      "rag_file_chunking_config": {
        "fixed_length_chunking": {
          "chunk_size": CHUNK_SIZE
        }
      }
    },
  }
}

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo chamado request.json e execute o comando a seguir:

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import"

Powershell

Salve o corpo da solicitação em um arquivo chamado request.json e execute o comando a seguir:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import" | Select-Object -Expand Content

Consultar recuperação

Quando um usuário faz uma pergunta ou fornece uma solicitação, o componente de recuperação no RAG pesquisa em sua base de conhecimento para encontrar informações relevantes para a consulta.

Para um exemplo de recuperação de arquivos RAG de um corpus com base em um texto de consulta, consulte Consultar recuperação.

Prediction

A previsão gera uma resposta fundamentada usando os contextos recuperados. Para um exemplo, consulte Geração.

A seguir