Promptly 03 - Ejecutar un prompt


Sesión 3

Punto de partida

Objetivos

Los mismos, principalmente de aprendizaje. Pero hoy decido investigar un poco más y pensar más en detalle en los usuarios del producto, antes de avanzar más en la construcción.

¿Que existe similar?

Si esta iniciativa fuera un negocio, hubiera comenzado por aquí claro 😄... Viendo cosas similares en el mercado, parece que existen algunos "marketplace", para la compra-venta de prompts (como Promptbase o FlowGPT...), y también un listado gratuito e interesante de prompts en inglés, llamado awesome-prompts. Se ve interesante, pero contribuir prompts a golpe de commit no parece un flujo sencillo para usuarios no técnicos.

Sobre este último repo y listado existe http://prompts.chat, una app gratuita que los lista y también permite ejecutarlos, pasándoselos como parámetro a varios LLM y abriendo pestañas a los modelos online (eg: https://github.com/copilot).

Esto último, la forma de ejecutar rápidamente un prompt desde la app, abriendo una ventana nueva sí me parece una feature clave, así que la voy a desarrollar. Era evidente, pero no le había prestado interés inicialmente porque pensaba que me iba a requerir ejecución en línea, o lo que es lo mismo, tener api keys para los modelos (= añadir costes), pero como pasarela me encaja perfectamente.

Algunas ideas sobre el producto

Compartir
La gente crea prompts y los comparte ya... y esa tendencia irá a más. ¿Cómo lo hace ahora mismo? Pues con un modo manual, de hecho 100% manual, el creador le pasa el texto a alguien por mensaje, en red social, etc...

Colecciones y aprendizaje
Algunos pensamientos en alto:

El modelo de datos podría hacerse más grande y contemplar cosas como 'colecciones ordenadas de prompts', por ejemplo. Pero de nuevo... ¿que es lo más sencillo que puede funcionar?. Pues diría que los tags; ya hemos incorporado el campo al prompt en la DB y pueden servir como la formula más sencilla de agrupación de prompts, así que será el siguiente elemento en el que trabajaremos (después de la ejecución del prompt) . Además, si se quiere orden, pues puede ser tan fácil como usar un tag, por ejemplo "curso-programación" y luego usar nombres tal que "01 - Primer tema", "02 - Segundo tema", etc.

Tras esta parte de brainstorming / investigación, las tareas y su orden quedarían en algo como este mini-roadmap:

Tareas

Acciones

Ejecutar / copiar un prompt

Desde la app y fácilmente. Seguro se puede usar el API (pidiendo primero las credenciales al usuario y guardando su API-KEY en supabase, ofuscado), pero...¿cuál es la opción más sencilla? pues abriendo una nueva ventana externa con ChatGPT con el texto del prompt. Esto es trivial, usando la url que permite pasárselo como queryParam: https://chatgpt.com/?prompt=elPrompt. Más fácil imposible 😋.

En algunos casos, al usuario le vendrá mejor copiarlo para ejecutar de otra forma (ej. en una app local), así que programemos también un Copiar al portapapeles, que es trivial.

Resumen

En este punto, la app es funcional y se ve así:
promptly_04_run_in_chatgpt.gif

Sobre la lista de tareas, este es el estado al terminar la sesión: