Guia de início rápido: criar e implantar um app da Web em Python (smolagents) no Cloud Run
O Cloud Run permite executar aplicativos de agentes de IA em Python em uma plataforma totalmente gerenciada. Neste guia de início rápido, você implanta um aplicativo da Web smolagents no Cloud Run, que cria automaticamente uma imagem de contêiner quando você implanta do código-fonte.
Antes de começar
- Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloudagora, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Crie ou selecione um Google Cloud projeto.
Funções necessárias para selecionar ou criar um projeto
- Selecionar um projeto: não é necessário um papel específico do IAM para selecionar um projeto. Você pode escolher qualquer projeto em que tenha recebido um papel.
-
Criar um projeto: para criar um projeto, é necessário ter o papel de Criador de projetos
(
roles/resourcemanager.projectCreator), que contém a permissãoresourcemanager.projects.create. Saiba como conceder papéis.
-
Crie um projeto do Google Cloud :
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor um nome para o projeto do Google Cloud que você está criando. -
Selecione o projeto Google Cloud que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_IDpelo nome do projeto do Google Cloud .
-
Se este guia estiver usando um projeto atual, verifique se você tem as permissões necessárias para concluir o guia. Se você criou um projeto, já tem as permissões necessárias.
-
Verifique se o faturamento está ativado para o projeto do Google Cloud .
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Crie ou selecione um Google Cloud projeto.
Funções necessárias para selecionar ou criar um projeto
- Selecionar um projeto: não é necessário um papel específico do IAM para selecionar um projeto. Você pode escolher qualquer projeto em que tenha recebido um papel.
-
Criar um projeto: para criar um projeto, é necessário ter o papel de Criador de projetos
(
roles/resourcemanager.projectCreator), que contém a permissãoresourcemanager.projects.create. Saiba como conceder papéis.
-
Crie um projeto do Google Cloud :
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor um nome para o projeto do Google Cloud que você está criando. -
Selecione o projeto Google Cloud que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_IDpelo nome do projeto do Google Cloud .
-
Se este guia estiver usando um projeto atual, verifique se você tem as permissões necessárias para concluir o guia. Se você criou um projeto, já tem as permissões necessárias.
-
Verifique se o faturamento está ativado para o projeto do Google Cloud .
Se você precisa seguir uma política da organização de restrição de domínio que restringe invocações não autenticadas para seu projeto, será necessário acessar o serviço implantado, conforme descrito em Como testar serviços particulares.
-
Ative as APIs Cloud Run Admin e Cloud Build, se alguma delas ainda não estiver ativada:
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão pelo papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.gcloud services enable run.googleapis.com
cloudbuild.googleapis.com Depois que a API Cloud Run Admin for ativada, a conta de serviço padrão do Compute Engine será criadas automaticamente.
- Consulte os preços do Cloud Run ou faça uma estimativa de custos com a calculadora de preços.
- Você precisa de uma chave de API do Google AI Studio para implantar o app smolagents com um modelo do Gemini. Para gerar uma chave de API usando o Google AI Studio, consulte Como usar chaves da API Gemini na documentação da API Gemini.
Funções exigidas
Para conseguir as permissões necessárias a fim de concluir o guia de início rápido, peça ao administrador para conceder a você os seguintes papéis do IAM:
- Administrador do Cloud Run (
roles/run.admin) no projeto - Desenvolvedor de origem do Cloud Run (
roles/run.sourceDeveloper) no projeto - Usuário da conta de serviço (
roles/iam.serviceAccountUser) na identidade do serviço - Leitor de registros (
roles/logging.viewer) no projeto
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
Conceder acesso à conta de serviço do Cloud Build ao seu projeto
O Cloud Build usa automaticamente a conta de serviço padrão do Compute Engine como a conta de serviço padrão do Cloud Build para criar seu código-fonte e o recurso do Cloud Run, a menos que você substitua esse comportamento.
Para que o Cloud Build crie suas origens, conceda à conta de serviço do Cloud Build o papel Builder do Cloud Run (roles/run.builder) no seu projeto:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT_EMAIL_ADDRESS \ --role=roles/run.builder
Substitua PROJECT_ID pelo ID do projeto Google Cloud
e SERVICE_ACCOUNT_EMAIL_ADDRESS pelo
endereço de e-mail da conta de serviço do Cloud Build. Se você estiver usando a
conta de serviço padrão do Compute Engine como a conta de serviço do Cloud Build, use o seguinte formato para o endereço de e-mail da conta de serviço:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
Substitua PROJECT_NUMBER pelo número do projeto do Google Cloud.
Para instruções detalhadas sobre como encontrar o ID do projeto e o número do projeto, consulte Criar e gerenciar projetos.
A concessão da função de builder do Cloud Run leva alguns minutos para se propagar.
Crie o aplicativo de exemplo
Para escrever um aplicativo em Python:
Crie um novo diretório com o nome
my-agent-appe altere o diretório nele:mkdir my-agent-app cd my-agent-appCrie um arquivo chamado
main.pye cole o seguinte código nele:import os from fastapi import FastAPI, HTTPException from pydantic import BaseModel from smolagents import CodeAgent, LiteLLMModel, tool # 1. Define a simple tool for the agent @tool def get_greeting(name: str) -> str: """ Returns a special greeting for the user. Args: name: The name of the person to greet. """ return f"Hello {name}, welcome to the agentic world running on Cloud Run!" # 2. Initialize the Gemini Model via LiteLLM # Make sure GEMINI_API_KEY is set in your environment variables model = LiteLLMModel( model_id="gemini/gemini-2.5-flash", # This is the model name. If a newer model is available, you can use that. api_key=os.environ.get("GEMINI_API_KEY") ) # 3. Create the CodeAgent agent = CodeAgent( tools=[get_greeting], model=model, add_base_tools=True # Adds basic python tools like print ) # 4. Setup FastAPI app = FastAPI() class AgentRequest(BaseModel): task: str @app.get("/") def health_check(): return {"status": "running", "service": "smolagents-fastapi"} @app.post("/run") def run_agent(request: AgentRequest): try: # Run the agent with the user's task response = agent.run(request.task) return {"response": str(response)} except Exception as e: raise HTTPException(status_code=500, detail=str(e))Crie um arquivo chamado
requirements.txte cole o seguinte código nele:fastapi uvicorn smolagents[toolkit] litellm
Implantar no Cloud Run da origem
A implantação a partir da origem cria automaticamente uma imagem de contêiner com base no código-fonte e a implanta.
Para implantar a partir da origem, use o seguinte comando:
gcloud run deploy smolagents-demo \
--source . \
--region us-central1 \
--no-allow-unauthenticated \
--set-env-vars GEMINI_API_KEY=API_KEY
Substitua API_KEY pela sua chave de API do Google AI Studio.
O Cloud Run mostra o URL do serviço, como https://smolagents-demo-xyz-uc.a.run.app,
depois que você implanta o app.
Testar o serviço do Cloud Run
Teste o serviço enviando uma tarefa ao agente usando o seguinte comando curl:
curl -X POST YOUR-SERVICE-URL/run \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-identity-token)" \
-d '{"task": "Use the greeting tool to say hello to Gemini User"}'
Substitua YOUR-SERVICE-URL pelo URL do serviço.
O agente envia a seguinte resposta:
{
"response": "Hello Gemini User, welcome to the agentic world running on Cloud Run!"
}
Para verificar se o serviço está funcionando corretamente, confira a guia Registros do serviço do Cloud Run.
Limpar
Para evitar cobranças na conta do Google Cloud pelos recursos usados nesta página, exclua o projeto do Google Cloud e os recursos.
Para evitar cobranças extras na sua conta do Google Cloud , exclua todos os recursos implantados com este guia de início rápido.
Excluir o repositório
O Cloud Run não gera cobranças quando o serviço implantado não está em uso. No entanto, ainda é possível receber cobranças pelo armazenamento da imagem do contêiner no Artifact Registry. Para excluir repositórios do Artifact Registry, siga as etapas em Excluir repositórios na documentação do Artifact Registry.
Excluir o serviço
Os serviços do Cloud Run não geram custos até receberem solicitações. Para excluir o serviço do Cloud Run, siga uma destas etapas:
Console
Para excluir um serviço, realize as etapas a seguir:
No console do Google Cloud , acesse a página Serviços do Cloud Run:
Localize o serviço que você quer excluir na lista de serviços e clique na caixa de seleção para marcá-lo.
Clique em Excluir. Isso excluirá todas as revisões do serviço.
gcloud
Para excluir um serviço, execute o seguinte comando:
gcloud run services delete SERVICE --region REGION
Substitua:
- SERVICE: nome do serviço.
- REGION: Google Cloud região do serviço.
Excluir o projeto de teste
A exclusão do projeto do Google Cloud interrompe o faturamento de todos os recursos dele. Para liberar todos os recursos do Google Cloud no seu projeto, siga estas etapas:
Excluir um projeto do Google Cloud :
gcloud projects delete PROJECT_ID
A seguir
Para mais informações sobre como criar um contêiner a partir do código-fonte e enviá-lo para um repositório, consulte: