Usar o analisador de LLM

Nesta página, explicamos como usar o mecanismo RAG no analisador de LLM da plataforma de agentes do Gemini Enterprise.

Introdução

O mecanismo RAG usa LLMs para análise de documentos. Os LLMs conseguem processar documentos de forma eficaz das seguintes maneiras:

  • Entender e interpretar conteúdo semântico em vários formatos.
  • Recupere os trechos de documentos relevantes.
  • Extrair informações significativas de documentos.
  • Identificar seções relevantes em documentos.
  • Resumir documentos complexos com precisão.
  • Entender e interagir com recursos visuais.
  • Extrair dados de gráficos e diagramas.
  • Descrever imagens.
  • Entender as relações entre gráficos e texto.
  • Fornecer respostas mais precisas e com mais contexto.

As funcionalidades do mecanismo de RAG melhoram significativamente a qualidade das respostas geradas.

Modelos compatíveis

Os seguintes modelos são compatíveis com o analisador de LLM do mecanismo RAG:

Tipos de arquivos compatíveis

O analisador de LLM aceita os seguintes tipos de arquivo:

  • application/pdf
  • image/png
  • image/jpeg
  • image/webp
  • image/heic
  • image/heif

Preços e cotas

Para mais detalhes sobre preços, consulte Preços da Gemini Enterprise Agent Platform.

Para saber as cotas aplicáveis, consulte Cotas de taxa.

O analisador de LLM chama modelos do Gemini para analisar seus documentos. Isso gera custos adicionais, que são cobrados do seu projeto. O custo pode ser estimado usando esta fórmula:

cost = number_of_document_files * average_pages_per_document *
(average_input_tokens * input_token_pricing_of_selected_model +
average_output_tokens * output_token_pricing_of_selected_model)

Por exemplo, você tem 1.000 arquivos PDF, e cada um deles tem 50 páginas. A página média de um PDF tem 500 tokens, e precisamos de mais 100 para o comando. A saída média é de 100 tokens.

O Gemini 2.0 Flash-Lite é usado na sua configuração para análise, e custa US $0,075 por 1 milhão de tokens de entrada e US $0,3 por tokens de texto de saída.

cost = 1,000 * 50 * (600 * 0.075 / 1M + 100 * 0.3 / 1M) = 3.75

O custo é de US $3,75.

Importar arquivos com LlmParser ativado

Substitua os valores nas seguintes variáveis usadas nos exemplos de código:

  • PROJECT_ID: o ID do seu projeto do Google Cloud .

  • LOCATION: a região em que sua solicitação é processada.

  • RAG_CORPUS_RESOURCE: o ID do seu corpus.

  • GCS_URI: o URI do Cloud Storage dos arquivos que você quer importar.

  • GOOGLE_DRIVE_URI: o URI do Google Drive dos arquivos que você quer importar.

  • MODEL_NAME: o nome do recurso do modelo usado para análise.

    Formato: projects/{project_id}/locations/{location}/publishers/google/models/{model_id}

  • CUSTOM_PARSING_PROMPT: opcional: comando personalizado configurado pelo cliente para o analisador de LLM usar na análise de documentos.

  • MAX_PARSING_REQUESTS_PER_MIN: opcional. O número máximo de solicitações que o job pode fazer ao modelo da plataforma de agente por minuto. Para mais informações, consulte Limites de taxa da IA generativa na plataforma de agentes e a página Cotas e limites do sistema do seu projeto para definir um valor adequado.

REST

  curl -X POST \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_RESOURCE/ragFiles:import" -d '{
    "import_rag_files_config": {
      "gcs_source": {
        "uris":  ["GCS_URI", "GOOGLE_DRIVE_URI"]
      },
      "rag_file_chunking_config": {
        "chunk_size": 512,
        "chunk_overlap": 102
      },
      "rag_file_parsing_config": {
        "llm_parser": {
          "model_name": "MODEL_NAME",
          "custom_parsing_prompt": "CUSTOM_PARSING_PROMPT"
          "max_parsing_requests_per_min": "MAX_PARSING_REQUESTS_PER_MIN"
        }
      }
    }
  }'

Python

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

  from vertexai import rag
  import vertexai

  PROJECT_ID = "PROJECT_ID"
  CORPUS_NAME = "RAG_CORPUS_RESOURCE"
  LOCATION = "LOCATION"
  MODEL_ID = "MODEL_ID"
  MODEL_NAME = "projects/{PROJECT_ID}/locations/{LOCATION}/publishers/google/models/{MODEL_ID}"
  MAX_PARSING_REQUESTS_PER_MIN = MAX_PARSING_REQUESTS_PER_MIN # Optional
  CUSTOM_PARSING_PROMPT = "Your custom prompt" # Optional

  PATHS = ["https://drive.google.com/file/123", "gs://my_bucket/my_files_dir"]

  # Initialize Agent Platform API once per session
  vertexai.init(project={PROJECT_ID}, location={LOCATION})

  transformation_config = rag.TransformationConfig(
      chunking_config=rag.ChunkingConfig(
          chunk_size=1024, # Optional
          chunk_overlap=200, # Optional
      ),
  )

  llm_parser_config = rag.LlmParserConfig(
      model_name = MODEL_NAME,
      max_parsing_requests_per_min=MAX_PARSING_REQUESTS_PER_MIN, # Optional
      custom_parsing_prompt=CUSTOM_PARSING_PROMPT, # Optional
  )

  rag.import_files(
      CORPUS_NAME,
      PATHS,
      llm_parser=llm_parser_config,
      transformation_config=transformation_config,
  )

Comandos

O analisador de LLM do mecanismo RAG na plataforma de agentes do Gemini Enterprise usa um comando predefinido e ajustado para analisar documentos. No entanto, se você tiver documentos especializados que não sejam adequados para um comando geral, poderá especificar seu comando de análise personalizado ao usar a API. Ao pedir para o Gemini analisar seus documentos, o mecanismo RAG adiciona um comando ao comando padrão do sistema.

Tabela de modelos de comandos

Para ajudar na análise de documentos, a tabela a seguir fornece um exemplo de modelo de comando para orientar você na criação de comandos que o RAG Engine pode usar para analisar seus documentos:

Instrução Declaração de modelo Exemplo
Especifique a função. Você é um/uma [especifique a função, como um extrator de dados factuais ou um recuperador de informações]. Você é um recuperador de informações.
Especifique a tarefa. Extraia [especifique o tipo de informação, como declarações factuais, dados principais ou detalhes específicos] de [especifique a fonte do documento, como um documento, texto, artigo, imagem, tabela]. Extraia os dados principais do arquivo sample.txt.
Explique como você quer que o LLM gere a saída de acordo com seus documentos. Apresente cada fato em um [especifique o formato da saída, como uma lista estruturada ou um texto], e inclua um link para a [especifique a localização da fonte, como uma página, um parágrafo, uma tabela ou uma linha]. Apresente cada fato em uma lista estruturada e crie um link para a página de exemplo.
Destaque qual deve ser o foco do LLM. Extraia [Especifique os tipos de dados principais, como nomes, datas, números, atributos ou relacionamentos] exatamente como estão apresentados. Extrair nomes e datas.
Destaque o que você quer que o LLM evite. [Liste as ações a serem evitadas, como análise, interpretação, resumo, inferência ou opiniões]. Extraia apenas o que o documento diz explicitamente. Não dê opiniões. Extraia apenas o que o documento diz explicitamente.

Diretrizes gerais

Siga estas diretrizes para escrever seu comando e enviar ao analisador de LLM.

  • Específico: defina claramente a tarefa e o tipo de informação a ser extraída.
  • Detalhado: forneça instruções detalhadas sobre o formato de saída, a atribuição de fonte e o processamento de diferentes estruturas de dados.
  • Restrição: declare explicitamente o que a IA não deve fazer, como análise ou interpretação.
  • Clara: use uma linguagem clara e direta.
  • Estruturado: organize as instruções de forma lógica usando listas numeradas ou tópicos para facilitar a leitura.

Análise da qualidade da análise

Esta tabela lista os resultados de cenários que os clientes executaram usando o mecanismo RAG na plataforma de agentes do Gemini Enterprise. O feedback mostra que o analisador de LLM melhora a qualidade da análise de documentos.

Cenário Result
Analisar informações em slides e vincular seções O analisador de LLM vinculou com sucesso os títulos das seções em um slide às informações detalhadas apresentadas nos slides subsequentes.
Entender e extrair informações de tabelas O analisador de LLM relacionou corretamente colunas e cabeçalhos em uma tabela grande para responder a perguntas específicas.
Como interpretar fluxogramas O analisador de LLM conseguiu seguir a lógica de um fluxograma e extrair a sequência correta de ações e as informações correspondentes.
Extrair dados de gráficos O analisador de LLM pode interpretar diferentes tipos de gráficos, como gráficos de linhas, e extrair pontos de dados específicos com base na consulta.
Capturar relações entre títulos e texto O analisador do LLM, orientado pelo comando, prestou atenção às estruturas de cabeçalho e conseguiu recuperar todas as informações relevantes associadas a um tópico ou seção específica.
Potencial para superar limitações de incorporação com engenharia de comando Embora inicialmente prejudicada pelas limitações do modelo de incorporação em alguns casos de uso, outros experimentos demonstraram que um comando de análise de LLM bem elaborado pode mitigar esses problemas e recuperar as informações corretas, mesmo quando a compreensão semântica é difícil apenas para o modelo de incorporação.

O analisador do LLM melhora a capacidade do LLM de entender e raciocinar sobre o contexto em um documento, o que leva a respostas mais precisas e abrangentes.

Consultar recuperação

Depois que você insere um comando enviado a um modelo de IA generativa, o componente de recuperação na RAG pesquisa na base de conhecimento para encontrar informações relevantes para a consulta. Para mais informações sobre como recuperar arquivos RAG de um corpus, consulte Método: ragFiles.get.

A seguir