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

  1. 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.
  2. Instale a CLI do Google Cloud.

  3. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.

  4. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  5. 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ão resourcemanager.projects.create. Saiba como conceder papéis.
    • Crie um projeto do Google Cloud :

      gcloud projects create PROJECT_ID

      Substitua PROJECT_ID por 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_ID pelo nome do projeto do Google Cloud .

  6. 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.

  7. Verifique se o faturamento está ativado para o projeto do Google Cloud .

  8. Instale a CLI do Google Cloud.

  9. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.

  10. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  11. 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ão resourcemanager.projects.create. Saiba como conceder papéis.
    • Crie um projeto do Google Cloud :

      gcloud projects create PROJECT_ID

      Substitua PROJECT_ID por 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_ID pelo nome do projeto do Google Cloud .

  12. 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.

  13. Verifique se o faturamento está ativado para o projeto do Google Cloud .

  14. 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.

  15. 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.

  16. Consulte os preços do Cloud Run ou faça uma estimativa de custos com a calculadora de preços.
  17. 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:

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:

  1. Crie um novo diretório com o nome my-agent-app e altere o diretório nele:

    mkdir my-agent-app
    cd my-agent-app
    
  2. Crie um arquivo chamado main.py e 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))
    
  3. Crie um arquivo chamado requirements.txt e 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:

  1. No console do Google Cloud , acesse a página Serviços do Cloud Run:

    Acessar o Cloud Run

  2. Localize o serviço que você quer excluir na lista de serviços e clique na caixa de seleção para marcá-lo.

  3. 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: