En el mundo del procesamiento del lenguaje natural (NLP) y la inteligencia artificial (IA), la compatibilidad entre distintas plataformas y modelos es clave para la flexibilidad y la optimización de costos. Christian Rice, en su reciente video (ver aquí), nos muestra una forma innovadora de usar modelos LLM locales y en la nube utilizando la API de OpenAI y LangChain.

Ejecutando Modelos LLM con la API de OpenAI

Gracias a las recientes actualizaciones en Ollama, ahora es posible ejecutar modelos LLM locales a través de la API de OpenAI. Esto significa que, con unos pocos ajustes en el código, podemos alternar entre un modelo en la nube y uno alojado localmente sin necesidad de modificar significativamente la infraestructura de nuestra aplicación.

Christian explica en su video que este proceso se logra con simples anulaciones de configuración, permitiendo a los desarrolladores alternar entre:

  • Modelos LLM locales ejecutados con Ollama.
  • Modelos serverless en la nube a través de Juntos (Together AI).
  • Modelos de OpenAI mediante su API tradicional.

Esta capacidad es especialmente útil para quienes buscan una alternativa más económica o necesitan ejecutar modelos en un entorno privado sin depender de servidores externos.

Configuración y Anulación de Parámetros

Para lograr esta interoperabilidad, la configuración de la API se modifica de la siguiente manera:

  1. Se define la clave de API y la URL base en un archivo de entorno.
  2. Para OpenAI, la configuración se mantiene con la URL base predeterminada de OpenAI.
  3. Para Ollama, se cambia la URL base para apuntar a localhost, donde se está ejecutando el modelo.
  4. Para Together AI u otros proveedores de modelos serverless, se ajusta la URL y la clave de API correspondiente.

Ejemplo de código para realizar esta transición:

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:8000/v1",  # Cambia según el proveedor
    api_key="tu_api_key"
)

response = client.chat.completions.create(
    model="llama-2-7b-chat",  # O el modelo alojado en la nube
    messages=[{"role": "system", "content": "Eres un asistente de IA."},
              {"role": "user", "content": "¿Cuál es la capital de Francia?"}]
)

print(response.choices[0].message["content"])

Compatibilidad con LangChain y Herramientas de Llamada de Funciones

Uno de los aspectos más interesantes de esta solución es que permite integrar la compatibilidad con LangChain. Si bien OpenAI y algunos modelos serverless admiten llamadas a funciones directamente, Ollama aún no soporta esta funcionalidad. Esto significa que, si necesitas herramientas avanzadas de LangChain como agentes o herramientas de llamada de funciones, debes elegir un modelo compatible.

Comparativa de Rendimiento y Costos

Opción Ventajas Desventajas
OpenAI Alto rendimiento, soporte completo Mayor costo, dependencia de la nube
Ollama (local) Privacidad, control total, sin costos variables Requiere hardware potente, no soporta tool calling
Together AI (serverless) Bajo costo, fácil de implementar Latencia variable, puede cambiar políticas

Ejemplo de Aplicación: Generación de Haikus

Para demostrar la flexibilidad de este enfoque, Christian implementó un sistema que genera haikus sobre patos usando diferentes modelos LLM. Al hacer peticiones a distintos modelos, observó diferencias en la calidad de los resultados, el tiempo de respuesta y la compatibilidad con herramientas auxiliares.

Conclusión

Esta capacidad de alternar entre modelos locales y en la nube utilizando la API de OpenAI y LangChain abre muchas posibilidades para los desarrolladores de IA. Ya sea por razones de costo, privacidad o rendimiento, tener la flexibilidad de cambiar entre distintos modelos sin modificar la infraestructura principal es un avance significativo.

Para quienes deseen probar esta implementación, el código completo está disponible en el GitHub de Christian Rice: ver repositorio.

Este tipo de innovaciones seguirá evolucionando conforme los modelos de IA de código abierto se vuelvan más potentes y accesibles. Sin duda, el futuro de la IA será más flexible y personalizado que nunca.