ComposeGPT es una aplicación de demostración para Android que integra la API de OpenAI (GPT) con Jetpack Compose. Esta aplicación permite a los usuarios hacer preguntas a un modelo de lenguaje avanzado y recibir respuestas en tiempo real mediante una interfaz de chat moderna y atractiva.
- 🧠 Integración con el modelo GPT-4o-mini de OpenAI
- 📱 Interfaz moderna de chat estilo messenger con Jetpack Compose
- 💬 Burbujas de chat con diseño Material 3
- 🔄 Gestión de conversaciones y animaciones fluidas
- ✨ Indicador de escritura durante la espera de respuestas
- 📤 Envío de mensajes con botón o tecla "enviar"
- Android Studio Flamingo o superior
- Android SDK 26+
- Kotlin 1.8.0+
- Una clave API válida de OpenAI
- Clona este repositorio:
git clone https://github.com/jgomez-dev/ComposeGPT.git
-
Abre el proyecto en Android Studio.
-
Consigue una clave API de OpenAI.
-
Reemplaza la clave API en el archivo
app/src/main/java/com/jgomez/composegpt/api/OpenAIConfig.kt:
const val API_KEY = "TU_CLAVE_API"- Compila y ejecuta la aplicación en un emulador o dispositivo.
IMPORTANTE: El repositorio incluye un archivo OpenAIConfig.kt con una clave API de ejemplo.
Debes reemplazarla con tu propia clave y nunca subir tu clave real a GitHub.
Opciones para manejar tus claves de forma segura:
- Usar variables de entorno durante la compilación
- Usar un archivo de propiedades local no incluido en Git
- Usar servicios como Secrets Manager o Firebase Remote Config
Para mayor seguridad, considera añadir app/src/main/java/com/jgomez/composegpt/api/OpenAIConfig.kt a tu .gitignore.
La aplicación sigue un patrón de arquitectura simple:
- Vista (UI): Implementada con Jetpack Compose con componentes reutilizables
- Modelo: Clases de datos para representar los mensajes y la conversación
- Red: Usa Retrofit para las llamadas a la API de OpenAI
- Configuración: Centralizada en un objeto de configuración
com.jgomez.composegpt: Contiene la actividad principal y pantallascom.jgomez.composegpt.api: Contiene clases relacionadas con la API (modelos, configuración, servicios)com.jgomez.composegpt.model: Modelos de datos para la interfaz de usuariocom.jgomez.composegpt.ui.components: Componentes reutilizables para la interfaz de usuariocom.jgomez.composegpt.ui.theme: Contiene la configuración del tema de la aplicación
- El usuario escribe un mensaje en el campo de texto inferior
- Al hacer clic en el botón de enviar, el mensaje se añade a la conversación
- La aplicación envía la consulta a la API de OpenAI mientras muestra un indicador de "escribiendo"
- La respuesta del modelo de IA se añade a la conversación como una burbuja de chat
- La vista se desplaza automáticamente al mensaje más reciente
- Cambiar el modelo: Puedes modificar la constante
MODELenOpenAIConfig.kt. - Ajustar la longitud de respuesta: Modifica
MAX_TOKENSenOpenAIConfig.kt. - Cambiar el diseño: Personaliza los componentes de Compose en
ui/components. - Personalizar colores: Modifica el tema en
ui/theme.
- Implementar persistencia de conversaciones con Room
- Añadir soporte para múltiples conversaciones
- Implementar historial de mensajes para conversaciones contextuales
- Añadir temas claro/oscuro y opciones de personalización
- Integrar TextToSpeech para leer las respuestas
- Añadir soporte para mensajes multimedia (imágenes, audio)
Las contribuciones son bienvenidas. Para contribuir:
- Haz un fork del repositorio.
- Crea una rama para tu función (
git checkout -b feature/amazingfeature). - Realiza tus cambios y haz commit (
git commit -m 'Añadir nueva característica'). - Sube a la rama (
git push origin feature/amazingfeature). - Abre un Pull Request.
Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.
- OpenAI por proporcionar la API de GPT.
- Jetpack Compose por simplificar el desarrollo de UI en Android.
- Retrofit para facilitar las llamadas a APIs REST.
- Material Design 3 por las guías de diseño moderno.
Desarrollado con ❤️ por Javier Gómez
