Nesta página, explicamos como usar o analisador de LLM do mecanismo de RAG da Vertex AI.
Introdução
O mecanismo RAG da Vertex AI 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 relevantes 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.
Os recursos do mecanismo de RAG da Vertex AI melhoram significativamente a qualidade das respostas geradas.
Modelos compatíveis
O analisador de LLM só é compatível com modelos do Gemini. Se você tiver a API RAG ativada, terá acesso aos modelos compatíveis. Para uma lista de modelos de geração compatíveis, consulte Modelos generativos.
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 detalhes sobre preços, consulte Preços da Vertex AI.
Para saber quais cotas se aplicam, consulte Solicitar cotas.
O analisador de LLM chama os 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 o 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 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 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 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 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,
)
Comandos
O analisador de LLM do mecanismo de RAG da Vertex AI 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 solicitar que o Gemini analise seus documentos, o mecanismo de RAG da Vertex AI adiciona um comando ao seu 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 mecanismo RAG da Vertex AI pode usar para analisar seus documentos:
Instrução | Declaração de modelo | Exemplo |
---|---|---|
Especifique a função. | Você é um [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 de saída, como uma lista estruturada ou um formato de texto] e vincule ao [Especifique o local 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 o que deve ser o foco do LLM. | Extraia [Especifique os tipos de dados principais, como nomes, datas, números, atributos ou relacionamentos] exatamente como declarado. | 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 maneira 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 de RAG da Vertex AI. 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 do 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 os 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 comandos | 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 do 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 um exemplo de como recuperar 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 API do mecanismo de RAG da Vertex AI.