Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Sugerencia] alternativa Google AI Studio con gemini-3-flash-preview

A veces me toma versión de modelo gemini-2.0-flash, otras no, no es facil darse cuenta de cuanta cuota diaria queda o se consumió

código con modelo Google gemini-3-flash-preview:

import os
from google import genai
from dotenv import load_dotenv

load_dotenv()

client = genai.Client(api_key=os.getenv("GOOGLE_API_KEY"))

modelo = "gemini-3-flash-preview"

def carga(nombre_archivo):
    try:
        with open(nombre_archivo, "r", encoding="utf-8") as archivo:
            return archivo.read()
    except IOError as e:
        print(f"Error al leer: {e}")
        return None

def guardar(nombre_archivo, contenido):
    try:
        with open(nombre_archivo, "w", encoding="utf-8") as archivo:
            archivo.write(contenido)
    except IOError as e:
        print(f"Error al guardar: {e}")

def analizador_sentimientos(producto):
    prompt_sistema = """
    Eres un analizador de sentimientos de reseñas de productos.
    Escribe un párrafo de hasta 50 palabras resumiendo las reseñas y luego asigna cuál es el sentimiento general para el producto. Identifica también 3 puntos fuertes y 3 puntos débiles identificados a partir de las reseñas.
    # Formato de Salida
      Nombre del Producto:
      Resumen de las Reseñas:
      Sentimiento General: [utiliza aquí solo Positivo, Negativo o Neutro]
      Puntos fuertes: lista con tres puntos fuertes
      Puntos débiles: lista con tres puntos débiles
    """

    prompt_usuario = carga(f"datos/{producto}.txt")
    if not prompt_usuario:
        return

    print(f"Iniciando análisis sentimientos de: {producto}")

    # En el nuevo SDK genai, usamos generate_content con config para el prompt de sistema
    respuesta = client.models.generate_content(
        model=modelo,
        contents=prompt_usuario,
        config={
            "system_instruction": prompt_sistema
        }
    )

    texto_respuesta = respuesta.text

    guardar(f"datos/analisis_{producto}.txt", texto_respuesta)
    print(f"Análisis completado para {producto}\n")

# Ejecución
productos = [
    "evaluaciones_camisetas_algodon",
    "evaluaciones_jeans_reciclados",
    "evaluaciones_maquillaje"
]

for producto in productos:
    analizador_sentimientos(producto)

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

1 respuesta

Hola Esteban,

Entiendo lo que comentas. Tu código está bien estructurado para cargar reseñas, analizarlas con el modelo y guardar el resultado. El detalle que mencionas —que a veces se usa gemini‑3‑flash‑preview y otras veces parece tomar gemini‑2.0‑flash— tiene que ver con cómo funciona el SDK y la disponibilidad/cuotas de cada modelo en la API de Google.

Algunos puntos que pueden ayudarte:

  • Selección de modelo: aunque en tu código defines modelo = "gemini-3-flash-preview", si ese modelo no está disponible en ese momento (por cuota, región o versión), el SDK puede redirigir a otra versión estable (gemini‑2.0‑flash).
  • Cuotas diarias: la API de Google no expone directamente en el SDK cuánto de tu cuota ya consumiste. Para ver eso, necesitas entrar en la consola de Google Cloud → sección IAM & Admin → Quotas o en Vertex AI → Usage. Ahí ves el consumo por modelo y por día.
  • Logs y trazabilidad: puedes imprimir respuesta.model_version o revisar los metadatos de la respuesta para confirmar qué modelo respondió realmente. Eso te da certeza de si fue 3‑flash o 2‑flash.
  • Control de errores: si quieres asegurarte de que solo se use un modelo específico, puedes manejar excepciones y, si el SDK devuelve otro modelo, registrar un aviso en tus logs.
  • Ejemplo de cómo revisar el modelo que respondió:
respuesta = client.models.generate_content(
    model=modelo,
    contents=prompt_usuario,
    config={"system_instruction": prompt_sistema}
)

print("Modelo usado:", respuesta.model_version)

De esa forma sabrás exactamente qué versión se ejecutó.

Si lo que te preocupa es la cuota diaria, lo más práctico es revisar en la consola de Google Cloud, porque el SDK no trae un contador automático.

Si este post te ayudó, por favor, marca como solucionado ✓. ¡Continúa con tus estudios!