Esta página explica como usar o analisador LLM do mecanismo RAG da Vertex AI.
Introdução
O mecanismo RAG da Vertex AI usa LLMs para analisar documentos. Os LLMs têm a capacidade de processar documentos de forma eficaz das seguintes maneiras:
- Entender e interpretar o conteúdo semântico em vários formatos.
- Extrair blocos de documentos relevantes.
- Extrair informações significativas de documentos.
- Identifique seções relevantes nos documentos.
- Resuma documentos complexos com precisão.
- Entender e interagir com os recursos visuais.
- Extrair dados de gráficos e diagramas.
- Descrever imagens.
- Entender as relações entre gráficos e texto.
- Ofereça respostas mais precisas e ricas em contexto.
Os recursos do mecanismo de RAG da Vertex AI melhoram significativamente a qualidade das respostas geradas.
Modelos compatíveis
O analisador de LLM só oferece suporte a modelos Gemini. Se você tiver a API RAG ativada, terá acesso aos modelos compatíveis. Para conferir uma lista de modelos de geração com suporte, consulte Modelos generativos.
Tipos de arquivos compatíveis
O analisador LLM oferece suporte aos seguintes tipos de arquivo:
application/pdf
image/png
image/jpeg
image/webp
image/heic
image/heif
Preços e cotas
Para detalhes sobre preços, consulte Preços da Vertex AI.
Para cotas aplicáveis, consulte Solicitar cotas.
O analisador de LLM chama os modelos do Gemini para analisar seus documentos. Isso cria custos adicionais, que são cobrados no seu projeto. O custo pode ser estimado aproximadamente 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 de PDF média tem 500 tokens, e precisamos de mais 100 tokens para instruções. 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 projeto Google Cloud .
- LOCATION: a região em que sua solicitação é processada.
- RAG_CORPUS_RESOURCE: o ID do 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 que o analisador de LLM seja usado para analisar documentos.
MAX_PARSING_REQUESTS_PER_MIN: opcional. O número máximo de solicitações que o job pode fazer ao modelo da Vertex AI por minuto. Para mais informações, consulte Limites de taxa da IA generativa na Vertex AI e a página Cotas e limites do sistema para que seu projeto defina 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 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.
from vertexai.preview 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 Vertex AI 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,
)
Solicitações de prompt
O analisador LLM do mecanismo de RAG da Vertex AI usa uma solicitação predefinida e ajustada para analisar documentos. No entanto, se você tiver documentos especializados que não sejam adequados para uma solicitação geral, poderá especificar sua solicitação de análise personalizada ao usar a API. Ao solicitar que o Gemini analise seus documentos, o mecanismo de RAG da Vertex AI anexa uma solicitação ao comando padrão do sistema.
Tabela de modelos de comando
Para ajudar na análise de documentos, a tabela a seguir mostra um exemplo de modelo de comando para orientar você na criação de comandos que a Vertex AI RAG Engine pode usar para analisar seus documentos:
Instrução | Declaração de modelo | Exemplo |
---|---|---|
Especifique a função. | Você é [especificar o papel, como um extrator de dados factuais ou um extrator de informações]. | Você é um coletor de informações. |
Especifique a tarefa. | Extraia [especifique o tipo de informação, como declarações factuais, dados importantes ou detalhes específicos] da [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 de saída, como uma lista estruturada ou formato de texto] e vincule ao [Especifique o local da origem, como uma página, parágrafo, tabela ou linha]. | Apresente cada fato em uma lista estruturada e inclua um link para a página de exemplo. |
Destaque o que deve ser o foco do LLM. | Extraia [especifique os principais tipos de dados, como nomes, datas, números, atributos ou relacionamentos] exatamente como indicado. | 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 o comando a ser enviado ao analisador de LLM.
- Específico: defina claramente a tarefa e o tipo de informação a ser extraída.
- Detalhados: forneça instruções detalhadas sobre o formato de saída, a atribuição de origem e o processamento de diferentes estruturas de dados.
- Restrição: especifique explicitamente o que a IA não pode fazer, como análise ou interpretação.
- Clara: use uma linguagem clara e direta.
- Estruturado: organize as instruções de maneira lógica usando listas numeradas ou pontos para facilitar a leitura.
Análise de qualidade de análise
Esta tabela lista os resultados de cenários que os clientes executaram usando o mecanismo RAG da Vertex AI. O feedback mostra que o analisador de LLM melhora a qualidade da análise de documentos.
Cenário | Result | |
---|---|---|
Como analisar informações em slides e vincular seções | O analisador de LLM vinculou os títulos das seções em um slide às informações detalhadas apresentadas nos slides seguintes. | |
Como entender e extrair informações de tabelas | O analisador de LLM relacionou corretamente as colunas e os 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 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. | |
Como capturar relações entre títulos e texto | O analisador LLM, orientado pelo comando, prestou atenção às estruturas de título e conseguiu recuperar todas as informações relevantes associadas a um determinado tópico ou seção. | |
Possibilidade de superar as limitações de incorporação com a engenharia de comando | Embora inicialmente as limitações do modelo de incorporação em alguns casos de uso tenham sido um obstáculo, outros experimentos demonstraram que um comando de analisador de LLM bem elaborado pode atenuar esses problemas e recuperar as informações corretas, mesmo quando a compreensão semântica é um desafio para o modelo de incorporação. |
O analisador de 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 no RAG pesquisa na base de conhecimento para encontrar informações relevantes para a consulta. Para conferir um exemplo de como extrair arquivos RAG de um corpus com base em um texto de consulta, consulte Consulta de recuperação.
A seguir
- Para saber mais sobre o mecanismo de RAG da Vertex AI, consulte Visão geral do mecanismo de RAG da Vertex AI.
- Para saber mais sobre o mecanismo de RAG da Vertex AI, consulte a API Mecanismo de RAG da Vertex AI.