É possível adicionar documentos (arquivos PDF e TXT) às solicitações do Gemini para realizar tarefas que envolvem a compreensão do conteúdo dos documentos incluídos. Esta página mostra como adicionar PDFs às suas solicitações ao Gemini na Vertex AI usando o console do Google Cloud e a API Vertex AI.
Modelos compatíveis
A tabela a seguir lista os modelos compatíveis com a compreensão de documentos:
Modelo | Detalhes da mídia | Tipos MIME |
---|---|---|
Gemini 2.5 Progemini-2.5-pro-preview-03-25
Testar o Gemini 2.5 Pro |
|
|
Gemini 2.0 Flashgemini-2.0-flash
Teste o Gemini 2.0 Flash |
|
|
Gemini 2.0 Flash-Litegemini-2.0-flash-lite
Testar o Gemini 2.0 Flash-Lite |
|
|
1: é o TPM máximo de entradas de documentos em todas as solicitações de um projeto. Use também o TPM máximo para outras modalidades.
A métrica de cota é
generate_content_document_input_per_base_model_id_and_resolution
.
Para uma lista de linguagens compatíveis com os modelos do Gemini, consulte as informações do modelo Modelos do Google. Para saber mais sobre como criar comandos multimodais, consulte Criar comandos multimodais. Se você está procurando uma maneira de usar o Gemini diretamente no seu dispositivo móvel e e apps da Web, consulte os SDKs da Vertex AI para Firebase para apps para Android, Swift, da Web e Flutter.
Adicionar documentos a uma solicitação
O exemplo de código abaixo mostra como incluir um PDF em uma solicitação de comando. Esta amostra em PDF funciona com todos os modelos multimodais do Gemini.
Gen AI SDK for Python
Instalar
pip install --upgrade google-genai
Defina variáveis de ambiente para usar o SDK da IA generativa com a Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=us-central1 export GOOGLE_GENAI_USE_VERTEXAI=True
REST
Depois de configurou seu ambiente use REST para testar uma solicitação de texto. O exemplo a seguir envia uma solicitação ao publisher endpoint do modelo.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
LOCATION
: a região para processar a solicitação. Insira uma região compatível. Para a lista completa de regiões compatíveis, consulte Locais disponíveis.Clicar para abrir uma lista parcial das regiões disponíveis
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
PROJECT_ID
: o ID do projeto.FILE_URI
: o URI ou URL do arquivo a ser incluído no comando. Os valores aceitáveis são os seguintes:- URI do bucket do Cloud Storage: o objeto precisa ser publicamente legível ou residir no
mesmo projeto do Google Cloud que está enviando a solicitação. Para
gemini-2.0-flash
egemini-2.0-flash-lite
, o limite de tamanho é de 2 GB. - URL HTTP: o URL do arquivo precisa ser legível publicamente. É possível especificar um arquivo de vídeo, um arquivo de áudio e até 10 arquivos de imagem por solicitação. Os arquivos de áudio, vídeo e documentos não podem exceder 15 MB.
- URL do vídeo do YouTube: o vídeo do YouTube precisa ser de propriedade da conta que você usou para fazer login no console do Google Cloud ou ser público. Somente um URL de vídeo do YouTube é aceito por solicitação.
Ao especificar um
fileURI
, você também precisa especificar o tipo de mídia (mimeType
) do arquivo. Se o VPC Service Controls estiver ativado, não será possível especificar um URL de arquivo de mídia parafileURI
.Se você não tiver um arquivo PDF no Cloud Storage, use o seguinte arquivo disponível publicamente:
gs://cloud-samples-data/generative-ai/pdf/2403.05530.pdf
com um tipo MIME deapplication/pdf
. Para acessar este PDF, abra o arquivo PDF de exemplo.- URI do bucket do Cloud Storage: o objeto precisa ser publicamente legível ou residir no
mesmo projeto do Google Cloud que está enviando a solicitação. Para
MIME_TYPE
: O tipo de mídia do arquivo especificado emdata
oufileUri
. Os valores aceitáveis são os seguintes:Clique para expandir os tipos MIME.
application/pdf
audio/mpeg
audio/mp3
audio/wav
image/png
image/jpeg
image/webp
text/plain
video/mov
video/mpeg
video/mp4
video/mpg
video/avi
video/wmv
video/mpegps
video/flv
TEXT
: as instruções de texto a serem incluídas no comando. Por exemplo,You are a very professional document summarization specialist. Please summarize the given document.
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo chamado request.json
.
Execute o comando a seguir no terminal para criar ou substituir
esse arquivo no diretório atual:
cat > request.json << 'EOF' { "contents": { "role": "USER", "parts": [ { "fileData": { "fileUri": "FILE_URI", "mimeType": "MIME_TYPE" } }, { "text": "TEXT" } ] } } EOF
Depois execute o comando a seguir para enviar a solicitação REST:
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/publishers/google/models/gemini-2.0-flash:generateContent"
PowerShell
Salve o corpo da solicitação em um arquivo chamado request.json
.
Execute o comando a seguir no terminal para criar ou substituir
esse arquivo no diretório atual:
@' { "contents": { "role": "USER", "parts": [ { "fileData": { "fileUri": "FILE_URI", "mimeType": "MIME_TYPE" } }, { "text": "TEXT" } ] } } '@ | Out-File -FilePath request.json -Encoding utf8
Depois execute o comando a seguir para enviar a solicitação REST:
$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/publishers/google/models/gemini-2.0-flash:generateContent" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a seguinte.
Observe o seguinte no URL deste exemplo:- Use o
generateContent
para solicitar que a resposta seja retornada depois de ser totalmente gerada. Para reduzir a percepção de latência ao público humano, transmita a resposta à medida que geradas usando ostreamGenerateContent
. - O ID do modelo multimodal está localizado no final do URL, antes do método
(por exemplo,
gemini-2.0-flash
). Este exemplo pode oferecer suporte a outras modelos de classificação.
Console
Para enviar um prompt multimodal usando o console do Google Cloud, faça o seguinte:Na seção Vertex AI do console do Google Cloud, acesse a página do Vertex AI Studio.
Clique em Criar prompt.
Opcional: configure o modelo e os parâmetros:
- Modelo: selecione um modelo.
Opcional: para configurar parâmetros avançados, clique em Avançado e faça a configuração da seguinte maneira:
Clique para abrir as configurações avançadas
Top-K: use o controle deslizante ou a caixa de texto para inserir um valor para "top-K".
O top-k muda a forma como o modelo seleciona tokens para saída. Um top-K de1
significa que o próximo token selecionado é o mais provável entre todos os tokens no vocabulário do modelo (também chamado de decodificação gananciosa), enquanto um top-K de3
significa que o próximo token está selecionado entre os três tokens mais prováveis usando a temperatura.Para cada etapa da seleção de tokens, são amostrados os tokens top-K com as maiores probabilidades. Em seguida, os tokens são filtrados com base no valor de top-P com o token final selecionado por meio da amostragem de temperatura.
Especifique um valor mais baixo para respostas menos aleatórias e um valor mais alto para respostas mais aleatórias.
- Top-P: use o controle deslizante ou a caixa de texto para inserir um valor para essa parte.
Os tokens são selecionados do mais provável para o menos até que a soma das probabilidades seja igual ao valor do top-P. Para ter menos resultados de variáveis,
defina top-P como
0
. - Respostas máximas: use o controle deslizante ou a caixa de texto para inserir um valor para o número de respostas a serem geradas.
- Respostas de streaming: ative para mostrar as respostas à medida que são geradas.
- Limite do filtro de segurança: selecione o limite de probabilidade de mostrar respostas que podem ser prejudiciais.
- Ativar embasamento: o embasamento não é compatível com solicitações multimodais.
- Região: selecione a região que você quer usar.
- Temperatura: use o controle deslizante ou a caixa de texto para inserir um valor para a temperatura.
The temperature is used for sampling during response generation, which occurs when
andtopP
topK
are applied. Temperature controls the degree of randomness in token selection. Lower temperatures are good for prompts that require a less open-ended or creative response, while higher temperatures can lead to more diverse or creative results. A temperature of0
means that the highest probability tokens are always selected. In this case, responses for a given prompt are mostly deterministic, but a small amount of variation is still possible.If the model returns a response that's too generic, too short, or the model gives a fallback response, try increasing the temperature.
</li> <li>**Output token limit**: Use the slider or textbox to enter a value for the max output limit. Maximum number of tokens that can be generated in the response. A token is approximately four characters. 100 tokens correspond to roughly 60-80 words.Specify a lower value for shorter responses and a higher value for potentially longer responses.
</li> <li>**Add stop sequence**: Optional. Enter a stop sequence, which is a series of characters that includes spaces. If the model encounters a stop sequence, the response generation stops. The stop sequence isn't included in the response, and you can add up to five stop sequences.</li> </ul>
Clique em Inserir mídia e selecione uma origem para o arquivo.
Fazer upload
Selecione o arquivo que você quer enviar e clique em Abrir.
Por URL
Insira o URL do arquivo que você quer usar e clique em Inserir.
Cloud Storage
Selecione o bucket e o arquivo que você quer importar e clique em Selecionar.
Google Drive
- Escolha uma conta e conceda consentimento ao Vertex AI Studio para acessar sua conta na primeira vez que você selecionar essa opção. É possível fazer upload vários arquivos que tenham um tamanho total de até 10 MB. Um único arquivo não pode exceder 7 MB.
- Clique no arquivo que você quer adicionar.
Clique em Selecionar.
A miniatura do arquivo é mostrada no painel Comando. O número total de tokens também é exibido. Se os dados do comando excederem o limite de tokens, os tokens serão truncados e não serão incluídos no processamento dos dados.
Digite o comando de texto no painel Prompt.
Opcional: para conferir o ID do token para texto e os IDs de token, clique na contagem de tokens no painel Comando.
Clique em Enviar.
Opcional: para salvar o comando em Meus comandos, clique em
Salvar.Opcional: para receber o código Python ou um comando curl para seu comando, clique em
Criar com código > Receber código.
Definir parâmetros opcionais do modelo
Cada modelo tem um conjunto de parâmetros opcionais que podem ser definidos. Para mais informações, consulte Parâmetros de geração de conteúdo.
Documentos necessários
Tokenização de PDFs
Os PDFs são tratados como imagens. Por isso, cada página de um PDF é tokenizada da mesma forma que uma imagem.
Além disso, o custo dos PDFs segue os preços de imagens do Gemini. Por exemplo, se você incluir um documento de duas páginas em uma chamada da API Gemini, será cobrada uma taxa de entrada pelo processamento de duas imagens.
Tokenização de texto simples
Os documentos de texto simples são tokenizados como texto. Por exemplo, se você incluir um documento de texto simples de 100 palavras em uma chamada da API Gemini, será cobrada uma taxa de entrada pelo processamento de 100 palavras.
Práticas recomendadas para PDF
Ao usar PDFs, siga as práticas recomendadas e informações a seguir para ter os melhores resultados:
- Se o comando contiver um único PDF, coloque o PDF antes do comando de texto na solicitação.
- Se você tiver um documento longo, considere dividi-lo em vários PDFs para processá-lo.
- Use PDFs criados com texto renderizado como texto em vez de usar texto em imagens digitalizadas. Esse formato garante que o texto seja legível por máquina para que seja mais fácil editar, pesquisar e manipular o texto em comparação com PDFs de imagens digitalizadas. Isso fornece os resultados ideais ao trabalhar com documentos com muito texto, como contratos.
Limitações
Embora os modelos multimodais do Gemini sejam eficientes em muitos casos de uso multimodais, é importante entender as limitações dos modelos:
- Raciocínio espacial: os modelos não são precisos para localizar texto ou objetos em PDFs. Talvez eles retornem somente as contagens aproximadas de objetos.
- Precisão: os modelos podem cometer erros ao interpretar texto escrito à mão em documentos PDF.
A seguir
- Comece a criar com os modelos multimodais do Gemini. Novos clientes ganham US $300 em créditos Google Cloud gratuitos para descobrir o que eles podem fazer com o Gemini.
- Saiba como enviar solicitações de comandos de chat.
- Saiba mais sobre as práticas recomendadas de IA responsável e os filtros de segurança da Vertex AI.