Skip to content

Latest commit

 

History

History
150 lines (107 loc) · 5.32 KB

File metadata and controls

150 lines (107 loc) · 5.32 KB

CLI Usage para call_llm.py

Este archivo ha sido modificado para soportar múltiples proveedores de IA y selección de modelos vía CLI. Funciona tanto como utilidad independiente (CLI) como módulo importable para otros proyectos.

Configuración

Variables de Entorno

Antes de usar el script, configura las variables de entorno para los proveedores que desees usar:

# Para OpenAI
export OPENAI_API_KEY="tu-clave-de-openai"

# Para Google Gemini
export GEMINI_API_KEY="tu-clave-de-gemini"

# Opcional: Configurar provider y modelo por defecto
export LLM_PROVIDER="openai"  # o "gemini"
export LLM_MODEL="o4-mini"    # modelo específico

Uso desde CLI (Independiente)

Listar Proveedores y Modelos Disponibles

python3 utils/call_llm.py --list

Usar OpenAI

# Con modelo por defecto (o4-mini)
python3 utils/call_llm.py --provider openai "¿Cuál es la capital de España?"

# Usar OpenAI con modelo específico
python3 utils/call_llm.py --provider openai --model gpt-4o "Explica la programación orientada a objetos"

# Usando el modelo de razonamiento o1
python3 utils/call_llm.py --provider openai --model o1 "Resuelve este problema de matemáticas: 2x + 5 = 15"

# Usando un modelo futuro que aún no existe en los ejemplos
python3 utils/call_llm.py --provider openai --model gpt-5-turbo "Pregunta para el futuro"

Usar Google Gemini

# Con modelo por defecto (gemini-2.5-pro-exp-03-25)
python3 utils/call_llm.py --provider gemini "¿Cómo funciona el machine learning?"

# Con modelo específico
python3 utils/call_llm.py --provider gemini --model gemini-1.5-flash "Resume este texto en 3 líneas"

# Usando un modelo experimental futuro
python3 utils/call_llm.py --provider gemini --model gemini-exp-1114 "Pregunta experimental"

Opciones Adicionales

# Desactivar caché
python3 utils/call_llm.py --provider openai --no-cache "Pregunta que no quiero que se cachee"

# Usar formas cortas de los parámetros
python3 utils/call_llm.py -p gemini -m gemini-1.5-pro "Tu pregunta aquí"

Uso Programático (Importado en Proyectos)

La función mantiene total compatibilidad hacia atrás con el código existente:

# ✅ Uso original - funciona igual que antes
from utils.call_llm import call_llm

response = call_llm("¿Cómo estás?")  # Usa configuración por defecto
response = call_llm("Pregunta", use_cache=False)  # Con parámetros originales

Configuración Avanzada

from utils.call_llm import call_llm, set_provider_and_model, list_providers_and_models

# Configurar proveedor y modelo globalmente
set_provider_and_model("openai", "gpt-4o-mini")

# Hacer llamadas con configuración global
response = call_llm("¿Cómo estás?")

# Cambiar a Gemini
set_provider_and_model("gemini", "gemini-1.5-pro")
response = call_llm("Explica el deep learning")

# Sobrescribir temporalmente proveedor/modelo para una llamada específica
response = call_llm("Pregunta específica", provider="openai", model="o1")

# Inicialización silenciosa (el import no muestra mensajes)
# Útil para proyectos que importan el módulo

Integración con Proyectos Existentes

El módulo se inicializa automáticamente al importarse, usando configuración de variables de entorno si están disponibles:

# El proyecto puede usar call_llm como siempre
from utils.call_llm import call_llm

# Funciona inmediatamente - compatible con nodes.py y otros archivos existentes
response = call_llm(prompt, use_cache=(use_cache and self.cur_retry == 0))

Modelos Disponibles

OpenAI (Siempre usa Response API)

  • o4-mini ⭐ (por defecto) - Modelo de razonamiento rápido
  • o4 - Modelo de razonamiento completo
  • o1 - Modelo de razonamiento o1
  • o1-mini - Modelo de razonamiento o1 mini
  • gpt-4o - GPT-4 Omni
  • gpt-4o-mini - GPT-4 Omni Mini
  • Cualquier otro modelo nuevo de OpenAI - Solo especifica el nombre

Google Gemini

  • gemini-2.5-pro-exp-03-25 ⭐ (por defecto) - Experimental Pro
  • gemini-2.5-flash-preview-04-17 - Flash Preview
  • gemini-1.5-pro - Gemini 1.5 Pro
  • gemini-1.5-flash - Gemini 1.5 Flash
  • Cualquier otro modelo nuevo de Gemini - Solo especifica el nombre

💡 Flexibilidad de Modelos: Puedes usar cualquier nombre de modelo, no estás limitado a los ejemplos de arriba. Esto permite usar nuevos modelos sin actualizar el código.

Características

  • Doble funcionalidad: CLI independiente + módulo importable
  • Compatibilidad total: El código existente funciona sin cambios
  • Import silencioso: No muestra mensajes al importarse en proyectos
  • CLI conversacional: Muestra mensajes útiles cuando se usa independientemente
  • Soporte para múltiples proveedores: OpenAI y Google Gemini
  • Modelos flexibles: Acepta cualquier nombre de modelo (sin validación)
  • OpenAI Response API: Siempre usa la API de razonamiento para OpenAI
  • Selección dinámica: Fácil selección de proveedor y modelo vía CLI o código
  • Configuración vía variables de entorno: Para uso por defecto automático
  • Caché inteligente: Basado en proveedor, modelo y prompt
  • Logging detallado: Todas las llamadas se registran con timestamp
  • Manejo de errores: Mensajes claros para problemas de configuración
  • Preparado para el futuro: Nuevos modelos funcionan automáticamente