Prompt Arena: Tu Banco de Pruebas para Ingeniería de Prompts de Código
Herramienta interactiva para comparar y rankear la efectividad de diferentes prompts de ingeniería en la generación de código mediante LLMs.
Prompt Arena: Tu Banco de Pruebas para Ingeniería de Prompts de Código #

La calidad de un prompt es determinante para obtener resultados óptimos de los LLMs en tareas de programación. Prompt Arena nace como una solución para evaluar objetivamente diferentes formulaciones de prompts y crear un entorno competitivo para su mejora continua.
Un Campo de Batalla para tus Prompts #
Prompt Arena es una herramienta interactiva diseñada para comparar y rankear la efectividad de diferentes prompts de ingeniería cuando se aplican a la generación de código mediante LLMs. Permite enfrentar dos prompts, usar modelos locales (vía Ollama) o APIs (vía OpenRouter) para generar código para un problema específico, y evaluar el resultado para actualizar un ranking Elo de los prompts.
¿Por qué esta herramienta? #
La calidad del prompt es crucial para obtener buenos resultados de los LLMs, especialmente en tareas de generación de código. Sin embargo, saber qué prompt es "mejor" puede ser subjetivo y llevar mucho tiempo de prueba y error. Prompt Arena busca:
- Objetivizar la comparación de prompts mediante evaluación estática y un sistema de ranking.
- Facilitar la experimentación rápida con diferentes formulaciones de prompts.
- Crear un "campo de batalla" lúdico donde los prompts compiten y evolucionan.
- Proporcionar una plataforma para aprender y descubrir qué estructuras de prompt son más efectivas para problemas de codificación.
Tecnologías y Stack #
El proyecto utiliza un stack moderno centrado en Python:
- Interfaz de Usuario: Gradio, permitiendo una experiencia interactiva y visual.
- Modelos de Datos: Pydantic para una estructuración robusta de los datos.
- Clientes LLM:
- Integración con la API de OpenRouter (acceso a diversos modelos).
- Conexión con servidores Ollama locales (para usar modelos como Llama 3, Mistral, etc., de forma privada).
- Evaluación de Código:
ast.parsepara validación de sintaxis Python.pyflakespara detección de errores comunes y linting.
- Sistema de Ranking: Algoritmo Elo para medir la fuerza relativa de los prompts.
- Cliente HTTP:
httpxpara las comunicaciones con las APIs de LLM.
Características Principales #
Las funcionalidades que destacan en Prompt Arena incluyen:
- Duelos de Prompts: Introduce dos prompts y observa cuál genera mejor código para un problema dado.
- Banco de Problemas Extensible: Problemas de programación cargados desde una estructura de directorios fácil de ampliar (
app/core/data/problems/). - Flexibilidad de LLMs: Elección entre modelos de OpenRouter o modelos locales servidos con Ollama.
- Generación y Evaluación Automatizada: El sistema genera código con cada prompt y lo evalúa estáticamente.
- Ranking Elo Dinámico: Los prompts (identificados por su hash) ganan o pierden puntos Elo según los resultados de la evaluación.
- Interfaz Web Interactiva: Fácil de usar gracias a Gradio, permitiendo una experimentación ágil.
- Código Modular y Organizado: Estructura clara del proyecto con módulos separados para las distintas funcionalidades.
Uso Básico #
Empezar a utilizar Prompt Arena es sencillo:
- Clona el repositorio y configura el entorno virtual.
- Instala las dependencias:
pip install -r requirements.txt. - Configura tus claves de API (OpenRouter) y opcionalmente la URL de Ollama en un archivo
.env. - Ejecuta la aplicación:
python app/app.py. - Abre la interfaz de Gradio en tu navegador y ¡que comience la batalla de prompts!
Aprendizajes y Contribuciones #
Este proyecto aporta varias contribuciones significativas:
- Una herramienta práctica para mejorar sistemáticamente las habilidades de ingeniería de prompts para la generación de código.
- Implementación de un sistema de ranking Elo aplicado a un contexto novedoso (calidad de prompts).
- Integración fluida con múltiples backends de LLM (OpenRouter y Ollama) y herramientas de análisis de código Python.
- Un excelente ejemplo de cómo usar Gradio para crear rápidamente interfaces interactivas para herramientas de ML/IA.
Estado Actual y Futuras Mejoras #
Actualmente Prompt Arena está funcional con evaluación estática de código. El roadmap incluye:
- Evaluación funcional del código (ejecución de tests).
- Persistencia de ratings Elo y leaderboard.
- Más métricas de evaluación de código.
Al proporcionar un método sistemático para comparar y mejorar prompts, Prompt Arena ayuda a los desarrolladores a optimizar sus interacciones con modelos de lenguaje y a generar código de mejor calidad de manera más consistente.
Repositorios relacionados
RepoGPT: Análisis y Sumarización Inteligente de Repositorios de Código
Una herramienta CLI para analizar repositorios de software y generar sumarios detallados en Markdown o JSON.
Módulo Catastro: Interfaz Simplificada para Datos del Catastro Español
Librería de Python que facilita el acceso y manipulación de datos públicos del Catastro Español, devolviendo información en DataFrames de Pandas.