De Cero a Vertex AI: Invocando Gemini utilizando Principios de IA Responsable
Este artículo es un tutorial sobre cómo desplegar una aplicación FastAPI en Google Cloud Run que invoca modelos Gemini a través de Vertex AI, implementando al mismo tiempo principios de IA responsable.
Introducción
El artículo guía al lector en la configuración de filtros de seguridad para cuatro categorías de daño: contenido peligroso, acoso, discurso de odio y contenido sexualmente explícito con umbrales de bloqueo estrictos. Se utiliza Vellox como adaptador para ejecutar aplicaciones ASGI en funciones de Google Cloud y se implementa autenticación de token Bearer para mayor seguridad.
El tutorial enfatiza la implementación práctica de la seguridad al mostrar cómo Vertex AI evalúa tanto las entradas como las salidas, devolviendo una razón de «SAFETY» con calificaciones de seguridad detalladas cuando se detecta contenido dañino, lo que resulta particularmente útil para desarrolladores que desean construir aplicaciones de IA con moderación de contenido y seguridad desde el principio.
Tecnologías Utilizadas
Funciones de Cloud Run
Esta tecnología es ideal para responder a eventos o desencadenadores HTTP rápidamente, requiere una configuración mínima, y trabaja con funciones concisas en lugar de servicios completos.
Velox
Vellox es un adaptador que permite ejecutar aplicaciones ASGI en Google Cloud Functions.
HTTPBearer
HTTPBearer en FastAPI es una utilidad de seguridad diseñada para manejar la autenticación de token Bearer, un método común para asegurar los puntos finales de API.
Pasos para la Configuración del Entorno de Desarrollo
Utiliza devcontainer para instalar todo lo necesario. Establece Docker y DevContainer y, tras clonar el código, estarás listo para comenzar.
Habilitar Servicios
En tu primera vez, deberás ejecutar el siguiente comando:
gcloud init
Luego, habilita los servicios necesarios:
gcloud services enable artifactregistry.googleapis.com cloudbuild.googleapis.com run.googleapis.com logging.googleapis.com aiplatform.googleapis.com
Permisos de IAM
En IAM, otorga el rol de proyecto roles/aiplatform.user al proyecto actual.
Desplegar con Variables de Entorno
Utiliza el siguiente comando para desplegar la función FastAPI:
gcloud run deploy fastapi-func --source . --function handler --base-image python313 --region asia-south1 --set-env-vars API_TOKEN="damn-long-token",GOOGLE_GENAI_USE_VERTEXAI=True,GOOGLE_CLOUD_LOCATION=global --allow-unauthenticated
Este comando despliega una función FastAPI llamada handler desde tu carpeta local, ejecutándose en Python 3.13, en la región de Mumbai (asia-south1), con variables de entorno establecidas para los tokens de API y el uso de Google Vertex AI, y está disponible públicamente (sin autenticación requerida, excepto la que se establece para Bearer).
Ejemplo de Código en main.py
A continuación se presenta un ejemplo de cómo se configura la aplicación FastAPI con filtros de contenido de seguridad:
import httpx, os, uuid
from fastapi import Depends, FastAPI, HTTPException, status
from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials
from vellox import Vellox
from pydantic import BaseModel
from typing import Optional
from google import genai
from pathlib import Path
from google.genai.types import GenerateContentConfig, HarmCategory, HarmBlockThreshold, HttpOptions, SafetySetting
Las configuraciones de seguridad se definen como una lista de objetos SafetySetting, donde cada uno declara una categoría de daño y un umbral de bloqueo. Esto incluye: contenido peligroso, acoso, discurso de odio y contenido sexualmente explícito, todos configurados para bloquear bajo y arriba (estricto).
Estas configuraciones evalúan tanto las entradas como las salidas. Si el modelo determina que el contenido cumple o excede el umbral, la llamada es bloqueada (sin texto devuelto). Por defecto, Gemini utiliza un método de bloqueo de daño consciente de la severidad en Vertex AI, que se puede ajustar según sea necesario.
Conclusión
Este tutorial proporciona una guía completa para desplegar aplicaciones de IA responsables utilizando Google Cloud y Vertex AI, asegurando que los desarrolladores puedan construir aplicaciones seguras y confiables desde el principio.