A funcionalidade de execução de código da API Gemini permite que o modelo gere e execute código Python e aprenda iterativamente com os resultados até chegar a um resultado final. Pode usar esta capacidade de execução de código para criar aplicações que beneficiam do raciocínio baseado em código e que produzem resultados de texto. Por exemplo, pode usar a execução de código numa aplicação que resolva equações ou processe texto.
A API Gemini oferece a execução de código como uma ferramenta, semelhante à chamada de funções. Depois de adicionar a execução de código como ferramenta, o modelo decide quando a usar.
O ambiente de execução de código inclui as seguintes bibliotecas. Não pode instalar as suas próprias bibliotecas.
- Altair
- Chess
- Cv2
- Matplotlib
- Mpmath
- NumPy
- Pandas
- Pdfminer
- Reportlab
- Seaborn
- Sklearn
- Statsmodels
- Striprtf
- SymPy
- Tabulate
Modelos suportados
Os seguintes modelos oferecem suporte para a execução de código:
- Gemini 2.5 Flash (pré-visualização)
- Gemini 2.5 Flash-Lite (Pré-visualização)
- Gemini 2.5 Flash-Lite
- Gemini 2.0 Flash com API Live (Pré-visualização)
- Gemini 2.5 Pro
- Gemini 2.5 Flash
- Gemini 2.0 Flash
Comece a usar a execução de código
Esta secção pressupõe que concluiu os passos de configuração mostrados no guia de início rápido da API Gemini.
Ative a execução de código no modelo
Pode ativar a execução de código básico, conforme mostrado aqui:
Python
Instalação
pip install --upgrade google-genai
Para saber mais, consulte a documentação de referência do SDK.
Defina variáveis de ambiente para usar o SDK de IA gen com o 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=global export GOOGLE_GENAI_USE_VERTEXAI=True
Go
Saiba como instalar ou atualizar o Go.
Para saber mais, consulte a documentação de referência do SDK.
Defina variáveis de ambiente para usar o SDK de IA gen com o 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=global export GOOGLE_GENAI_USE_VERTEXAI=True
Node.js
Instalação
npm install @google/genai
Para saber mais, consulte a documentação de referência do SDK.
Defina variáveis de ambiente para usar o SDK de IA gen com o 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=global export GOOGLE_GENAI_USE_VERTEXAI=True
Java
Saiba como instalar ou atualizar o Java.
Para saber mais, consulte a documentação de referência do SDK.
Defina variáveis de ambiente para usar o SDK de IA gen com o 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=global export GOOGLE_GENAI_USE_VERTEXAI=True
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
GENERATE_RESPONSE_METHOD
: o tipo de resposta que quer que o modelo gere. Escolha um método que gere a forma como quer que a resposta do modelo seja devolvida:streamGenerateContent
: a resposta é transmitida à medida que é gerada para reduzir a perceção de latência para um público humano.generateContent
: a resposta é devolvida depois de ser totalmente gerada.
LOCATION
: a região para processar o pedido. As opções disponíveis incluem o seguinte:Clique para expandir 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 seu ID do projeto.MODEL_ID
: o ID do modelo que quer usar.ROLE
: A função numa conversa associada ao conteúdo. É necessário especificar uma função, mesmo em exemplos de utilização de uma única interação. Os valores aceitáveis incluem o seguinte:USER
: especifica o conteúdo enviado por si.MODEL
: especifica a resposta do modelo.
As instruções de texto a incluir no comando.TEXT
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro denominado request.json
.
Execute o seguinte comando no terminal para criar ou substituir
este ficheiro no diretório atual:
cat > request.json << 'EOF' { "tools": [{'codeExecution': {}}], "contents": { "role": "ROLE", "parts": { "text": "TEXT" } }, } EOF
Em seguida, execute o seguinte comando para enviar o seu pedido 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/MODEL_ID:GENERATE_RESPONSE_METHOD"
PowerShell
Guarde o corpo do pedido num ficheiro denominado request.json
.
Execute o seguinte comando no terminal para criar ou substituir
este ficheiro no diretório atual:
@' { "tools": [{'codeExecution': {}}], "contents": { "role": "ROLE", "parts": { "text": "TEXT" } }, } '@ | Out-File -FilePath request.json -Encoding utf8
Em seguida, execute o seguinte comando para enviar o seu pedido 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/MODEL_ID:GENERATE_RESPONSE_METHOD" | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte.
Use a execução de código no chat
Também pode usar a execução de código como parte de um chat.
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://aiplatform.googleapis.com/v1/projects/test-project/locations/global/publishers/google/models/gemini-2.0-flash-001:generateContent -d \
$'{
"tools": [{'code_execution': {}}],
"contents": [
{
"role": "user",
"parts": {
"text": "Can you print \"Hello world!\"?"
}
},
{
"role": "model",
"parts": [
{
"text": ""
},
{
"executable_code": {
"language": "PYTHON",
"code": "\nprint(\"hello world!\")\n"
}
},
{
"code_execution_result": {
"outcome": "OUTCOME_OK",
"output": "hello world!\n"
}
},
{
"text": "I have printed \"hello world!\" using the provided python code block. \n"
}
],
},
{
"role": "user",
"parts": {
"text": "What is the sum of the first 50 prime numbers? Generate and run code for the calculation, and make sure you get all 50."
}
}
]
}'
Execução de código versus chamadas de funções
A execução de código e a chamada de funções são funcionalidades semelhantes:
- A execução de código permite que o modelo execute código no back-end da API num ambiente fixo e isolado.
- A chamada de funções permite-lhe executar as funções que o modelo pede, no ambiente que quiser.
Em geral, deve preferir usar a execução de código se esta puder processar o seu exemplo de utilização. A execução de código é mais simples de usar (basta ativá-la) e é resolvida num único pedido GenerateContent
. A chamada de funções requer um pedido GenerateContent
adicional para enviar de volta o resultado de cada chamada de função.
Na maioria dos casos, deve usar a chamada de funções se tiver as suas próprias funções que quer executar localmente e deve usar a execução de código se quiser que a API escreva e execute código Python por si e devolva o resultado.
Faturação
Não existe qualquer custo adicional pela ativação da execução de código a partir da API Gemini. A faturação é feita à taxa atual de tokens de entrada e saída com base no modelo do Gemini que está a usar.
Seguem-se outros aspetos a ter em atenção sobre a faturação da execução de código:
- A faturação é feita apenas uma vez pelos tokens de entrada que transmite ao modelo e pelos tokens de entrada intermédios usados pela ferramenta de execução de código.
- A faturação é feita com base nos tokens de saída finais que lhe são devolvidos na resposta da API.
- A faturação é feita à taxa atual de tokens de entrada e saída com base no modelo Gemini que está a usar.
- Se o Gemini usar a execução de código ao gerar a sua resposta, o comando original, o código gerado e o resultado do código executado são etiquetados como tokens intermédios e são faturados como tokens de entrada.
- Em seguida, o Gemini gera um resumo e devolve o código gerado, o resultado do código executado e o resumo final. Estes são faturados como tokens de saída.
- A API Gemini inclui uma contagem de tokens intermédia na resposta da API, para que possa acompanhar os tokens de entrada adicionais além dos transmitidos no seu comando inicial.
O código gerado pode incluir texto e saídas multimodais, como imagens.
Limitações
- O modelo só pode gerar e executar código. Não pode devolver outros artefactos, como ficheiros multimédia.
- A ferramenta de execução de código não suporta URIs de ficheiros como entrada/saída. No entanto, a ferramenta de execução de código suporta a entrada de ficheiros e a saída de gráficos como bytes incorporados. Ao usar estas capacidades de entrada e saída, pode carregar ficheiros CSV e de texto, fazer perguntas sobre os ficheiros e gerar gráficos do Matplotlib como parte do resultado da execução do código.
Os tipos MIME suportados para bytes incorporados são
.cpp
,.csv
,.java
,.jpeg
,.js
,.png
,.py
,.ts
e.xml
. - A execução do código pode durar um máximo de 30 segundos antes de atingir o limite de tempo.
- Em alguns casos, a ativação da execução de código pode levar a regressões noutras áreas do resultado do modelo (por exemplo, escrever uma história).