Continuando con el Modelo O1: Casos de Uso Avanzados y Ejecución Planificada

Jaime Hernández
4 min readDec 28, 2024

--

https://openai.com/index/openai-o1-mini-advancing-cost-efficient-reasoning/

En el blog anterior exploramos los fundamentos y principios del modelo O1. Ahora profundizaremos en sus capacidades para planificar tareas complejas y ejecutar cada paso con herramientas adicionales como GPT-4o-mini. Este enfoque se aplica a escenarios como la gestión de cadenas de suministro, donde se requiere tomar decisiones escalonadas con datos dinámicos.

Planificación y Ejecución con O1 y GPT-4o-mini

El modelo O1 puede generar planes detallados para resolver tareas utilizando herramientas predefinidas. Una vez generado el plan, cada paso se ejecuta mediante GPT-4o-mini, que llama a funciones específicas para cumplir las instrucciones.

Ejemplo Real: Gestión de un Pedido en la Cadena de Suministro

Escenario

Un pedido requiere 200 unidades del producto Smart Home Hub X200, pero solo hay 50 unidades disponibles en el inventario actual. El plan debe considerar:

  1. Revisar el inventario disponible.
  2. Identificar proveedores para obtener componentes adicionales.
  3. Programar producción para satisfacer la demanda.
  4. Organizar el envío al cliente.
  5. Notificar al cliente sobre el progreso.

Contexto Inicial (En Python)

context = {
'inventory': {
'X200': 50 # Cantidad disponible en inventario
},
'orders': [
{
'order_id': 'ORD3001',
'product_id': 'X200',
'quantity': 200,
'customer_id': 'CUST9001',
'destination': 'Los Angeles',
}
],
'available_suppliers': ['SUPP1001', 'SUPP1002'],
'production_capacity': {
'immediate': 100,
'next_week': 150
},
'shipping_options': {
'Los Angeles': [
{'carrier_id': 'CARRIER1', 'service_level': 'Standard', 'cost': 1000},
{'carrier_id': 'CARRIER2', 'service_level': 'Express', 'cost': 1500}
]
},
'customers': {
'CUST9001': {
'name': 'ElectroWorld',
'address': '123 Market Street, Los Angeles, CA'
}
},
'products': {
'X200': {
'name': 'Smart Home Hub X200',
'components_needed': {
'COMP_X200': 1 # Cada unidad requiere 1 componente COMP_X200
}
}
}
}

Generación del Plan con O1

Prompt

Eres un asistente de gestión de cadenas de suministro. Revisa el siguiente escenario y genera un plan detallado para procesar el pedido.

Funciones disponibles:
- get_inventory_status(product_id)
- get_product_details(product_id)
- update_inventory(product_id, quantity_change)
- fetch_new_orders()
- allocate_stock(order_id, product_id, quantity)
- check_available_suppliers()
- get_supplier_info(supplier_id)
- place_purchase_order(supplier_id, component_id, quantity)
- check_production_capacity(time_frame)
- schedule_production_run(product_id, quantity, time_frame)
- calculate_shipping_options(destination, weight, dimensions)
- book_shipment(order_id, carrier_id, service_level)
- send_order_update(customer_id, order_id, message)
Genera un plan estructurado paso a paso.

Plan Generado

1. **Revisar el inventario:**
- Llamar a `get_inventory_status` para verificar la disponibilidad del producto X200.

2. **Evaluar producción:**
- Si el inventario es insuficiente, llamar a `check_production_capacity` para programar la producción de las unidades faltantes.
3. **Ordenar componentes adicionales:**
- Identificar proveedores disponibles con `check_available_suppliers`.
- Obtener detalles del proveedor con `get_supplier_info`.
- Colocar órdenes de compra con `place_purchase_order`.
4. **Organizar envío:**
- Calcular opciones de envío con `calculate_shipping_options`.
- Reservar envío con `book_shipment`.
5. **Notificar al cliente:**
- Actualizar al cliente con `send_order_update`.

Ejecución del Plan con GPT-4o-mini

Cada paso del plan se ejecuta llamando funciones específicas. Por ejemplo:

Verificar Inventario

def get_inventory_status(product_id):
quantity = context['inventory'].get(product_id, 0)
return {'product_id': product_id, 'quantity': quantity}

# Ejecución
inventory_status = get_inventory_status('X200')
print(inventory_status) # {'product_id': 'X200', 'quantity': 50}

Programar Producción

def schedule_production_run(product_id, quantity, time_frame):
capacity = context['production_capacity'].get(time_frame, 0)
if capacity >= quantity:
context['production_capacity'][time_frame] -= quantity
context['inventory'][product_id] += quantity
return {'status': 'Scheduled', 'quantity': quantity, 'time_frame': time_frame}
return {'error': 'Capacidad insuficiente'}

# Ejecución
production_result = schedule_production_run('X200', 100, 'immediate')
print(production_result) # {'status': 'Scheduled', 'quantity': 100, 'time_frame': 'immediate'}

Tutorial: Creación de un Componente en React Usando GPT-4o-mini

Caso: Formulario de Feedback para Entrevistas

El objetivo es crear un componente React llamado FeedbackForm, que permita recolectar retroalimentación estructurada y objetiva durante entrevistas.

Prompt para GPT-4o-mini

Crea un componente elegante y funcional en React para recolectar feedback durante entrevistas. Debe:
- Permitir calificar candidatos según múltiples dimensiones con rubricas.
- Recolectar evidencia específica para cada calificación.
- Calcular una recomendación final basada en puntuaciones ponderadas.
- Guiar al usuario a proporcionar retroalimentación objetiva.

Responde solo con el código del componente. Usa "use client" al inicio.

Resultado

'use client';
import React, { useState } from 'react';

function FeedbackForm() {
const [ratings, setRatings] = useState({});
const [finalScore, setFinalScore] = useState(0);
const handleRatingChange = (dimension, value) => {
setRatings({ ...ratings, [dimension]: value });
calculateFinalScore();
};
const calculateFinalScore = () => {
let totalScore = 0;
let dimensions = Object.keys(ratings);
dimensions.forEach(dimension => {
totalScore += ratings[dimension];
});
setFinalScore(totalScore / dimensions.length);
};
return (
<div>
<h2>Feedback Form</h2>
<label>Technical Skills:</label>
<input type="number" onChange={(e) => handleRatingChange('technical', parseInt(e.target.value))} />
<label>Communication:</label>
<input type="number" onChange={(e) => handleRatingChange('communication', parseInt(e.target.value))} />
<h3>Final Recommendation: {finalScore}</h3>
</div>
);
}
export default FeedbackForm;

Este componente es funcional y puede integrarse fácilmente en cualquier sistema de entrevistas.

Aplicaciones Reales

  1. E-commerce: Gestionar pedidos complejos con inventarios limitados y proveedores dispersos.
  2. Manufactura: Optimizar la producción basada en la demanda y capacidad.
  3. Logística: Coordinar opciones de envío para cumplir plazos ajustados.
  4. Recursos Humanos: Implementar sistemas de retroalimentación estructurada.

Enlaces útiles

Este enfoque combinado de O1 y GPT-4o-mini permite resolver tareas complejas de forma eficiente y detallada. ¡Experimenta con estos ejemplos! 🌟

--

--

No responses yet