# 4 - El futuro del software
Dos partes:
1. cómo crear tu propio GPT y por qué mola.
2. Por qué esto es un cambio de paradigma en el software
TL; DR:
- El día 9 de noviembre OpenAI en su keynote publica una serie de novedades. La más interesante desde mi punto de vista es la posibilidad de crear tus propios GPTs, con capacidad de conocimiento y transaccionalidad.
- Espero que en el evento Microsoft Ignite de los días 15 y 16 de noviembre, nosotros anunciemos lo propio en Microsoft Azure. Como sabéis, como parte del partnership Microsoft-OpenAI, ambas compañías trabajamos juntas en esto, y vamos trayendo las características de OpenAI a Azure para clientes empresariales.
- Después de probar los asistentes en mi cuenta de OpenAI, diría que **el paradigma de software ha cambiado**. Así, de la noche a la mañana. De esto va este número de la newsletter.
1. Crea tu propio GPT, experto y transaccional
Lo que se puede hacer ahora con ChatGPT es "_crear tu propio GPT_". Esto es, coges la versión general y creas una versión "_limitada_" o "_ajustada_" a tu caso de uso. Le das logo y nombre, y lo puedes usar y compartir.
Aparte de las funcionalidades normales de ChatGPT (code interpreter, integración con Dall·E, búsqueda por Internet y plugins), tiene 2 que me parecen diferenciales:
- **Conocimiento**. Puedes subirle una serie de documentos PDF o de texto, y tu asistente lo puede usar como base de datos de conocimiento. Está limitado, no puedes subirle una librería entera, pero no está nada mal.
- **Transaccionalidad con otros sistemas**. Puedes configurarle acciones. Esto es, llamadas a APIs para realizar operaciones con terceros, como consultas o transacciones.
**Conocimiento** y **Acciones**. Deja de ser un juguete de lenguaje y asistente de conocimiento general, y se convierte en un experto en algún tema (según la documentación que le subas) y además puede ejecutar acciones. Hacer cosas. Automatización.
¿Cómo se hace?
Esta es la mejor parte. Hay dos opciones:
- Primera, configuras 4 campos. Literalmente, 4 campos y 3 checks. Más fácil imposible, ¿no? Pues no, hay una más fácil
- Segunda, simplemente le pides a GPT que lo haga por tí.
Y ambas opciones se hacen simplemente escribiendo en perfecto lenguaje natural, en castellano o el idioma que más te guste.

Por ejemplo, en la siguiente imagen podéis ver cómo me construí un asistente de The Valley, sobre el programa que dirijo, en Programa de Tecnologías Disruptivas para Directivos.
Simplemente le subí los PDFs con los syllabus, y violà!, ya tengo mi propio asistente del máster a partir de la documentación. 5 minutos. Eso es lo que tardé en hacerlo.

**No es un chat, es un asistente de conocimiento**
Esto no es un chatbot tradicional. No es simplemente un QnA. No penséis que esto cubre el típico asistente de preguntas y respuestas. Esto es GPT-4. Puedes razonar, aportar ideas, comparar contenidos, argumentar, explicar, traducir.
Manejo avanzado del lenguaje a partir de mi contenido con 4 clicks. Con limitaciones claro, no más de 10 PDFs, no muy largos, etc. A ver qué se puede hacer en el futuro, la semana que viene por ejemplo.
**2. El futuro del software**
El punto interesante, más allá del asistente de conocimiento, es que pueda realizar acciones. Al añadirle acciones, se podría convertir en un backend de lógica de negocio dinámica. Dinámica porque no está programada con control de flujo.
**Software tradicional vs. motor de razonamiento**
**Tradicional**
Por partes, ¿cómo es el software tradicional? De forma extremadamente simplificada, el software tradicional podría verse así:
- **Interfaz de usuario**, pantallas, botones, campos entrada y salida de datos.
- **Lógica de negocio**, donde ocurren cosas, funcionalidades.
- **Backend de almacenamiento**, normalmente una base de datos donde se guarda la información. Pedidos, productos, inventario, lo que sea.

Ultra simplificado, pero os hacéis una idea. La UI y la lógica de negocio son costosas de desarrollar y mantener. Y si no son buenas, o bien el usuario se pierde y no es productivo, o bien no logra hacer lo que quiere.
Y la mayor limitación de todas: todo ello es fijo. Inflexible. Cualquier cambio significa abrir código.
**Nuevo paradigma de razonamiento**
Lo nuevo que viene, que no sé ni cómo llamarlo, tiene 2 grandes diferencias:
- La **interfaz de usuario basada en lenguaje natural**, en una conversación. Ya sea como hemos visto con ChatGPT y los GPTs, que es pura conversación, o como con Microsoft Copilot, que es una conversación _como apoyo_ a la herramienta de software, pero que vamos a hablar/chatear con el software es un hecho.
- La **lógica de negocio basada en un motor de razonamiento**, razonando con lenguaje natural. El control de flujo de las acciones que el software realice no será algo fijo, sino que será procesado y ejecutado por un núcleo (_planificador_ en el caso de Semantic Kernel) que lo procesa razonando con lenguaje.

**El nuevo software es dinámico**

Esto último, en mi opinión, es lo diferencial. La lógica de negocio, las acciones que hace el software, los casos de uso que la aplicación puede resolver, pasan de ser algo fijo, programado, a ser algo dinámico.
Las transacciones finales no varían. Al final todo esto termina leyendo y escribiendo de una base de datos.
Pero imaginad, por ejemplo, un CRM.
El problema típico en el software de CRM es el siguiente: tanto la UI como la lógica de negocio cumplen perfectamente con las especificaciones de gestión de datos (de ventas), y así está reflejado en la capa de almacenamiento. Pero nada esto suele ayudar al usuario. En muchos casos, la interfaz de consulta no ayuda al comercial a vender más y la complejidad de uso hace que el usuario no registre la información correctamente.
Ahora imaginad que la UI es simplemente una conversación, preguntando al asistente sobre los datos para mi próxima reunión, o pidiéndole a que actualice la información en el sistema después de la misma. Sin estar atado a una serie de casos de uso fijos.
A esto, añade todas las capacidades de argumentación, sugerencias, recomendación, explicación, etc. propias de GPT-4.
Vendedor antes de una reunión, en el coche, con el teléfono vía bluetooth: "_Hola máquina, oye, sobre la reunión que tengo ahora: hazme un resumen de qué tenemos con este cliente en los últimos 3 meses, y dame alguna recomendación, con argumentos para su sector, para un upselling_"
Y el asistente se pone a trabajar. Y te lo cuenta de viva voz.
**Sobre el esfuerzo de implementación**
Una nota más sobre todo esto: una UI basada en conversación, y una lógica de negocio basada en razonamiento mediante lenguaje natural sería, sobre todo, mucho más efectiva desde el punto de vista de coste de implementación.
La implementación inicial puede ser compleja, y no cubrirá todos los casos de uso, desde luego, pero el coste de desarrollo y mantenimiento debería ser menor.
El código tradicional requiere desarrollo y mantenimiento, y el resultado final es, sobre todo, rígido. Inflexible,
El motor basado en lenguaje natural tanto para la UI como para la lógica es flexible, dinámico. No debería crecer en cuanto a complejidad aunque aumenten el número de casos de uso.
**Estado del arte de todo esto**
Tres apartados distintos:
1. **UI basada en interfaz conversacional**: con ChatGPT (consumo) o Azure OpenAI (empresarial), la tecnología ya está aquí. Totalmente, o más tipo Microsoft 365 Copilot, donde el asistente _acompaña a la aplicación_.
2. **Backend Basado en Acciones/Plugins**: Adiós a la rigidez. La lógica de negocio se puede basar en plugins de OpenAI. Los plugins (llamados _acciones_ en los GPTs nuevos) están disponibles tanto en ChatGPT como en Azure OpenAI y también en Copilot. El modelo de desarrollo de plugins es el mismo.
3. **Motores de Razonamiento**: Aquí es donde la magia ocurre, pero donde el tema está más verde. Con frameworks como Semantic Kernel, y experimentos como AutoGen o como lo de imitar el cortex prefrontal, estamos presenciando un salto hacia sistemas que entienden y procesan información de forma _mucho más humana_. Enlaces sobre esto último aquí, en el número 2 de la Newsletter [https://www.linkedin.com/pulse/2-multimodalidad-automatizaci%C3%B3n-david-hurtado-tor%C3%A1n-8zomf](https://www.linkedin.com/pulse/2-multimodalidad-automatizaci%C3%B3n-david-hurtado-tor%C3%A1n-8zomf) y en el Extra [https://www.linkedin.com/pulse/extra-pero-qu%C3%A9-locura-es-esta-simulando-el-c%C3%B3rtex-con-hurtado-tor%C3%A1n-wqpfe](https://www.linkedin.com/pulse/extra-pero-qu%C3%A9-locura-es-esta-simulando-el-c%C3%B3rtex-con-hurtado-tor%C3%A1n-wqpfe)
En resumen, una flipada. Esto va muy rápido. Si quieres leer la opinión de Bill Gates, él lo publica en su blog. Habla de la idea del asistente inteligente que lo hace todo. Mola. Aquí --> [https://www.gatesnotes.com/AI-agents](https://www.gatesnotes.com/AI-agents)
Una flipada no?. Ahora voy a ver si soy capaz de construir un GPT que explique este número de la newsletter y puedas tener una conversación con él. No sólo te ayuda a leerla, sino que deberías poder elucubrar con tu nuevo mejor amigo sobre el contenido :-)